Files
cloudflare__vinext/tests/server-external-packages.test.ts
T
James Anderson 2cbd2a0356 fix(build): apply default server externals (#2257)
* fix(build): externalize Next.js default server packages

* test(node): cover externalized shiki in standalone output
2026-06-23 10:20:55 +00:00

28 lines
1.2 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { mergeServerExternalPackages } from "../packages/vinext/src/config/server-external-packages.js";
describe("mergeServerExternalPackages", () => {
it("includes Next.js defaults and appends unique user packages", () => {
const packages = mergeServerExternalPackages(["typescript", "custom-package"]);
expect(packages).toContain("shiki");
expect(packages).toContain("ts-morph");
expect(packages).toContain("typescript");
expect(packages).toContain("custom-package");
expect(packages.filter((name) => name === "typescript")).toHaveLength(1);
});
it("lets transpilePackages override default externals", () => {
const packages = mergeServerExternalPackages([], ["typescript", "shiki"]);
expect(packages).not.toContain("shiki");
expect(packages).not.toContain("typescript");
});
it("rejects conflicts between explicit externals and transpiled packages", () => {
expect(() => mergeServerExternalPackages(["typescript"], ["typescript"])).toThrow(
"The packages specified in the 'transpilePackages' conflict with the 'serverExternalPackages': typescript",
);
});
});