refactor(test): use env snapshots in setup hooks

This commit is contained in:
Peter Steinberger
2026-02-21 13:14:49 +00:00
parent 7724abeee0
commit 992b7e5577
4 changed files with 44 additions and 41 deletions

View File

@@ -40,6 +40,22 @@ describe("env test utils", () => {
expect(process.env[key]).toBe(prev);
});
it("withEnv can delete a key only inside callback", () => {
const key = "OPENCLAW_ENV_TEST_SYNC_DELETE";
const prev = process.env[key];
process.env[key] = "outer";
const seen = withEnv({ [key]: undefined }, () => process.env[key]);
expect(seen).toBeUndefined();
expect(process.env[key]).toBe("outer");
if (prev === undefined) {
delete process.env[key];
} else {
process.env[key] = prev;
}
});
it("withEnvAsync restores values when callback throws", async () => {
const key = "OPENCLAW_ENV_TEST_ASYNC";
const prev = process.env[key];
@@ -63,4 +79,20 @@ describe("env test utils", () => {
expect(seen).toBe("inside");
expect(process.env[key]).toBe(prev);
});
it("withEnvAsync can delete a key only inside callback", async () => {
const key = "OPENCLAW_ENV_TEST_ASYNC_DELETE";
const prev = process.env[key];
process.env[key] = "outer";
const seen = await withEnvAsync({ [key]: undefined }, async () => process.env[key]);
expect(seen).toBeUndefined();
expect(process.env[key]).toBe("outer");
if (prev === undefined) {
delete process.env[key];
} else {
process.env[key] = prev;
}
});
});