diff --git a/scripts/prompt-injection-scan.sh b/scripts/prompt-injection-scan.sh index 72204330f..c6391417b 100755 --- a/scripts/prompt-injection-scan.sh +++ b/scripts/prompt-injection-scan.sh @@ -72,6 +72,7 @@ ALLOWLIST=( 'tests/security-scan.test.cjs' 'tests/security.test.cjs' 'tests/prompt-injection-scan.test.cjs' + 'tests/verify.test.cjs' 'get-shit-done/bin/lib/security.cjs' 'hooks/gsd-prompt-guard.js' 'SECURITY.md' diff --git a/scripts/run-tests.cjs b/scripts/run-tests.cjs index d50d79fd1..37d602064 100644 --- a/scripts/run-tests.cjs +++ b/scripts/run-tests.cjs @@ -19,8 +19,12 @@ if (files.length === 0) { process.exit(1); } +const concurrency = process.env.TEST_CONCURRENCY + ? `--test-concurrency=${process.env.TEST_CONCURRENCY}` + : '--test-concurrency=4'; + try { - execFileSync(process.execPath, ['--test', ...files], { + execFileSync(process.execPath, ['--test', concurrency, ...files], { stdio: 'inherit', env: { ...process.env }, }); diff --git a/tests/agent-frontmatter.test.cjs b/tests/agent-frontmatter.test.cjs index 5235627e8..2de01f6f3 100644 --- a/tests/agent-frontmatter.test.cjs +++ b/tests/agent-frontmatter.test.cjs @@ -9,7 +9,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/agent-install-validation.test.cjs b/tests/agent-install-validation.test.cjs index 071d31b59..f8093a446 100644 --- a/tests/agent-install-validation.test.cjs +++ b/tests/agent-install-validation.test.cjs @@ -8,7 +8,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const { runGsdTools, createTempProject, cleanup } = require('./helpers.cjs'); diff --git a/tests/agent-skills.test.cjs b/tests/agent-skills.test.cjs index c4438222b..4976a0400 100644 --- a/tests/agent-skills.test.cjs +++ b/tests/agent-skills.test.cjs @@ -7,7 +7,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const { runGsdTools, createTempProject, cleanup } = require('./helpers.cjs'); diff --git a/tests/analyze-dependencies.test.cjs b/tests/analyze-dependencies.test.cjs index 835827a7a..63330ff63 100644 --- a/tests/analyze-dependencies.test.cjs +++ b/tests/analyze-dependencies.test.cjs @@ -1,5 +1,5 @@ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/anti-pattern-enforcement.test.cjs b/tests/anti-pattern-enforcement.test.cjs index 10e2ed4da..e91d56846 100644 --- a/tests/anti-pattern-enforcement.test.cjs +++ b/tests/anti-pattern-enforcement.test.cjs @@ -8,7 +8,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/antigravity-install.test.cjs b/tests/antigravity-install.test.cjs index 3ced36126..5e44e3a5e 100644 --- a/tests/antigravity-install.test.cjs +++ b/tests/antigravity-install.test.cjs @@ -8,7 +8,7 @@ process.env.GSD_TEST_MODE = '1'; const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const path = require('path'); const os = require('os'); const fs = require('fs'); diff --git a/tests/augment-conversion.test.cjs b/tests/augment-conversion.test.cjs index 7f810b323..609eec355 100644 --- a/tests/augment-conversion.test.cjs +++ b/tests/augment-conversion.test.cjs @@ -9,7 +9,7 @@ process.env.GSD_TEST_MODE = '1'; const { describe, test } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const { convertClaudeCommandToAugmentSkill, diff --git a/tests/autonomous-interactive.test.cjs b/tests/autonomous-interactive.test.cjs index c5d6ba902..f111895a0 100644 --- a/tests/autonomous-interactive.test.cjs +++ b/tests/autonomous-interactive.test.cjs @@ -8,7 +8,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/bugs-1656-1657.test.cjs b/tests/bugs-1656-1657.test.cjs index 71b777709..7fd2306c7 100644 --- a/tests/bugs-1656-1657.test.cjs +++ b/tests/bugs-1656-1657.test.cjs @@ -9,7 +9,7 @@ process.env.GSD_TEST_MODE = '1'; const { test, describe, before } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const { execFileSync } = require('child_process'); diff --git a/tests/chain-flag-plan-phase.test.cjs b/tests/chain-flag-plan-phase.test.cjs index 1f1c931e8..eef17f6b8 100644 --- a/tests/chain-flag-plan-phase.test.cjs +++ b/tests/chain-flag-plan-phase.test.cjs @@ -9,7 +9,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/claude-md.test.cjs b/tests/claude-md.test.cjs index f78d372f9..3ac0f1c3e 100644 --- a/tests/claude-md.test.cjs +++ b/tests/claude-md.test.cjs @@ -3,7 +3,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const { runGsdTools, createTempProject, cleanup } = require('./helpers.cjs'); diff --git a/tests/claude-skills-migration.test.cjs b/tests/claude-skills-migration.test.cjs index c3c64a94c..b1ed405db 100644 --- a/tests/claude-skills-migration.test.cjs +++ b/tests/claude-skills-migration.test.cjs @@ -10,7 +10,7 @@ process.env.GSD_TEST_MODE = '1'; const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const path = require('path'); const os = require('os'); const fs = require('fs'); diff --git a/tests/cline-support.test.cjs b/tests/cline-support.test.cjs index 8c2d1a701..9625c9c9d 100644 --- a/tests/cline-support.test.cjs +++ b/tests/cline-support.test.cjs @@ -1,5 +1,5 @@ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/codex-config.test.cjs b/tests/codex-config.test.cjs index 4908a1a38..2f5f04ea3 100644 --- a/tests/codex-config.test.cjs +++ b/tests/codex-config.test.cjs @@ -9,7 +9,7 @@ process.env.GSD_TEST_MODE = '1'; const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const os = require('os'); diff --git a/tests/commands.test.cjs b/tests/commands.test.cjs index 078fd30bd..a899dcfa5 100644 --- a/tests/commands.test.cjs +++ b/tests/commands.test.cjs @@ -3,7 +3,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const { execSync } = require('node:child_process'); const fs = require('fs'); const path = require('path'); diff --git a/tests/concurrency-safety.test.cjs b/tests/concurrency-safety.test.cjs index 88afd6504..6180095ad 100644 --- a/tests/concurrency-safety.test.cjs +++ b/tests/concurrency-safety.test.cjs @@ -13,7 +13,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const os = require('os'); diff --git a/tests/config.test.cjs b/tests/config.test.cjs index bd731d8c1..0fbcb3bb6 100644 --- a/tests/config.test.cjs +++ b/tests/config.test.cjs @@ -8,7 +8,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const { runGsdTools, createTempProject, cleanup } = require('./helpers.cjs'); diff --git a/tests/context-enrichment.test.cjs b/tests/context-enrichment.test.cjs index 71d35fab3..956dde896 100644 --- a/tests/context-enrichment.test.cjs +++ b/tests/context-enrichment.test.cjs @@ -8,7 +8,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/copilot-install.test.cjs b/tests/copilot-install.test.cjs index 224d2d6d0..4e8d92c69 100644 --- a/tests/copilot-install.test.cjs +++ b/tests/copilot-install.test.cjs @@ -10,7 +10,7 @@ process.env.GSD_TEST_MODE = '1'; const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const path = require('path'); const os = require('os'); const fs = require('fs'); diff --git a/tests/core.test.cjs b/tests/core.test.cjs index b35121d50..88428a7db 100644 --- a/tests/core.test.cjs +++ b/tests/core.test.cjs @@ -6,7 +6,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const os = require('os'); @@ -139,22 +139,19 @@ describe('loadConfig', () => { assert.strictEqual(config.commit_docs, false); }); - test('warns on unknown config keys to stderr (#1535)', () => { + test('warns on unknown config keys to stderr (#1535)', (t) => { writeConfig({ model_profile: 'quality', active_project: 'my-project', custom_flag: true }); const origWrite = process.stderr.write; let stderrOutput = ''; process.stderr.write = (chunk) => { stderrOutput += chunk; }; - try { - const config = loadConfig(tmpDir); - // Known key still loads correctly - assert.strictEqual(config.model_profile, 'quality'); - // Warning emitted for unknown keys - assert.ok(stderrOutput.includes('active_project'), 'should warn about active_project'); - assert.ok(stderrOutput.includes('custom_flag'), 'should warn about custom_flag'); - assert.ok(stderrOutput.includes('ignored'), 'should mention keys will be ignored'); - } finally { - process.stderr.write = origWrite; - } + t.after(() => { process.stderr.write = origWrite; }); + const config = loadConfig(tmpDir); + // Known key still loads correctly + assert.strictEqual(config.model_profile, 'quality'); + // Warning emitted for unknown keys + assert.ok(stderrOutput.includes('active_project'), 'should warn about active_project'); + assert.ok(stderrOutput.includes('custom_flag'), 'should warn about custom_flag'); + assert.ok(stderrOutput.includes('ignored'), 'should mention keys will be ignored'); }); test('known config keys are derived from VALID_CONFIG_KEYS (not hardcoded)', () => { @@ -181,17 +178,14 @@ describe('loadConfig', () => { } }); - test('does not warn when all config keys are known', () => { + test('does not warn when all config keys are known', (t) => { writeConfig({ model_profile: 'balanced', workflow: { research: false }, git: { branching_strategy: 'per-phase' } }); const origWrite = process.stderr.write; let stderrOutput = ''; process.stderr.write = (chunk) => { stderrOutput += chunk; }; - try { - loadConfig(tmpDir); - assert.strictEqual(stderrOutput, '', 'should not emit any warnings for valid config'); - } finally { - process.stderr.write = origWrite; - } + t.after(() => { process.stderr.write = origWrite; }); + loadConfig(tmpDir); + assert.strictEqual(stderrOutput, '', 'should not emit any warnings for valid config'); }); }); diff --git a/tests/cursor-conversion.test.cjs b/tests/cursor-conversion.test.cjs index a6fe43844..c238e2e46 100644 --- a/tests/cursor-conversion.test.cjs +++ b/tests/cursor-conversion.test.cjs @@ -9,7 +9,7 @@ process.env.GSD_TEST_MODE = '1'; const { describe, test } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const { convertClaudeCommandToCursorSkill, diff --git a/tests/discuss-checkpoint.test.cjs b/tests/discuss-checkpoint.test.cjs index 935a58113..c41a2881e 100644 --- a/tests/discuss-checkpoint.test.cjs +++ b/tests/discuss-checkpoint.test.cjs @@ -8,7 +8,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/discuss-mode.test.cjs b/tests/discuss-mode.test.cjs index 1f0b56599..ed74dceed 100644 --- a/tests/discuss-mode.test.cjs +++ b/tests/discuss-mode.test.cjs @@ -5,7 +5,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/discuss-phase-power.test.cjs b/tests/discuss-phase-power.test.cjs index 6c3ee7b44..0d708eff0 100644 --- a/tests/discuss-phase-power.test.cjs +++ b/tests/discuss-phase-power.test.cjs @@ -8,7 +8,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/dispatcher.test.cjs b/tests/dispatcher.test.cjs index 989afd1ca..a4a32a2e5 100644 --- a/tests/dispatcher.test.cjs +++ b/tests/dispatcher.test.cjs @@ -9,7 +9,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const { runGsdTools, createTempProject, cleanup } = require('./helpers.cjs'); diff --git a/tests/execute-phase-active-flags.test.cjs b/tests/execute-phase-active-flags.test.cjs index 97f3d3732..c7f389d57 100644 --- a/tests/execute-phase-active-flags.test.cjs +++ b/tests/execute-phase-active-flags.test.cjs @@ -7,7 +7,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/execute-phase-wave.test.cjs b/tests/execute-phase-wave.test.cjs index e4994c0da..090276ab4 100644 --- a/tests/execute-phase-wave.test.cjs +++ b/tests/execute-phase-wave.test.cjs @@ -9,7 +9,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/execute-phase-worktree-artifacts.test.cjs b/tests/execute-phase-worktree-artifacts.test.cjs index b801c8245..b40690a61 100644 --- a/tests/execute-phase-worktree-artifacts.test.cjs +++ b/tests/execute-phase-worktree-artifacts.test.cjs @@ -10,7 +10,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/forensics.test.cjs b/tests/forensics.test.cjs index cf7a780bc..5367467ba 100644 --- a/tests/forensics.test.cjs +++ b/tests/forensics.test.cjs @@ -6,7 +6,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const os = require('os'); diff --git a/tests/frontmatter-cli.test.cjs b/tests/frontmatter-cli.test.cjs index a07ec4366..bc7b95201 100644 --- a/tests/frontmatter-cli.test.cjs +++ b/tests/frontmatter-cli.test.cjs @@ -9,7 +9,7 @@ */ const { test, describe, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const os = require('os'); diff --git a/tests/frontmatter.test.cjs b/tests/frontmatter.test.cjs index 001a67267..8cacd08c3 100644 --- a/tests/frontmatter.test.cjs +++ b/tests/frontmatter.test.cjs @@ -9,7 +9,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const { extractFrontmatter, diff --git a/tests/health-validation.test.cjs b/tests/health-validation.test.cjs index 3f17f9425..a02affc89 100644 --- a/tests/health-validation.test.cjs +++ b/tests/health-validation.test.cjs @@ -12,7 +12,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const { runGsdTools, createTempProject, cleanup } = require('./helpers.cjs'); diff --git a/tests/hook-validation.test.cjs b/tests/hook-validation.test.cjs index b14338525..f953d0f41 100644 --- a/tests/hook-validation.test.cjs +++ b/tests/hook-validation.test.cjs @@ -10,7 +10,7 @@ process.env.GSD_TEST_MODE = '1'; const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const { validateHookFields } = require('../bin/install.js'); // ─── Helpers ──────────────────────────────────────────────────────────────── diff --git a/tests/hooks-opt-in.test.cjs b/tests/hooks-opt-in.test.cjs index a8c08ffc2..16cc3477c 100644 --- a/tests/hooks-opt-in.test.cjs +++ b/tests/hooks-opt-in.test.cjs @@ -9,7 +9,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const os = require('os'); @@ -234,25 +234,22 @@ describe('opt-in gating behavior', { skip: isWindows ? 'bash hooks require unix assert.strictEqual(result.status, 0, `Should be no-op when disabled, got ${result.status}`); }); - test('validate-commit is a no-op when config.json is absent', () => { + test('validate-commit is a no-op when config.json is absent', (t) => { // No config.json at all const bareDir = fs.mkdtempSync(path.join(os.tmpdir(), 'gsd-hook-bare-')); + t.after(() => { fs.rmSync(bareDir, { recursive: true, force: true }); }); const hookPath = path.join(HOOKS_DIR, 'gsd-validate-commit.sh'); const input = JSON.stringify({ tool_input: { command: 'git commit -m "WIP save"' } }); - try { - const result = spawnHook(hookPath, { - input, - encoding: 'utf-8', - cwd: bareDir, - }); + const result = spawnHook(hookPath, { + input, + encoding: 'utf-8', + cwd: bareDir, + }); - assert.strictEqual(result.status, 0, `Should be no-op without config.json, got ${result.status}`); - } finally { - fs.rmSync(bareDir, { recursive: true, force: true }); - } + assert.strictEqual(result.status, 0, `Should be no-op without config.json, got ${result.status}`); }); test('session-state is a no-op when hooks.community is false', () => { @@ -375,28 +372,25 @@ describe('hook execution when enabled', { skip: isWindows ? 'bash hooks require ); }); - test('session-state exits 0 without .planning/ (in enabled project)', () => { + test('session-state exits 0 without .planning/ (in enabled project)', (t) => { // Create a dir with config but no STATE.md const noStateDir = fs.mkdtempSync(path.join(os.tmpdir(), 'gsd-hook-nostate-')); + t.after(() => { fs.rmSync(noStateDir, { recursive: true, force: true }); }); fs.mkdirSync(path.join(noStateDir, '.planning'), { recursive: true }); writeConfigWithHooks(noStateDir, true); const hookPath = path.join(HOOKS_DIR, 'gsd-session-state.sh'); - try { - const result = spawnHook(hookPath, { - input: '', - encoding: 'utf-8', - cwd: noStateDir, - }); + const result = spawnHook(hookPath, { + input: '', + encoding: 'utf-8', + cwd: noStateDir, + }); - assert.strictEqual(result.status, 0, `Should exit 0: ${result.stderr}`); - assert.ok( - result.stdout.includes('No .planning/ found') || result.stdout.includes('Project State'), - `Should handle missing STATE.md gracefully: ${result.stdout}` - ); - } finally { - fs.rmSync(noStateDir, { recursive: true, force: true }); - } + assert.strictEqual(result.status, 0, `Should exit 0: ${result.stderr}`); + assert.ok( + result.stdout.includes('No .planning/ found') || result.stdout.includes('Project State'), + `Should handle missing STATE.md gracefully: ${result.stdout}` + ); }); test('phase-boundary detects .planning/ writes when enabled', () => { diff --git a/tests/init-manager.test.cjs b/tests/init-manager.test.cjs index 14f22f9e8..1c6d5cb39 100644 --- a/tests/init-manager.test.cjs +++ b/tests/init-manager.test.cjs @@ -3,7 +3,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const { runGsdTools, createTempProject, cleanup } = require('./helpers.cjs'); diff --git a/tests/init.test.cjs b/tests/init.test.cjs index c625091f2..2fed3fd08 100644 --- a/tests/init.test.cjs +++ b/tests/init.test.cjs @@ -3,7 +3,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const { runGsdTools, createTempProject, cleanup } = require('./helpers.cjs'); diff --git a/tests/mcp-tool-inheritance.test.cjs b/tests/mcp-tool-inheritance.test.cjs index 4c85193a7..3c37548f2 100644 --- a/tests/mcp-tool-inheritance.test.cjs +++ b/tests/mcp-tool-inheritance.test.cjs @@ -1,5 +1,5 @@ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/methodology-artifact.test.cjs b/tests/methodology-artifact.test.cjs index 31bc50978..128e59340 100644 --- a/tests/methodology-artifact.test.cjs +++ b/tests/methodology-artifact.test.cjs @@ -1,6 +1,6 @@ 'use strict'; const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/milestone-summary.test.cjs b/tests/milestone-summary.test.cjs index fd4508ecf..25946290b 100644 --- a/tests/milestone-summary.test.cjs +++ b/tests/milestone-summary.test.cjs @@ -6,7 +6,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/milestone.test.cjs b/tests/milestone.test.cjs index 025a05a80..1d810937a 100644 --- a/tests/milestone.test.cjs +++ b/tests/milestone.test.cjs @@ -3,7 +3,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const { runGsdTools, createTempProject, cleanup } = require('./helpers.cjs'); diff --git a/tests/model-profiles.test.cjs b/tests/model-profiles.test.cjs index 55fd1cf00..f3f99e3a3 100644 --- a/tests/model-profiles.test.cjs +++ b/tests/model-profiles.test.cjs @@ -6,7 +6,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const { MODEL_PROFILES, diff --git a/tests/new-milestone-clear-phases.test.cjs b/tests/new-milestone-clear-phases.test.cjs index e2fa403cd..be6e016c9 100644 --- a/tests/new-milestone-clear-phases.test.cjs +++ b/tests/new-milestone-clear-phases.test.cjs @@ -6,7 +6,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const { runGsdTools, createTempProject, cleanup } = require('./helpers.cjs'); diff --git a/tests/next-up-clear-order.test.cjs b/tests/next-up-clear-order.test.cjs index 3e3217753..e774e2c95 100644 --- a/tests/next-up-clear-order.test.cjs +++ b/tests/next-up-clear-order.test.cjs @@ -9,7 +9,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const glob = require('path'); diff --git a/tests/parallel-dependent-plans.test.cjs b/tests/parallel-dependent-plans.test.cjs index 255c507ab..443a0189c 100644 --- a/tests/parallel-dependent-plans.test.cjs +++ b/tests/parallel-dependent-plans.test.cjs @@ -9,7 +9,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/path-replacement.test.cjs b/tests/path-replacement.test.cjs index 614273f3b..739bbe99e 100644 --- a/tests/path-replacement.test.cjs +++ b/tests/path-replacement.test.cjs @@ -8,7 +8,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const os = require('os'); diff --git a/tests/pause-work-improvements.test.cjs b/tests/pause-work-improvements.test.cjs index 847f299fa..bfb8f8028 100644 --- a/tests/pause-work-improvements.test.cjs +++ b/tests/pause-work-improvements.test.cjs @@ -1,5 +1,5 @@ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/phase.test.cjs b/tests/phase.test.cjs index e8df4fb18..38da0a662 100644 --- a/tests/phase.test.cjs +++ b/tests/phase.test.cjs @@ -3,7 +3,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const { runGsdTools, createTempProject, cleanup } = require('./helpers.cjs'); diff --git a/tests/pick-flag.test.cjs b/tests/pick-flag.test.cjs index c2ca57be4..1defd72a1 100644 --- a/tests/pick-flag.test.cjs +++ b/tests/pick-flag.test.cjs @@ -6,7 +6,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const { runGsdTools } = require('./helpers.cjs'); // ─── --pick flag ───────────────────────────────────────────────────────────── diff --git a/tests/playwright-ui-verify.test.cjs b/tests/playwright-ui-verify.test.cjs index 34392f3b2..dd6e9bfe3 100644 --- a/tests/playwright-ui-verify.test.cjs +++ b/tests/playwright-ui-verify.test.cjs @@ -1,5 +1,5 @@ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/profile-output.test.cjs b/tests/profile-output.test.cjs index 3001195f5..160ab71bc 100644 --- a/tests/profile-output.test.cjs +++ b/tests/profile-output.test.cjs @@ -5,7 +5,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const { runGsdTools, createTempProject, createTempGitProject, cleanup } = require('./helpers.cjs'); diff --git a/tests/profile-pipeline.test.cjs b/tests/profile-pipeline.test.cjs index 4dab8ac56..266ff550c 100644 --- a/tests/profile-pipeline.test.cjs +++ b/tests/profile-pipeline.test.cjs @@ -6,7 +6,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const os = require('os'); diff --git a/tests/quick-branching.test.cjs b/tests/quick-branching.test.cjs index 5259ae199..a1b9c3d2f 100644 --- a/tests/quick-branching.test.cjs +++ b/tests/quick-branching.test.cjs @@ -6,7 +6,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/quick-commit-boundary.test.cjs b/tests/quick-commit-boundary.test.cjs index 401b6398c..9d4ce5f8c 100644 --- a/tests/quick-commit-boundary.test.cjs +++ b/tests/quick-commit-boundary.test.cjs @@ -8,7 +8,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/quick-research.test.cjs b/tests/quick-research.test.cjs index c735f3893..e17108881 100644 --- a/tests/quick-research.test.cjs +++ b/tests/quick-research.test.cjs @@ -9,7 +9,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const { runGsdTools, createTempProject, cleanup } = require('./helpers.cjs'); diff --git a/tests/reachability-check.test.cjs b/tests/reachability-check.test.cjs index d28d74625..63d28d253 100644 --- a/tests/reachability-check.test.cjs +++ b/tests/reachability-check.test.cjs @@ -1,5 +1,5 @@ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/reapply-patches.test.cjs b/tests/reapply-patches.test.cjs index f55315584..aac326910 100644 --- a/tests/reapply-patches.test.cjs +++ b/tests/reapply-patches.test.cjs @@ -8,7 +8,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const crypto = require('crypto'); diff --git a/tests/roadmap.test.cjs b/tests/roadmap.test.cjs index f043e40f9..b4530b4e4 100644 --- a/tests/roadmap.test.cjs +++ b/tests/roadmap.test.cjs @@ -3,7 +3,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const { runGsdTools, createTempProject, cleanup } = require('./helpers.cjs'); diff --git a/tests/runtime-converters.test.cjs b/tests/runtime-converters.test.cjs index a6d8209b4..a8803c598 100644 --- a/tests/runtime-converters.test.cjs +++ b/tests/runtime-converters.test.cjs @@ -11,7 +11,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); process.env.GSD_TEST_MODE = '1'; const { diff --git a/tests/secure-phase.test.cjs b/tests/secure-phase.test.cjs index db1dd3c38..c39989363 100644 --- a/tests/secure-phase.test.cjs +++ b/tests/secure-phase.test.cjs @@ -12,7 +12,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/settings-jsonc.test.cjs b/tests/settings-jsonc.test.cjs index 1ebf1f915..16e4a7612 100644 --- a/tests/settings-jsonc.test.cjs +++ b/tests/settings-jsonc.test.cjs @@ -9,7 +9,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/state.test.cjs b/tests/state.test.cjs index 4071dae1a..3eeb30bca 100644 --- a/tests/state.test.cjs +++ b/tests/state.test.cjs @@ -3,7 +3,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const { runGsdTools, createTempProject, cleanup } = require('./helpers.cjs'); diff --git a/tests/subagent-timeout.test.cjs b/tests/subagent-timeout.test.cjs index fd16ded45..41d10545e 100644 --- a/tests/subagent-timeout.test.cjs +++ b/tests/subagent-timeout.test.cjs @@ -8,7 +8,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const { runGsdTools, createTempProject, cleanup } = require('./helpers.cjs'); diff --git a/tests/template.test.cjs b/tests/template.test.cjs index 8d2ae3d51..f27ed0822 100644 --- a/tests/template.test.cjs +++ b/tests/template.test.cjs @@ -6,7 +6,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const { runGsdTools, createTempProject, cleanup } = require('./helpers.cjs'); diff --git a/tests/trae-install.test.cjs b/tests/trae-install.test.cjs index 578fe1a81..21e347d03 100644 --- a/tests/trae-install.test.cjs +++ b/tests/trae-install.test.cjs @@ -1,7 +1,7 @@ process.env.GSD_TEST_MODE = '1'; const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('node:fs'); const path = require('node:path'); const os = require('node:os'); diff --git a/tests/uat.test.cjs b/tests/uat.test.cjs index 40aaec245..7b24a02bc 100644 --- a/tests/uat.test.cjs +++ b/tests/uat.test.cjs @@ -5,7 +5,7 @@ 'use strict'; const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const { runGsdTools, createTempProject, cleanup } = require('./helpers.cjs'); diff --git a/tests/verifier-deferred-items.test.cjs b/tests/verifier-deferred-items.test.cjs index c94b9b51e..3df5b7ff1 100644 --- a/tests/verifier-deferred-items.test.cjs +++ b/tests/verifier-deferred-items.test.cjs @@ -6,7 +6,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/verify-health.test.cjs b/tests/verify-health.test.cjs index f22dd3ad7..e11e6f5ad 100644 --- a/tests/verify-health.test.cjs +++ b/tests/verify-health.test.cjs @@ -6,7 +6,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const { runGsdTools, createTempProject, cleanup } = require('./helpers.cjs'); diff --git a/tests/verify.test.cjs b/tests/verify.test.cjs index b4a185bd7..be66d54f4 100644 --- a/tests/verify.test.cjs +++ b/tests/verify.test.cjs @@ -3,7 +3,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const { runGsdTools, createTempProject, createTempGitProject, cleanup } = require('./helpers.cjs'); diff --git a/tests/windows-robustness.test.cjs b/tests/windows-robustness.test.cjs index 25305dc9c..160cd1d66 100644 --- a/tests/windows-robustness.test.cjs +++ b/tests/windows-robustness.test.cjs @@ -14,7 +14,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/windsurf-conversion.test.cjs b/tests/windsurf-conversion.test.cjs index 3df82ed1b..75e1a3711 100644 --- a/tests/windsurf-conversion.test.cjs +++ b/tests/windsurf-conversion.test.cjs @@ -9,7 +9,7 @@ process.env.GSD_TEST_MODE = '1'; const { describe, test } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const { convertClaudeCommandToWindsurfSkill, diff --git a/tests/workspace.test.cjs b/tests/workspace.test.cjs index aa6180182..b2beb43d1 100644 --- a/tests/workspace.test.cjs +++ b/tests/workspace.test.cjs @@ -6,7 +6,7 @@ */ const { test, describe, beforeEach, afterEach } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); const os = require('os'); diff --git a/tests/worktree-cleanup.test.cjs b/tests/worktree-cleanup.test.cjs index 0fe56153e..80a350fb7 100644 --- a/tests/worktree-cleanup.test.cjs +++ b/tests/worktree-cleanup.test.cjs @@ -8,7 +8,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); diff --git a/tests/worktree-stagger.test.cjs b/tests/worktree-stagger.test.cjs index 423cebb74..f7e96f21e 100644 --- a/tests/worktree-stagger.test.cjs +++ b/tests/worktree-stagger.test.cjs @@ -9,7 +9,7 @@ */ const { test, describe } = require('node:test'); -const assert = require('node:assert'); +const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path');