50 lines
2.7 KiB
TypeScript
50 lines
2.7 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { getManualChunkName } from "./manualChunks";
|
|
|
|
describe("manual chunk boundaries", () => {
|
|
it.each([
|
|
["/repo/node_modules/react/index.js", "vendor-react"],
|
|
["/repo/node_modules/react-dom/client.js", "vendor-react"],
|
|
["/repo/node_modules/react-router/dist/development/index.mjs", "vendor-react"],
|
|
["/repo/node_modules/clsx/dist/clsx.mjs", "vendor-core-utils"],
|
|
["/repo/node_modules/tailwind-merge/dist/lib/index.mjs", "vendor-core-utils"],
|
|
["/repo/node_modules/class-variance-authority/dist/index.mjs", "vendor-core-utils"],
|
|
["/repo/node_modules/recharts/es6/index.js", "vendor-charts"],
|
|
["/repo/node_modules/d3-shape/src/index.js", "vendor-charts"],
|
|
["/repo/node_modules/@monaco-editor/react/dist/index.mjs", "vendor-monaco"],
|
|
["/repo/node_modules/monaco-editor/esm/vs/editor/editor.api.js", "vendor-monaco"],
|
|
["/repo/node_modules/marked/lib/marked.esm.js", "vendor-markdown"],
|
|
["/repo/node_modules/katex/dist/katex.mjs", "vendor-markdown"],
|
|
["/repo/node_modules/@tiptap/react/dist/index.js", "vendor-editor-tiptap"],
|
|
["/repo/node_modules/prosemirror-state/dist/index.js", "vendor-editor-prosemirror"],
|
|
["/repo/node_modules/@react-pdf/renderer/lib/react-pdf.browser.js", "vendor-pdf"],
|
|
["/repo/node_modules/@xyflow/react/dist/esm/index.js", "vendor-workflow"],
|
|
["/repo/node_modules/@aws-sdk/client-s3/dist-es/S3Client.js", "vendor-aws-sdk"],
|
|
["/repo/node_modules/@smithy/core/dist-es/submodules/client/index.js", "vendor-aws-sdk"],
|
|
["/repo/node_modules/@react-email/components/dist/index.mjs", "vendor-react-email"],
|
|
["/repo/node_modules/react-email/dist/index.js", "vendor-react-email"],
|
|
])("maps %s to %s", (id, chunkName) => {
|
|
expect(getManualChunkName(id)).toBe(chunkName);
|
|
});
|
|
|
|
it("supports Windows-like node_modules paths from Rollup ids", () => {
|
|
expect(getManualChunkName("C:\\repo\\node_modules\\monaco-editor\\esm\\vs\\editor\\editor.api.js")).toBe("vendor-monaco");
|
|
});
|
|
|
|
it.each([
|
|
"/repo/apps/web/app/components/monaco-editor/FakeEditor.tsx",
|
|
"/repo/apps/web/app/routes/workflows/workflow-builder.tsx",
|
|
"/repo/node_modules/streamdown/dist/index.js",
|
|
"/repo/node_modules/remark-gfm/index.js",
|
|
"/repo/node_modules/hast-util-to-jsx-runtime/index.js",
|
|
"/repo/node_modules/shiki/dist/index.mjs",
|
|
"/repo/node_modules/@shikijs/langs/dist/javascript.mjs",
|
|
"/repo/node_modules/mermaid/dist/mermaid.esm.mjs",
|
|
"/repo/node_modules/cytoscape/dist/cytoscape.esm.mjs",
|
|
"/repo/node_modules/@tiptap-adjacent/react/index.js",
|
|
])("leaves non-heavy or app module %s unchunked", (id) => {
|
|
expect(getManualChunkName(id)).toBeUndefined();
|
|
});
|
|
});
|