import { describe, expect, it } from "vitest"; import { transformTailwind } from "./tailwind"; describe("transformTailwind — v3 -> v4 class renames", () => { it("renames the flex-grow/shrink family", () => { const r = transformTailwind(`
`); expect(r.content).toContain('className="grow-0 shrink"'); }); it("removes transform/filter (v4 applies them automatically)", () => { const r = transformTailwind(``); expect(r.content).toContain('className="scale-105"'); }); it("bumps the default ring width (v3 3px -> v4 ring-3)", () => { const r = transformTailwind(``); expect(r.content).toContain("ring-3 ring-blue-500"); }); it("shifts the shadow scale down one step without cascading (single-pass map lookup)", () => { const r = transformTailwind(``); expect(r.content).toContain('className="shadow-xs"'); }); it("shifts shadow, blur, rounded, and drop-shadow scales independently", () => { const r = transformTailwind( ``, ); expect(r.content).toContain("shadow-sm"); expect(r.content).toContain("blur-sm"); expect(r.content).toContain("rounded-sm"); expect(r.content).toContain("drop-shadow-sm"); }); it("renames outline-none to outline-hidden", () => { const r = transformTailwind(``); expect(r.content).toContain('className="outline-hidden"'); }); it("renames bg-gradient-to-* to bg-linear-to-*", () => { const r = transformTailwind(``); expect(r.content).toContain("bg-linear-to-r"); }); it("renames known daisyUI v4 -> v5 classes", () => { const r = transformTailwind(``); expect(r.content).toContain("badge-soft"); expect(r.content).toContain("card-sm"); }); }); describe("transformTailwind — gotcha detection (flag, don't auto-fix)", () => { it("flags DaisyUI .collapse usage as a manual-review finding", () => { const r = transformTailwind( `