|
1 | 1 | // Env deprecation tests ensure legacy prefixed variables warn once without |
2 | 2 | // leaking secret-shaped names or values. |
3 | 3 | import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; |
| 4 | +import { captureEnv, deleteTestEnvValue, withEnv } from "../test-utils/env.js"; |
4 | 5 | import { |
5 | 6 | resetLegacyOpenClawEnvWarningForTest, |
6 | 7 | warnLegacyOpenClawEnvVars, |
7 | 8 | } from "./env-deprecation.js"; |
8 | 9 | |
9 | 10 | describe("warnLegacyOpenClawEnvVars", () => { |
10 | | -const originalNodeEnv = process.env.NODE_ENV; |
11 | | -const originalVitest = process.env.VITEST; |
| 11 | +let envSnapshot: ReturnType<typeof captureEnv>; |
12 | 12 | let emitWarning: ReturnType<typeof vi.spyOn>; |
13 | 13 | |
14 | 14 | beforeEach(() => { |
| 15 | +envSnapshot = captureEnv(["NODE_ENV", "VITEST"]); |
15 | 16 | resetLegacyOpenClawEnvWarningForTest(); |
16 | 17 | emitWarning = vi.spyOn(process, "emitWarning").mockImplementation(() => {}); |
17 | | -delete process.env.NODE_ENV; |
18 | | -delete process.env.VITEST; |
| 18 | +deleteTestEnvValue("NODE_ENV"); |
| 19 | +deleteTestEnvValue("VITEST"); |
19 | 20 | }); |
20 | 21 | |
21 | 22 | afterEach(() => { |
22 | 23 | emitWarning.mockRestore(); |
23 | 24 | resetLegacyOpenClawEnvWarningForTest(); |
24 | | -restoreEnv("NODE_ENV", originalNodeEnv); |
25 | | -restoreEnv("VITEST", originalVitest); |
| 25 | +envSnapshot.restore(); |
26 | 26 | }); |
27 | 27 | |
28 | 28 | it("warns with counts and prefixes instead of secret-shaped env names", () => { |
@@ -87,18 +87,10 @@ describe("warnLegacyOpenClawEnvVars", () => {
|
87 | 87 | }); |
88 | 88 | |
89 | 89 | it("does not let process.env test flags suppress a synthetic env", () => { |
90 | | -process.env.VITEST = "true"; |
| 90 | +withEnv({ VITEST: "true" }, () => { |
| 91 | +warnLegacyOpenClawEnvVars({ CLAWDBOT_GATEWAY_TOKEN: "old-token" }); |
91 | 92 | |
92 | | -warnLegacyOpenClawEnvVars({ CLAWDBOT_GATEWAY_TOKEN: "old-token" }); |
93 | | - |
94 | | -expect(emitWarning).toHaveBeenCalledOnce(); |
| 93 | +expect(emitWarning).toHaveBeenCalledOnce(); |
| 94 | +}); |
95 | 95 | }); |
96 | 96 | }); |
97 | | - |
98 | | -function restoreEnv(name: string, value: string | undefined): void { |
99 | | -if (value === undefined) { |
100 | | -delete process.env[name]; |
101 | | -return; |
102 | | -} |
103 | | -process.env[name] = value; |
104 | | -} |