import { cn } from "../cn"; describe("cn", () => { it("joins truthy class names", () => { expect(cn("a", "b")).toBe("a b"); }); it("drops falsy values", () => { expect(cn("a", false, undefined, null, "", "b")).toBe("a b"); }); it("resolves tailwind conflicts in favour of the last class", () => { expect(cn("px-2", "px-4")).toBe("px-4"); expect(cn("text-red-500", "text-blue-500")).toBe("text-blue-500"); }); it("preserves non-conflicting tailwind classes", () => { expect(cn("flex", "items-center", "p-4")).toBe("flex items-center p-4"); }); it("flattens nested arrays and objects", () => { expect(cn(["a", "b"], { c: true, d: false })).toBe("a b c"); }); });