test: isolate gateguard state dir cleanup

This commit is contained in:
Affaan Mustafa
2026-04-13 00:53:57 -07:00
parent dd2962ee92
commit 2e44beabc1

View File

@@ -8,7 +8,9 @@ const path = require('path');
const { spawnSync } = require('child_process'); const { spawnSync } = require('child_process');
const runner = path.join(__dirname, '..', '..', 'scripts', 'hooks', 'run-with-flags.js'); const runner = path.join(__dirname, '..', '..', 'scripts', 'hooks', 'run-with-flags.js');
const stateDir = process.env.GATEGUARD_STATE_DIR || path.join(process.env.HOME || process.env.USERPROFILE || '/tmp', '.gateguard-test-' + process.pid); const externalStateDir = process.env.GATEGUARD_STATE_DIR;
const tmpRoot = process.env.TMPDIR || process.env.TEMP || process.env.TMP || '/tmp';
const stateDir = externalStateDir || fs.mkdtempSync(path.join(tmpRoot, 'gateguard-test-'));
// Use a fixed session ID so test process and spawned hook process share the same state file // Use a fixed session ID so test process and spawned hook process share the same state file
const TEST_SESSION_ID = 'gateguard-test-session'; const TEST_SESSION_ID = 'gateguard-test-session';
const stateFile = path.join(stateDir, `state-${TEST_SESSION_ID}.json`); const stateFile = path.join(stateDir, `state-${TEST_SESSION_ID}.json`);
@@ -356,7 +358,8 @@ function runTests() {
} }
})) passed++; else failed++; })) passed++; else failed++;
// Cleanup: remove test-isolated state directory // Cleanup only the temp directory created by this test file.
if (!externalStateDir) {
try { try {
if (fs.existsSync(stateDir)) { if (fs.existsSync(stateDir)) {
fs.rmSync(stateDir, { recursive: true, force: true }); fs.rmSync(stateDir, { recursive: true, force: true });
@@ -364,6 +367,7 @@ function runTests() {
} catch (err) { } catch (err) {
console.error(` [cleanup] failed to remove ${stateDir}: ${err.message}`); console.error(` [cleanup] failed to remove ${stateDir}: ${err.message}`);
} }
}
console.log(`\n ${passed} passed, ${failed} failed\n`); console.log(`\n ${passed} passed, ${failed} failed\n`);
process.exit(failed > 0 ? 1 : 0); process.exit(failed > 0 ? 1 : 0);