diff --git a/src/resources/extensions/gsd/tests/commands-workflow-custom.test.ts b/src/resources/extensions/gsd/tests/commands-workflow-custom.test.ts index 7f80367a9..16642a7eb 100644 --- a/src/resources/extensions/gsd/tests/commands-workflow-custom.test.ts +++ b/src/resources/extensions/gsd/tests/commands-workflow-custom.test.ts @@ -36,7 +36,7 @@ afterEach(() => { process.chdir(savedCwd); } for (const d of tmpDirs) { - rmSync(d, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); + try { rmSync(d, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); } catch { /* Windows EPERM */ } } tmpDirs.length = 0; }); diff --git a/src/resources/extensions/gsd/tests/custom-engine-loop-integration.test.ts b/src/resources/extensions/gsd/tests/custom-engine-loop-integration.test.ts index bd7474aa8..ec7d89514 100644 --- a/src/resources/extensions/gsd/tests/custom-engine-loop-integration.test.ts +++ b/src/resources/extensions/gsd/tests/custom-engine-loop-integration.test.ts @@ -32,7 +32,7 @@ function makeTmpDir(): string { afterEach(() => { _resetPendingResolve(); for (const d of tmpDirs) { - rmSync(d, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); + try { rmSync(d, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); } catch { /* Windows EPERM — OS cleans up temp dirs */ } } tmpDirs.length = 0; }); diff --git a/src/resources/extensions/gsd/tests/custom-workflow-engine.test.ts b/src/resources/extensions/gsd/tests/custom-workflow-engine.test.ts index 0ba53de99..3fbb3bd57 100644 --- a/src/resources/extensions/gsd/tests/custom-workflow-engine.test.ts +++ b/src/resources/extensions/gsd/tests/custom-workflow-engine.test.ts @@ -29,7 +29,7 @@ function makeTmpDir(): string { afterEach(() => { for (const d of tmpDirs) { - rmSync(d, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); + try { rmSync(d, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); } catch { /* Windows EPERM */ } } tmpDirs.length = 0; }); diff --git a/src/resources/extensions/gsd/tests/definition-loader.test.ts b/src/resources/extensions/gsd/tests/definition-loader.test.ts index 3cf425813..55d3d9dfc 100644 --- a/src/resources/extensions/gsd/tests/definition-loader.test.ts +++ b/src/resources/extensions/gsd/tests/definition-loader.test.ts @@ -90,7 +90,7 @@ test("loadDefinition: valid 3-step YAML returns correct structure", () => { assert.deepEqual(def.steps[2].requires, ["outline"]); assert.deepEqual(def.steps[2].produces, ["draft.md"]); } finally { - rmSync(dir, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); + try { rmSync(dir, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); } catch { /* Windows EPERM */ } } }); @@ -235,7 +235,7 @@ test("loadDefinition: missing file → descriptive error", () => { }, ); } finally { - rmSync(dir, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); + try { rmSync(dir, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); } catch { /* Windows EPERM */ } } }); @@ -258,7 +258,7 @@ steps: }, ); } finally { - rmSync(dir, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); + try { rmSync(dir, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); } catch { /* Windows EPERM */ } } }); @@ -281,7 +281,7 @@ steps: const def = loadDefinition(dir, "test-workflow"); assert.deepEqual(def.steps[1].requires, ["first"]); } finally { - rmSync(dir, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); + try { rmSync(dir, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); } catch { /* Windows EPERM */ } } }); @@ -302,7 +302,7 @@ steps: const def = loadDefinition(dir, "test-workflow"); assert.deepEqual(def.steps[1].contextFrom, ["first"]); } finally { - rmSync(dir, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); + try { rmSync(dir, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); } catch { /* Windows EPERM */ } } }); @@ -738,7 +738,7 @@ steps: const def = loadDefinition(dir, "test-workflow"); assert.equal(def.params, undefined); } finally { - rmSync(dir, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); + try { rmSync(dir, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); } catch { /* Windows EPERM */ } } }); @@ -755,7 +755,7 @@ steps: const def = loadDefinition(dir, "test-workflow"); assert.equal(def.description, undefined); } finally { - rmSync(dir, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); + try { rmSync(dir, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); } catch { /* Windows EPERM */ } } }); @@ -773,6 +773,6 @@ steps: assert.deepEqual(def.steps[0].requires, []); assert.deepEqual(def.steps[0].produces, []); } finally { - rmSync(dir, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); + try { rmSync(dir, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); } catch { /* Windows EPERM */ } } }); diff --git a/src/resources/extensions/gsd/tests/e2e-workflow-pipeline-integration.test.ts b/src/resources/extensions/gsd/tests/e2e-workflow-pipeline-integration.test.ts index a78cfd6da..419ac5762 100644 --- a/src/resources/extensions/gsd/tests/e2e-workflow-pipeline-integration.test.ts +++ b/src/resources/extensions/gsd/tests/e2e-workflow-pipeline-integration.test.ts @@ -52,7 +52,7 @@ function makeTmpDir(): string { afterEach(() => { for (const d of tmpDirs) { - rmSync(d, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); + try { rmSync(d, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); } catch { /* Windows EPERM */ } } tmpDirs.length = 0; }); diff --git a/src/resources/extensions/gsd/tests/graph-operations.test.ts b/src/resources/extensions/gsd/tests/graph-operations.test.ts index 9c18aa282..229557c0d 100644 --- a/src/resources/extensions/gsd/tests/graph-operations.test.ts +++ b/src/resources/extensions/gsd/tests/graph-operations.test.ts @@ -32,7 +32,7 @@ function makeTmpDir(): string { } function cleanupDir(dir: string): void { - rmSync(dir, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); + try { rmSync(dir, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); } catch { /* Windows EPERM */ } } /** Minimal valid graph for testing. */ diff --git a/src/resources/extensions/gsd/tests/iterate-engine-integration.test.ts b/src/resources/extensions/gsd/tests/iterate-engine-integration.test.ts index 78a90c2f1..c103095e9 100644 --- a/src/resources/extensions/gsd/tests/iterate-engine-integration.test.ts +++ b/src/resources/extensions/gsd/tests/iterate-engine-integration.test.ts @@ -39,7 +39,7 @@ function makeTmpDir(): string { afterEach(() => { for (const d of tmpDirs) { - rmSync(d, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); + try { rmSync(d, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); } catch { /* Windows EPERM */ } } tmpDirs.length = 0; }); diff --git a/src/resources/extensions/gsd/tests/run-manager.test.ts b/src/resources/extensions/gsd/tests/run-manager.test.ts index 3db024b64..a86431547 100644 --- a/src/resources/extensions/gsd/tests/run-manager.test.ts +++ b/src/resources/extensions/gsd/tests/run-manager.test.ts @@ -34,7 +34,7 @@ function makeTmpBase(): string { afterEach(() => { for (const d of tmpDirs) { - rmSync(d, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); + try { rmSync(d, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); } catch { /* Windows EPERM */ } } tmpDirs.length = 0; });