refactor(test): reuse env helper in models auth sync

This commit is contained in:
Peter Steinberger
2026-02-21 13:15:53 +00:00
parent 992b7e5577
commit aff272ec35

View File

@@ -4,31 +4,9 @@ import path from "node:path";
import { describe, expect, it, vi } from "vitest"; import { describe, expect, it, vi } from "vitest";
import { saveAuthProfileStore } from "../agents/auth-profiles.js"; import { saveAuthProfileStore } from "../agents/auth-profiles.js";
import { clearConfigCache } from "../config/config.js"; import { clearConfigCache } from "../config/config.js";
import { withEnvAsync } from "../test-utils/env.js";
import { modelsListCommand } from "./models/list.list-command.js"; import { modelsListCommand } from "./models/list.list-command.js";
const ENV_KEYS = [
"OPENCLAW_STATE_DIR",
"OPENCLAW_AGENT_DIR",
"PI_CODING_AGENT_DIR",
"OPENCLAW_CONFIG_PATH",
"OPENROUTER_API_KEY",
] as const;
function captureEnv() {
return Object.fromEntries(ENV_KEYS.map((key) => [key, process.env[key]]));
}
function restoreEnv(snapshot: Record<string, string | undefined>) {
for (const key of ENV_KEYS) {
const value = snapshot[key];
if (value === undefined) {
delete process.env[key];
} else {
process.env[key] = value;
}
}
}
async function pathExists(pathname: string): Promise<boolean> { async function pathExists(pathname: string): Promise<boolean> {
try { try {
await fs.stat(pathname); await fs.stat(pathname);
@@ -40,7 +18,6 @@ async function pathExists(pathname: string): Promise<boolean> {
describe("models list auth-profile sync", () => { describe("models list auth-profile sync", () => {
it("marks models available when auth exists only in auth-profiles.json", async () => { it("marks models available when auth exists only in auth-profiles.json", async () => {
const env = captureEnv();
const root = await fs.mkdtemp(path.join(os.tmpdir(), "openclaw-models-list-auth-sync-")); const root = await fs.mkdtemp(path.join(os.tmpdir(), "openclaw-models-list-auth-sync-"));
try { try {
@@ -50,12 +27,15 @@ describe("models list auth-profile sync", () => {
await fs.mkdir(agentDir, { recursive: true }); await fs.mkdir(agentDir, { recursive: true });
await fs.writeFile(configPath, "{}\n", "utf8"); await fs.writeFile(configPath, "{}\n", "utf8");
process.env.OPENCLAW_STATE_DIR = stateDir; await withEnvAsync(
process.env.OPENCLAW_AGENT_DIR = agentDir; {
process.env.PI_CODING_AGENT_DIR = agentDir; OPENCLAW_STATE_DIR: stateDir,
process.env.OPENCLAW_CONFIG_PATH = configPath; OPENCLAW_AGENT_DIR: agentDir,
delete process.env.OPENROUTER_API_KEY; PI_CODING_AGENT_DIR: agentDir,
OPENCLAW_CONFIG_PATH: configPath,
OPENROUTER_API_KEY: undefined,
},
async () => {
saveAuthProfileStore( saveAuthProfileStore(
{ {
version: 1, version: 1,
@@ -92,9 +72,10 @@ describe("models list auth-profile sync", () => {
expect(openrouter).toBeDefined(); expect(openrouter).toBeDefined();
expect(openrouter?.available).toBe(true); expect(openrouter?.available).toBe(true);
expect(await pathExists(authPath)).toBe(true); expect(await pathExists(authPath)).toBe(true);
},
);
} finally { } finally {
clearConfigCache(); clearConfigCache();
restoreEnv(env);
await fs.rm(root, { recursive: true, force: true }); await fs.rm(root, { recursive: true, force: true });
} }
}); });