41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { classifyViteJavascript } from "../../scripts/lib/classify-vite-bundle.ts";
|
|
|
|
describe("Vite bundle classification", () => {
|
|
it("counts transitive static imports as initial and keeps dynamic chunks lazy", () => {
|
|
expect(
|
|
classifyViteJavascript({
|
|
"index.html": {
|
|
file: "assets/entry.js",
|
|
isEntry: true,
|
|
imports: ["_shared.js"],
|
|
},
|
|
"_shared.js": { file: "assets/shared.js", imports: ["_runtime.js"] },
|
|
"_runtime.js": { file: "assets/runtime.js" },
|
|
"src/lazy.js": { file: "assets/lazy.js" },
|
|
}),
|
|
).toEqual({
|
|
initialFiles: [
|
|
"assets/entry.js",
|
|
"assets/runtime.js",
|
|
"assets/shared.js",
|
|
],
|
|
lazyFiles: ["assets/lazy.js"],
|
|
missingImports: [],
|
|
});
|
|
});
|
|
|
|
it("reports a manifest import that cannot be resolved", () => {
|
|
expect(
|
|
classifyViteJavascript({
|
|
"index.html": {
|
|
file: "assets/entry.js",
|
|
isEntry: true,
|
|
imports: ["_missing.js"],
|
|
},
|
|
}).missingImports,
|
|
).toEqual(["_missing.js"]);
|
|
});
|
|
});
|