test(FN-4421): complete Step 2 — add mobile section picker regression

Fusion-Task-Id: FN-4421
Fusion-Task-Lineage: a39ef935-f92d-41e4-bf04-4216f515dc71
This commit is contained in:
Fusion
2026-05-13 20:19:16 -07:00
committed by gsxdsm
parent 82f933a4f4
commit a76f1c02ec

View File

@@ -754,6 +754,51 @@ describe("SettingsModal", () => {
expect(ephemeralToggle.checked).toBe(true);
});
it("exposes the ephemeral agents toggle via the mobile Settings Section picker", async () => {
Object.defineProperty(window, "matchMedia", {
writable: true,
value: vi.fn().mockImplementation((query: string) => ({
matches: query === "(max-width: 768px)",
media: query,
onchange: null,
addEventListener: vi.fn(),
removeEventListener: vi.fn(),
addListener: vi.fn(),
removeListener: vi.fn(),
dispatchEvent: vi.fn(),
})),
});
renderModal();
await waitForSettingsModalReady();
const sectionPicker = screen.getByLabelText("Settings Section") as HTMLSelectElement;
expect(sectionPicker).toBeInTheDocument();
const projectGeneralOption = sectionPicker.querySelector('option[value="general"]');
expect(projectGeneralOption).toBeInTheDocument();
expect(projectGeneralOption).toHaveTextContent("Project General");
await userEvent.selectOptions(sectionPicker, "general");
const ephemeralToggle = screen.getByLabelText("Use ephemeral task-worker agents") as HTMLInputElement;
expect(ephemeralToggle).toBeInTheDocument();
expect(ephemeralToggle.checked).toBe(true);
Object.defineProperty(window, "matchMedia", {
writable: true,
value: vi.fn().mockImplementation((query: string) => ({
matches: false,
media: query,
onchange: null,
addEventListener: vi.fn(),
removeEventListener: vi.fn(),
addListener: vi.fn(),
removeListener: vi.fn(),
dispatchEvent: vi.fn(),
})),
});
});
it("keeps ephemeral agent toggle checked when upgrading settings omit the key", async () => {
const { ephemeralAgentsEnabled: _omitted, ...upgradeSettings } = defaultSettings;
mockFetchSettings.mockResolvedValueOnce(upgradeSettings);