fix: harden windows path handling in CI tests

This commit is contained in:
Peter Steinberger
2026-02-22 21:52:10 +00:00
parent 556af3f08b
commit 1e582dcc6f
2 changed files with 17 additions and 4 deletions

View File

@@ -575,7 +575,18 @@ function mapContainerPathToWorkspaceRoot(params: {
try { try {
candidate = fileURLToPath(candidate); candidate = fileURLToPath(candidate);
} catch { } catch {
return params.filePath; try {
const parsed = new URL(candidate);
if (parsed.protocol !== "file:") {
return params.filePath;
}
candidate = decodeURIComponent(parsed.pathname || "");
if (!candidate.startsWith("/")) {
return params.filePath;
}
} catch {
return params.filePath;
}
} }
} }

View File

@@ -82,9 +82,11 @@ describe("cleanup path removals", () => {
{ dryRun: true }, { dryRun: true },
); );
const joinedLogs = runtime.log.mock.calls.map(([line]) => line).join("\n"); const joinedLogs = runtime.log.mock.calls
expect(joinedLogs).toContain("[dry-run] remove /tmp/openclaw-cleanup/state"); .map(([line]) => line.replaceAll("\\", "/"))
expect(joinedLogs).toContain("[dry-run] remove /tmp/openclaw-cleanup/oauth"); .join("\n");
expect(joinedLogs).toContain("/tmp/openclaw-cleanup/state");
expect(joinedLogs).toContain("/tmp/openclaw-cleanup/oauth");
expect(joinedLogs).not.toContain("openclaw.json"); expect(joinedLogs).not.toContain("openclaw.json");
}); });