Files
cloudflare__vinext/tests/pages-dev-module-url.test.ts
T
James Anderson c3dcdba1fe fix(pages): honor basePath in dev module loaders (#2033)
* fix(pages): honor basePath in dev module loaders

* fix(pages): preserve basePath in ISR loaders

* style(pages): format dev module loader changes

* fix(pages): preserve dynamic route module paths

* test(pages): run basePath dev coverage in CI
2026-06-15 22:42:33 +01:00

39 lines
1.4 KiB
TypeScript

import { describe, expect, it } from "vite-plus/test";
import { createPagesDevModuleUrl } from "../packages/vinext/src/server/pages-dev-module-url.js";
describe("createPagesDevModuleUrl", () => {
it("uses Vite's configured base without applying assetPrefix", () => {
expect(createPagesDevModuleUrl("/repo", "/repo/pages/about.tsx", "/docs/")).toBe(
"/docs/pages/about.tsx",
);
});
it("preserves root-base behavior", () => {
expect(createPagesDevModuleUrl("/repo", "/repo/pages/about.tsx", "/")).toBe("/pages/about.tsx");
});
it("normalizes Windows paths", () => {
expect(createPagesDevModuleUrl("C:\\repo", "C:\\repo\\pages\\about.tsx", "/docs/")).toBe(
"/docs/pages/about.tsx",
);
});
it("encodes path query and fragment delimiters", () => {
expect(createPagesDevModuleUrl("/repo", "/repo/pages/what?#.tsx", "/docs/")).toBe(
"/docs/pages/what%3F%23.tsx",
);
});
it("preserves dynamic route brackets for Vite module resolution", () => {
expect(createPagesDevModuleUrl("/repo", "/repo/pages/blog/[slug].tsx", "/docs/")).toBe(
"/docs/pages/blog/[slug].tsx",
);
});
it("returns a stable URL for Vite HMR module identity", () => {
const first = createPagesDevModuleUrl("/repo", "/repo/pages/about.tsx", "/docs/");
const second = createPagesDevModuleUrl("/repo", "/repo/pages/about.tsx", "/docs/");
expect(second).toBe(first);
});
});