feat(FN-1792): merge fusion/fn-1792

This commit is contained in:
gsxdsm
2026-04-15 04:00:56 -07:00
parent f86f5456ae
commit cd5d4551b6
8 changed files with 811 additions and 9 deletions

View File

@@ -328,6 +328,39 @@ describe("Header", () => {
expect(missionsBtn.getAttribute("aria-pressed")).toBe("false");
});
// ── Skills View Toggle ─────────────────────────────────────────
it("renders skills view button in view toggle when onChangeView is provided", () => {
const onChangeView = vi.fn();
render(<Header view="board" onChangeView={onChangeView} />);
const skillsBtn = screen.getByTitle("Skills view");
expect(skillsBtn).toBeDefined();
});
it("calls onChangeView with 'skills' when skills view button is clicked", () => {
const onChangeView = vi.fn();
render(<Header view="board" onChangeView={onChangeView} />);
const skillsBtn = screen.getByTitle("Skills view");
fireEvent.click(skillsBtn);
expect(onChangeView).toHaveBeenCalledWith("skills");
});
it("marks skills view button as active when view is 'skills'", () => {
const onChangeView = vi.fn();
render(<Header view="skills" onChangeView={onChangeView} />);
const skillsBtn = screen.getByTitle("Skills view");
expect(skillsBtn.className).toContain("active");
expect(skillsBtn.getAttribute("aria-pressed")).toBe("true");
});
it("does not mark skills view button as active when view is 'board'", () => {
const onChangeView = vi.fn();
render(<Header view="board" onChangeView={onChangeView} />);
const skillsBtn = screen.getByTitle("Skills view");
expect(skillsBtn.className).not.toContain("active");
expect(skillsBtn.getAttribute("aria-pressed")).toBe("false");
});
// ── Roadmaps View Toggle ───────────────────────────────────────
it("renders roadmaps view button in view toggle when onChangeView is provided", () => {
@@ -497,6 +530,20 @@ describe("Header", () => {
expect(screen.queryByTestId("desktop-header-search-btn")).toBeNull();
});
it("hides search input and toggle when view is 'skills'", () => {
const onSearchChange = vi.fn();
render(
<Header
view="skills"
onChangeView={vi.fn()}
searchQuery=""
onSearchChange={onSearchChange}
/>
);
expect(screen.queryByPlaceholderText("Search tasks...")).toBeNull();
expect(screen.queryByTestId("desktop-header-search-btn")).toBeNull();
});
// ── Terminal Button ─────────────────────────────────────────────
it("renders terminal button with correct title", () => {