Files
NianAIGC/tests/deploy-env.test.ts
2026-06-01 13:40:17 +08:00

30 lines
1.2 KiB
TypeScript

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 });
}
});
});