Persist sidebar collapsed preference to localStorage

This commit is contained in:
2026-04-21 19:17:00 +02:00
parent b3eb5dc6ec
commit 4f91e8fdd3
3 changed files with 53 additions and 7 deletions

View File

@@ -18,7 +18,7 @@ import { MainLayout } from "../../layouts/MainLayout";
// Mocks
// ---------------------------------------------------------------------------
vi.mock("../../providers/AuthProvider", () => ({
vi.mock("../../hooks/useAuth", () => ({
useAuth: () => ({ logout: vi.fn() }),
}));
@@ -56,6 +56,7 @@ function renderLayout(): void {
describe("MainLayout", () => {
beforeEach(() => {
vi.clearAllMocks();
localStorage.clear();
});
it("renders the navigation sidebar", () => {
@@ -75,4 +76,17 @@ describe("MainLayout", () => {
await userEvent.click(toggleButton);
expect(screen.queryByText("BanGUI")).not.toBeInTheDocument();
});
it("initialises sidebar collapsed state from localStorage", () => {
localStorage.setItem("bangui_sidebar_collapsed", "true");
renderLayout();
expect(screen.queryByText("BanGUI")).not.toBeInTheDocument();
});
it("persists sidebar collapsed state to localStorage when toggled", async () => {
renderLayout();
const toggleButton = screen.getByRole("button", { name: /collapse sidebar/i });
await userEvent.click(toggleButton);
expect(localStorage.getItem("bangui_sidebar_collapsed")).toBe("true");
});
});