/* Copyright 2026 Marimo. All rights reserved. */ import { Provider as SlotzProvider } from "@marimo-team/react-slotz"; import { render } from "@testing-library/react"; import { describe, expect, it } from "vitest"; import { Functions } from "@/utils/functions"; import { Sidebar } from "../sidebar"; import { normalizeWidth } from "../state"; describe("Sidebar", () => { it("should use default width when no width is provided", () => { const { container } = render( , ); const aside = container.querySelector("aside"); expect(aside?.style.width).toBe("68px"); // closed width when not open }); it("should use provided width when width is specified", () => { const { container } = render( , ); const aside = container.querySelector("aside"); expect(aside?.style.width).toBe("400px"); // open width when isOpen is true }); it("should convert numeric width to px", () => { const { container } = render( , ); const aside = container.querySelector("aside"); expect(aside?.style.width).toBe("400px"); // open width when isOpen is true }); }); describe("normalizeWidth", () => { it("should return default width when no width is provided", () => { expect(normalizeWidth(undefined)).toBe("288px"); }); it("should add px to numeric values", () => { expect(normalizeWidth("400")).toBe("400px"); }); it("should not modify values with units", () => { expect(normalizeWidth("20rem")).toBe("20rem"); expect(normalizeWidth("50%")).toBe("50%"); expect(normalizeWidth("100vh")).toBe("100vh"); }); });