25 lines
848 B
TypeScript
25 lines
848 B
TypeScript
import { execFile } from "node:child_process";
|
|
import { promisify } from "node:util";
|
|
import { fileURLToPath } from "node:url";
|
|
import { describe, expect, it } from "vitest";
|
|
|
|
const execFileAsync = promisify(execFile);
|
|
const rootDir = fileURLToPath(new URL("../", import.meta.url));
|
|
|
|
describe("worker script configuration", () => {
|
|
it("fails fast in production when the internal worker token is missing", async () => {
|
|
await expect(execFileAsync(process.execPath, ["scripts/worker.mjs", "--once"], {
|
|
cwd: rootDir,
|
|
env: {
|
|
...process.env,
|
|
NODE_ENV: "production",
|
|
ZHINIAN_INTERNAL_WORKER_TOKEN: "",
|
|
ZHINIAN_WORKER_BASE_URL: "http://127.0.0.1:9"
|
|
}
|
|
})).rejects.toMatchObject({
|
|
code: 1,
|
|
stderr: expect.stringContaining("ZHINIAN_INTERNAL_WORKER_TOKEN is required")
|
|
});
|
|
});
|
|
});
|