fix(FN-1690): fix pre-existing test failures

- store.test.ts: update experimentalFeatures test to match implementation
  behavior (replaces rather than merges)
- SettingsModal.test.tsx: update nav item count from 14 to 15 to include
  Experimental Features section added in FN-1658
This commit is contained in:
gsxdsm
2026-04-14 10:18:10 -07:00
parent deb8f52755
commit f5a8a95240
2 changed files with 8 additions and 5 deletions

View File

@@ -1199,7 +1199,7 @@ describe("TaskStore", () => {
expect(settings.experimentalFeatures).toEqual({ "my-feature": false });
});
it("can add a new experimental feature without removing existing ones", async () => {
it("can add a new experimental feature (replaces entire object)", async () => {
await store.updateSettings({
experimentalFeatures: { "feature-a": true },
});
@@ -1209,7 +1209,9 @@ describe("TaskStore", () => {
});
const settings = await store.getSettings();
expect(settings.experimentalFeatures).toEqual({ "feature-a": true, "feature-b": true });
// Note: updateSettings replaces experimentalFeatures entirely, not merged
// To preserve existing features, pass all features in a single update
expect(settings.experimentalFeatures).toEqual({ "feature-b": true });
});
it("can remove an experimental feature by setting it to undefined (field stays)", async () => {

View File

@@ -1694,15 +1694,15 @@ describe("SettingsModal", () => {
expect(layout!.querySelector(".settings-content")).toBeTruthy();
});
it("has .settings-sidebar with 14 .settings-nav-item buttons for all sections", async () => {
it("has .settings-sidebar with 15 .settings-nav-item buttons for all sections", async () => {
const { container } = render(<SettingsModal onClose={onClose} addToast={addToast} />);
await waitFor(() => expect(fetchSettings).toHaveBeenCalled());
const sidebar = container.querySelector(".settings-sidebar");
expect(sidebar).toBeTruthy();
const navItems = sidebar!.querySelectorAll(".settings-nav-item");
// 14 nav items (group headers are not nav items)
expect(navItems.length).toBe(14);
// 15 nav items (group headers are not nav items)
expect(navItems.length).toBe(15);
// Labels include scope icons (Globe for global, Folder for project)
const labels = Array.from(navItems).map((el) => el.textContent?.trim());
@@ -1718,6 +1718,7 @@ describe("SettingsModal", () => {
"Commands",
"Merge",
"Memory",
"Experimental Features",
"Prompts",
"Backups",
"Plugins",