test/home-draft-model-selection.test.js
Rama main · réplica de lectura del repositorio original.
var assert = require("node:assert/strict");
var fs = require("node:fs");
var path = require("node:path");
var test = require("node:test");
var root = path.join(__dirname, "..");
async function loadConfirmationModule() {
var source = fs.readFileSync(path.join(root, "lib/public/modules/home-session-model-confirmation.js"), "utf8");
return import("data:text/javascript;base64," + Buffer.from(source).toString("base64"));
}
test("confirmed draft model applies to the exact session and promotes its durable identity", async function () {
var helpers = await loadConfirmationModule();
var exact = helpers.confirmedHomeSessionModel({ mateId: "mate-a", sessionId: "draft-a" }, {
mateId: "mate-a", requestedSessionId: "draft-a", sessionId: "draft-a", sessionApplied: true,
sessionVendor: "codex", sessionModel: "gpt-5.6",
});
assert.deepEqual(exact, { sessionId: "draft-a", vendor: "codex", model: "gpt-5.6" });
var promoted = helpers.confirmedHomeSessionModel({ mateId: "mate-a", sessionId: "local:11" }, {
mateId: "mate-a", requestedSessionId: "local:11", sessionId: "durable-11", sessionApplied: true,
sessionVendor: "claude", sessionModel: "sonnet",
});
assert.deepEqual(promoted, { sessionId: "durable-11", vendor: "claude", model: "sonnet" });
});
test("stale, different-Mate, and non-applied model confirmations cannot overwrite the composer", async function () {
var helpers = await loadConfirmationModule();
var active = { mateId: "mate-a", sessionId: "draft-a" };
var base = { mateId: "mate-a", requestedSessionId: "draft-b", sessionId: "draft-b", sessionApplied: true, sessionVendor: "codex", sessionModel: "gpt-5.6" };
assert.equal(helpers.confirmedHomeSessionModel(active, base), null);
assert.equal(helpers.confirmedHomeSessionModel(active, Object.assign({}, base, { mateId: "mate-b", requestedSessionId: "draft-a", sessionId: "draft-a" })), null);
assert.equal(helpers.confirmedHomeSessionModel(active, Object.assign({}, base, { requestedSessionId: "draft-a", sessionId: "draft-a", sessionApplied: false })), null);
});
test("composer chooser opens Model settings with its exact pristine session", function () {
var chat = fs.readFileSync(path.join(root, "lib/public/modules/home-mate-chat.js"), "utf8");
var picker = fs.readFileSync(path.join(root, "lib/public/modules/home-mate-model-picker.js"), "utf8");
var settings = fs.readFileSync(path.join(root, "lib/public/modules/home-mate-settings.js"), "utf8");
assert.match(chat, /openHomeMateSettings\(mate\.id, sessionModelChooseEl, \{ section: "model", sessionId: store\.get\('homeChatSessionId'\) \}\)/);
assert.match(picker, /if \(s\.sessionId\) message\.sessionId = s\.sessionId/);
assert.match(settings, /resetHomeMateModelPicker\(mateId, getMateName\(mate\), mate, options && options\.sessionId\)/);
assert.match(chat, /export function openHomeMateAction\(kind, initialTopic\)/);
});