mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-09 00:18:26 +00:00
perf(test): replace module resets with direct spies and runtime seams
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
import fs from "node:fs/promises";
|
||||
import os from "node:os";
|
||||
import path from "node:path";
|
||||
import { describe, expect, it, vi } from "vitest";
|
||||
import { describe, expect, it } from "vitest";
|
||||
import {
|
||||
resolveDefaultConfigCandidates,
|
||||
resolveConfigPathCandidate,
|
||||
resolveConfigPath,
|
||||
resolveOAuthDir,
|
||||
resolveOAuthPath,
|
||||
@@ -108,74 +109,16 @@ describe("state + config path candidates", () => {
|
||||
|
||||
it("CONFIG_PATH prefers existing config when present", async () => {
|
||||
const root = await fs.mkdtemp(path.join(os.tmpdir(), "openclaw-config-"));
|
||||
const previousHome = process.env.HOME;
|
||||
const previousUserProfile = process.env.USERPROFILE;
|
||||
const previousHomeDrive = process.env.HOMEDRIVE;
|
||||
const previousHomePath = process.env.HOMEPATH;
|
||||
const previousOpenClawConfig = process.env.OPENCLAW_CONFIG_PATH;
|
||||
const previousOpenClawState = process.env.OPENCLAW_STATE_DIR;
|
||||
try {
|
||||
const legacyDir = path.join(root, ".openclaw");
|
||||
await fs.mkdir(legacyDir, { recursive: true });
|
||||
const legacyPath = path.join(legacyDir, "openclaw.json");
|
||||
await fs.writeFile(legacyPath, "{}", "utf-8");
|
||||
|
||||
process.env.HOME = root;
|
||||
if (process.platform === "win32") {
|
||||
process.env.USERPROFILE = root;
|
||||
const parsed = path.win32.parse(root);
|
||||
process.env.HOMEDRIVE = parsed.root.replace(/\\$/, "");
|
||||
process.env.HOMEPATH = root.slice(parsed.root.length - 1);
|
||||
}
|
||||
delete process.env.OPENCLAW_CONFIG_PATH;
|
||||
delete process.env.OPENCLAW_STATE_DIR;
|
||||
|
||||
vi.resetModules();
|
||||
const { CONFIG_PATH } = await import("./paths.js");
|
||||
expect(CONFIG_PATH).toBe(legacyPath);
|
||||
const resolved = resolveConfigPathCandidate({} as NodeJS.ProcessEnv, () => root);
|
||||
expect(resolved).toBe(legacyPath);
|
||||
} finally {
|
||||
if (previousHome === undefined) {
|
||||
delete process.env.HOME;
|
||||
} else {
|
||||
process.env.HOME = previousHome;
|
||||
}
|
||||
if (previousUserProfile === undefined) {
|
||||
delete process.env.USERPROFILE;
|
||||
} else {
|
||||
process.env.USERPROFILE = previousUserProfile;
|
||||
}
|
||||
if (previousHomeDrive === undefined) {
|
||||
delete process.env.HOMEDRIVE;
|
||||
} else {
|
||||
process.env.HOMEDRIVE = previousHomeDrive;
|
||||
}
|
||||
if (previousHomePath === undefined) {
|
||||
delete process.env.HOMEPATH;
|
||||
} else {
|
||||
process.env.HOMEPATH = previousHomePath;
|
||||
}
|
||||
if (previousOpenClawConfig === undefined) {
|
||||
delete process.env.OPENCLAW_CONFIG_PATH;
|
||||
} else {
|
||||
process.env.OPENCLAW_CONFIG_PATH = previousOpenClawConfig;
|
||||
}
|
||||
if (previousOpenClawConfig === undefined) {
|
||||
delete process.env.OPENCLAW_CONFIG_PATH;
|
||||
} else {
|
||||
process.env.OPENCLAW_CONFIG_PATH = previousOpenClawConfig;
|
||||
}
|
||||
if (previousOpenClawState === undefined) {
|
||||
delete process.env.OPENCLAW_STATE_DIR;
|
||||
} else {
|
||||
process.env.OPENCLAW_STATE_DIR = previousOpenClawState;
|
||||
}
|
||||
if (previousOpenClawState === undefined) {
|
||||
delete process.env.OPENCLAW_STATE_DIR;
|
||||
} else {
|
||||
process.env.OPENCLAW_STATE_DIR = previousOpenClawState;
|
||||
}
|
||||
await fs.rm(root, { recursive: true, force: true });
|
||||
vi.resetModules();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user