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
85 lines
2.3 KiB
TypeScript
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"
|
|
);
|
|
});
|
|
});
|