修复token缺失bug
This commit is contained in:
29
tests/deploy-env.test.ts
Normal file
29
tests/deploy-env.test.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import { mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
|
||||
import { execFile } from "node:child_process";
|
||||
import { tmpdir } from "node:os";
|
||||
import { join } from "node:path";
|
||||
import { promisify } from "node:util";
|
||||
import { describe, expect, it } from "vitest";
|
||||
|
||||
const execFileAsync = promisify(execFile);
|
||||
|
||||
describe("deployment environment preparation", () => {
|
||||
it("adds a strong internal worker token when .env.local does not define one", async () => {
|
||||
const dir = await mkdtemp(join(tmpdir(), "zhinian-deploy-env-"));
|
||||
try {
|
||||
await writeFile(join(dir, ".env.example"), "APP_PORT=3000\nZHINIAN_INTERNAL_WORKER_TOKEN=change-me-worker-token\n");
|
||||
await writeFile(join(dir, ".env.local"), "APP_PORT=3001\n");
|
||||
|
||||
const { stdout } = await execFileAsync(process.execPath, ["scripts/ensure-deploy-env.mjs", dir], {
|
||||
cwd: new URL("../", import.meta.url)
|
||||
});
|
||||
const envLocal = await readFile(join(dir, ".env.local"), "utf8");
|
||||
|
||||
expect(stdout).toContain("Added ZHINIAN_INTERNAL_WORKER_TOKEN");
|
||||
expect(envLocal).toMatch(/^ZHINIAN_INTERNAL_WORKER_TOKEN=[a-f0-9]{64}$/m);
|
||||
expect(envLocal).toContain("APP_PORT=3001");
|
||||
} finally {
|
||||
await rm(dir, { force: true, recursive: true });
|
||||
}
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user