Files
wehub-resource-sync 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
chore: import upstream snapshot with attribution
2026-07-13 12:30:11 +08:00

85 lines
2.3 KiB
TypeScript

import { randomUUID } from "node:crypto";
import { afterEach, describe, it, vi } from "vitest";
import { runInTempDir, seed } from "../src/test-helpers";
import { getWorkerNameFromProject } from "../src/worker-name";
describe("getWorkerNameFromProject()", () => {
runInTempDir();
afterEach(() => {
vi.unstubAllGlobals();
});
const workerNamesToTest = [
{ rawName: "my-project-1", normalizedName: "my-project-1" },
{
rawName: "--my-other-project%1_",
normalizedName: "my-other-project-1",
},
{
rawName: "x".repeat(100),
normalizedName: "x".repeat(63),
},
];
it.for(workerNamesToTest)(
"should use the directory name as the worker name when no package.json, normalizing if needed (%s)",
async (
{ rawName: dirname, normalizedName: expectedWorkerName },
{ expect }
) => {
await seed({
[`./${dirname}/index.html`]: "<h1>Hello World</h1>",
});
expect(getWorkerNameFromProject(`./${dirname}`)).toBe(expectedWorkerName);
}
);
it.for(workerNamesToTest)(
"should use the name from package.json when available, normalizing if needed (%s)",
async (
{ rawName: projectName, normalizedName: expectedWorkerName },
{ expect }
) => {
const dirname = `project-${randomUUID()}`;
await seed({
[`./${dirname}/package.json`]: JSON.stringify({ name: projectName }),
});
expect(getWorkerNameFromProject(`./${dirname}`)).toBe(expectedWorkerName);
}
);
it("should fall back to directory name when package.json has no name field", async ({
expect,
}) => {
const dirname = "my-test-project";
await seed({
[`./${dirname}/package.json`]: JSON.stringify({ version: "1.0.0" }),
});
expect(getWorkerNameFromProject(`./${dirname}`)).toBe(dirname);
});
it("should fall back to directory name when package.json is invalid", async ({
expect,
}) => {
const dirname = "my-test-project";
await seed({
[`./${dirname}/package.json`]: "not valid json",
});
expect(getWorkerNameFromProject(`./${dirname}`)).toBe(dirname);
});
it("WRANGLER_CI_OVERRIDE_NAME should override the worker name", async ({
expect,
}) => {
vi.stubEnv("WRANGLER_CI_OVERRIDE_NAME", "overridden-worker-name");
await seed({
"./my-project/package.json": JSON.stringify({ name: "original-name" }),
});
expect(getWorkerNameFromProject("./my-project")).toBe(
"overridden-worker-name"
);
});
});