From 225d58b74aca0fcf54516141643a514938f023ba Mon Sep 17 00:00:00 2001 From: Gustavo Madeira Santana Date: Sat, 28 Mar 2026 20:34:41 -0400 Subject: [PATCH] test: ignore stale isolated state dir in live env staging --- test/test-env.test.ts | 3 +++ test/test-env.ts | 15 +++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/test/test-env.test.ts b/test/test-env.test.ts index 05174a8be03..bc073931b7a 100644 --- a/test/test-env.test.ts +++ b/test/test-env.test.ts @@ -50,6 +50,7 @@ afterEach(() => { describe("installTestEnv", () => { it("keeps live tests on a temp HOME while copying config and auth state", () => { const realHome = createTempHome(); + const priorIsolatedHome = createTempHome(); writeFile(path.join(realHome, ".profile"), "export TEST_PROFILE_ONLY=from-profile\n"); writeFile( path.join(realHome, "custom-openclaw.json5"), @@ -87,6 +88,8 @@ describe("installTestEnv", () => { process.env.OPENCLAW_LIVE_TEST = "1"; process.env.OPENCLAW_LIVE_TEST_QUIET = "1"; process.env.OPENCLAW_CONFIG_PATH = "~/custom-openclaw.json5"; + process.env.OPENCLAW_TEST_HOME = priorIsolatedHome; + process.env.OPENCLAW_STATE_DIR = path.join(priorIsolatedHome, ".openclaw"); const testEnv = installTestEnv(); cleanupFns.push(testEnv.cleanup); diff --git a/test/test-env.ts b/test/test-env.ts index ef9d5277498..ad01e5d3870 100644 --- a/test/test-env.ts +++ b/test/test-env.ts @@ -277,9 +277,20 @@ function stageLiveTestState(params: { realHome: string; tempHome: string; }): void { - const realStateDir = params.env.OPENCLAW_STATE_DIR?.trim() - ? resolveHomeRelativePath(params.env.OPENCLAW_STATE_DIR, params.realHome) + const rawStateDir = params.env.OPENCLAW_STATE_DIR?.trim(); + let realStateDir = rawStateDir + ? resolveHomeRelativePath(rawStateDir, params.realHome) : path.join(params.realHome, ".openclaw"); + const priorIsolatedHome = params.env.OPENCLAW_TEST_HOME?.trim(); + const snapshotHome = params.env.HOME?.trim(); + if ( + priorIsolatedHome && + snapshotHome && + snapshotHome !== priorIsolatedHome && + realStateDir === path.join(priorIsolatedHome, ".openclaw") + ) { + realStateDir = path.join(params.realHome, ".openclaw"); + } const tempStateDir = path.join(params.tempHome, ".openclaw"); fs.mkdirSync(tempStateDir, { recursive: true });