test(FN-4353): complete Step 1 — core default-on regression coverage

Fusion-Task-Id: FN-4353
Fusion-Task-Lineage: 2384df03-5eb9-4327-bb8a-1ee0f97ac0fd
This commit is contained in:
Fusion
2026-05-13 10:53:38 -07:00
committed by gsxdsm
parent e4ec867f8d
commit 8078c48c21
2 changed files with 49 additions and 2 deletions

View File

@@ -1598,6 +1598,44 @@ describe("TaskStore", () => {
});
describe("getSettingsFast()", () => {
it("defaults ephemeralAgentsEnabled to true for new projects", async () => {
const fast = await harness.store().getSettingsFast();
const regular = await harness.store().getSettings();
const scopedFast = await harness.store().getSettingsByScopeFast();
expect(fast.ephemeralAgentsEnabled).toBe(true);
expect(regular.ephemeralAgentsEnabled).toBe(true);
expect(scopedFast.project.ephemeralAgentsEnabled).toBe(true);
});
it("falls back to ephemeralAgentsEnabled=true when upgrading settings omit the key", async () => {
const db = (harness.store() as any).db;
const row = db.prepare("SELECT settings FROM config WHERE id = 1").get() as { settings?: string } | undefined;
const existingSettings = row?.settings ? JSON.parse(row.settings) : {};
delete existingSettings.ephemeralAgentsEnabled;
db.prepare("UPDATE config SET settings = ? WHERE id = 1").run(JSON.stringify(existingSettings));
const fast = await harness.store().getSettingsFast();
const regular = await harness.store().getSettings();
const scopedFast = await harness.store().getSettingsByScopeFast();
expect(fast.ephemeralAgentsEnabled).toBe(true);
expect(regular.ephemeralAgentsEnabled).toBe(true);
expect(scopedFast.project.ephemeralAgentsEnabled).toBe(true);
});
it("preserves explicit ephemeralAgentsEnabled=false", async () => {
await harness.store().updateSettings({ ephemeralAgentsEnabled: false });
const fast = await harness.store().getSettingsFast();
const regular = await harness.store().getSettings();
const scopedFast = await harness.store().getSettingsByScopeFast();
expect(fast.ephemeralAgentsEnabled).toBe(false);
expect(regular.ephemeralAgentsEnabled).toBe(false);
expect(scopedFast.project.ephemeralAgentsEnabled).toBe(false);
});
it("returns the same merged result as getSettings()", async () => {
await harness.store().updateGlobalSettings({ themeMode: "light", ntfyEnabled: true });
await harness.store().updateSettings({ maxConcurrent: 5, autoMerge: false });