From 324922f804e243aa0d30089f631ba86780be3e97 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 21 Feb 2026 19:03:09 +0000 Subject: [PATCH] refactor(test): dedupe temp dir lifecycle in agents skills directory e2e --- ...skills.agents-skills-directory.e2e.test.ts | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/agents/skills.agents-skills-directory.e2e.test.ts b/src/agents/skills.agents-skills-directory.e2e.test.ts index 39cfead55a8..60d47049a85 100644 --- a/src/agents/skills.agents-skills-directory.e2e.test.ts +++ b/src/agents/skills.agents-skills-directory.e2e.test.ts @@ -5,6 +5,14 @@ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { buildWorkspaceSkillsPrompt } from "./skills.js"; import { writeSkill } from "./skills.test-helpers.js"; +const tempDirs: string[] = []; + +async function createTempDir(prefix: string) { + const dir = await fs.mkdtemp(path.join(os.tmpdir(), prefix)); + tempDirs.push(dir); + return dir; +} + function buildSkillsPrompt(workspaceDir: string, managedDir: string, bundledDir: string): string { return buildWorkspaceSkillsPrompt(workspaceDir, { managedSkillsDir: managedDir, @@ -13,7 +21,7 @@ function buildSkillsPrompt(workspaceDir: string, managedDir: string, bundledDir: } async function createWorkspaceSkillDirs() { - const workspaceDir = await fs.mkdtemp(path.join(os.tmpdir(), "openclaw-")); + const workspaceDir = await createTempDir("openclaw-"); return { workspaceDir, managedDir: path.join(workspaceDir, ".managed"), @@ -25,12 +33,17 @@ describe("buildWorkspaceSkillsPrompt — .agents/skills/ directories", () => { let fakeHome: string; beforeEach(async () => { - fakeHome = await fs.mkdtemp(path.join(os.tmpdir(), "openclaw-home-")); + fakeHome = await createTempDir("openclaw-home-"); vi.spyOn(os, "homedir").mockReturnValue(fakeHome); }); - afterEach(() => { + afterEach(async () => { vi.restoreAllMocks(); + await Promise.all( + tempDirs + .splice(0, tempDirs.length) + .map((dir) => fs.rm(dir, { recursive: true, force: true })), + ); }); it("loads project .agents/skills/ above managed and below workspace", async () => {