Files
tech-log-frontend/tests/unit/vite-route-chunks.test.ts

56 lines
1.5 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { findViteDynamicRouteChunk } from "../../scripts/lib/vite-route-chunks.ts";
describe("Vite route chunk identity", () => {
it("recognizes a governed manual chunk referenced by an entry dynamic import", () => {
const manifest = {
"_route-tech-log-home-abc.js": {
file: "assets/route-tech-log-home-abc.js",
name: "route-tech-log-home",
},
"index.html": {
file: "assets/index.js",
name: "index",
isEntry: true,
dynamicImports: ["_route-tech-log-home-abc.js"],
},
};
expect(findViteDynamicRouteChunk(manifest, "route-tech-log-home")).toEqual({
file: "assets/route-tech-log-home-abc.js",
name: "route-tech-log-home",
});
});
it("retains Vite native dynamic-entry support", () => {
const manifest = {
"src/page.tsx": {
file: "assets/page.js",
name: "route-page",
isDynamicEntry: true,
},
};
expect(findViteDynamicRouteChunk(manifest, "route-page")?.file).toBe(
"assets/page.js",
);
});
it("rejects a named chunk that is not dynamically reachable", () => {
const manifest = {
"_route-tech-log-home-abc.js": {
file: "assets/route-tech-log-home-abc.js",
name: "route-tech-log-home",
},
"index.html": {
file: "assets/index.js",
name: "index",
isEntry: true,
},
};
expect(findViteDynamicRouteChunk(manifest, "route-tech-log-home")).toBeUndefined();
});
});