70bf21e064
Deploy (to testing) and Test Playground Preview Worker / Deploy Playground Preview Worker (testing) (push) Has been skipped
Deploy Workers Shared Staging / Deploy Workers Shared Staging (push) Failing after 0s
Prerelease / build (push) Has been skipped
Handle Changesets / Handle Changesets (push) Has been cancelled
Semgrep OSS scan / semgrep-oss (push) Has been cancelled
82 lines
2.3 KiB
TypeScript
82 lines
2.3 KiB
TypeScript
import { runInTempDir, seed } from "@cloudflare/workers-utils/test-helpers";
|
|
import { describe, test } from "vitest";
|
|
import { getInstalledPackageVersion } from "../src/frameworks/utils/packages";
|
|
|
|
describe("getInstalledPackageVersion()", () => {
|
|
runInTempDir();
|
|
test("happy path", async ({ expect }) => {
|
|
await seed({
|
|
"node_modules/react-router/package.json": JSON.stringify({
|
|
name: "react-router",
|
|
version: "1.2.3",
|
|
main: "index.js",
|
|
}),
|
|
"node_modules/react-router/index.js": "console.log(1)",
|
|
});
|
|
expect(getInstalledPackageVersion("react-router", process.cwd())).toBe(
|
|
"1.2.3"
|
|
);
|
|
});
|
|
|
|
test("no node_modules", async ({ expect }) => {
|
|
expect(
|
|
getInstalledPackageVersion("react-router", process.cwd())
|
|
).toBeUndefined();
|
|
});
|
|
|
|
test("aliased package returns the bundled version of the requested package", async ({
|
|
expect,
|
|
}) => {
|
|
// vite+ installs `@voidzero-dev/vite-plus-core` under the `vite` alias, so
|
|
// the resolved package.json has a different `name` and its own `version`.
|
|
await seed({
|
|
"node_modules/vite/package.json": JSON.stringify({
|
|
name: "@voidzero-dev/vite-plus-core",
|
|
version: "0.2.2",
|
|
bundledVersions: {
|
|
vite: "8.1.2",
|
|
rolldown: "1.0.0",
|
|
tsdown: "0.15.0",
|
|
},
|
|
main: "index.js",
|
|
}),
|
|
"node_modules/vite/index.js": "console.log(1)",
|
|
});
|
|
expect(getInstalledPackageVersion("vite", process.cwd())).toBe("8.1.2");
|
|
});
|
|
|
|
test("aliased package without a matching bundled version falls back to its own version", async ({
|
|
expect,
|
|
}) => {
|
|
await seed({
|
|
"node_modules/vite/package.json": JSON.stringify({
|
|
name: "@voidzero-dev/vite-plus-core",
|
|
version: "0.2.2",
|
|
bundledVersions: {
|
|
rolldown: "1.0.0",
|
|
},
|
|
main: "index.js",
|
|
}),
|
|
"node_modules/vite/index.js": "console.log(1)",
|
|
});
|
|
expect(getInstalledPackageVersion("vite", process.cwd())).toBe("0.2.2");
|
|
});
|
|
|
|
test("package whose name matches ignores bundledVersions and returns its own version", async ({
|
|
expect,
|
|
}) => {
|
|
await seed({
|
|
"node_modules/vite/package.json": JSON.stringify({
|
|
name: "vite",
|
|
version: "6.3.0",
|
|
bundledVersions: {
|
|
vite: "8.1.2",
|
|
},
|
|
main: "index.js",
|
|
}),
|
|
"node_modules/vite/index.js": "console.log(1)",
|
|
});
|
|
expect(getInstalledPackageVersion("vite", process.cwd())).toBe("6.3.0");
|
|
});
|
|
});
|