diff --git a/packages/void/test/unit/island-css-rewrite.test.ts b/packages/void/test/unit/island-css-rewrite.test.ts index bf3e4a038..2d62536aa 100644 --- a/packages/void/test/unit/island-css-rewrite.test.ts +++ b/packages/void/test/unit/island-css-rewrite.test.ts @@ -1,30 +1,35 @@ +import { resolve } from "node:path"; +import { normalizePath } from "vite"; import { describe, it, expect } from "vitest"; import { rewriteCssImportForVirtualModule } from "../../src/pages/islands-plugin"; +/** Resolve a POSIX-style absolute path to a platform-correct path with forward slashes. */ +const p = (posix: string) => normalizePath(resolve(posix)); + describe("rewriteCssImportForVirtualModule", () => { it("rewrites relative CSS import to absolute path", () => { const result = rewriteCssImportForVirtualModule( 'import "./global.css"', "./global.css", - "/project/pages/layout.tsx", + p("/project/pages/layout.tsx"), ); - expect(result).toBe('import "/project/pages/global.css";'); + expect(result).toBe(`import "${p("/project/pages/global.css")}";`); }); it("rewrites parent-relative CSS import to absolute path", () => { const result = rewriteCssImportForVirtualModule( 'import "../styles/theme.css"', "../styles/theme.css", - "/project/pages/blog/index.tsx", + p("/project/pages/blog/index.tsx"), ); - expect(result).toBe('import "/project/pages/styles/theme.css";'); + expect(result).toBe(`import "${p("/project/pages/styles/theme.css")}";`); }); it("preserves bare specifiers (package imports)", () => { const result = rewriteCssImportForVirtualModule( 'import "@void/md/theme.css"', "@void/md/theme.css", - "/project/pages/layout.tsx", + p("/project/pages/layout.tsx"), ); expect(result).toBe('import "@void/md/theme.css";'); }); @@ -33,7 +38,7 @@ describe("rewriteCssImportForVirtualModule", () => { const result = rewriteCssImportForVirtualModule( 'import "/absolute/path/style.css"', "/absolute/path/style.css", - "/project/pages/layout.tsx", + p("/project/pages/layout.tsx"), ); expect(result).toBe('import "/absolute/path/style.css";'); }); @@ -42,7 +47,7 @@ describe("rewriteCssImportForVirtualModule", () => { const result = rewriteCssImportForVirtualModule( ' import "some-lib/styles.css" ', "some-lib/styles.css", - "/project/pages/layout.tsx", + p("/project/pages/layout.tsx"), ); expect(result).toBe('import "some-lib/styles.css";'); }); @@ -52,10 +57,10 @@ describe("rewriteCssImportForVirtualModule", () => { const result = rewriteCssImportForVirtualModule( 'import "./card.css"', "./card.css", - "/project/pages/components/deep/Card.tsx", + p("/project/pages/components/deep/Card.tsx"), ); // Should always use forward slashes regardless of OS expect(result).not.toContain("\\"); - expect(result).toBe('import "/project/pages/components/deep/card.css";'); + expect(result).toBe(`import "${p("/project/pages/components/deep/card.css")}";`); }); });