Adds test coverage for the navigation store's localStorage persistence and ensures clean state between tests. Changes: - nav-store.test.ts: Add persistence test verifying activeView is saved - Clear localStorage in beforeEach to prevent test pollution Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
import { describe, it, expect, beforeEach } from "vitest";
|
|
import { useNavStore } from "@/stores/nav-store";
|
|
|
|
describe("useNavStore", () => {
|
|
beforeEach(() => {
|
|
localStorage.clear();
|
|
useNavStore.setState({ activeView: "focus" });
|
|
});
|
|
|
|
it("defaults to focus view", () => {
|
|
expect(useNavStore.getState().activeView).toBe("focus");
|
|
});
|
|
|
|
it("switches to queue view", () => {
|
|
useNavStore.getState().setView("queue");
|
|
expect(useNavStore.getState().activeView).toBe("queue");
|
|
});
|
|
|
|
it("switches to inbox view", () => {
|
|
useNavStore.getState().setView("inbox");
|
|
expect(useNavStore.getState().activeView).toBe("inbox");
|
|
});
|
|
|
|
it("switches back to focus", () => {
|
|
useNavStore.getState().setView("queue");
|
|
useNavStore.getState().setView("focus");
|
|
expect(useNavStore.getState().activeView).toBe("focus");
|
|
});
|
|
|
|
describe("persistence", () => {
|
|
it("persists activeView to localStorage", () => {
|
|
useNavStore.getState().setView("queue");
|
|
|
|
const stored = localStorage.getItem("mc-nav-store");
|
|
expect(stored).not.toBeNull();
|
|
|
|
const parsed = JSON.parse(stored!);
|
|
expect(parsed.state.activeView).toBe("queue");
|
|
});
|
|
});
|
|
});
|