test: extend insaits monitor subprocess timeout

This commit is contained in:
Affaan Mustafa 2026-04-29 19:10:32 -04:00 committed by Affaan Mustafa
parent fc96be4924
commit 468c755abd

View File

@ -11,6 +11,7 @@ const path = require('path');
const { spawnSync } = require('child_process');
const SCRIPT = path.join(__dirname, '..', '..', 'scripts', 'hooks', 'insaits-security-monitor.py');
const MONITOR_TIMEOUT_MS = 30000;
function createTempDir() {
return fs.mkdtempSync(path.join(os.tmpdir(), 'insaits-monitor-'));
@ -93,12 +94,16 @@ function runMonitor(options = {}) {
encoding: 'utf8',
env,
cwd: tempDir,
timeout: 10000,
timeout: MONITOR_TIMEOUT_MS,
});
result.tempDir = tempDir;
return result;
}
function statusError(result) {
return result.stderr || result.error?.message || `status ${result.status}`;
}
function test(name, fn) {
try {
fn();
@ -123,7 +128,7 @@ function runTests() {
env: { FAKE_INSAITS_MODE: 'clean' },
});
try {
assert.strictEqual(result.status, 0, result.stderr);
assert.strictEqual(result.status, 0, statusError(result));
assert.strictEqual(result.stdout, '');
const [audit] = readAudit(result.tempDir);
@ -143,7 +148,7 @@ function runTests() {
env: { FAKE_INSAITS_MODE: 'critical' },
});
try {
assert.strictEqual(result.status, 2, result.stderr);
assert.strictEqual(result.status, 2, statusError(result));
assert.ok(result.stdout.includes('SECRET'));
assert.ok(result.stdout.includes('token-like string detected'));
@ -161,7 +166,7 @@ function runTests() {
env: { FAKE_INSAITS_MODE: 'medium' },
});
try {
assert.strictEqual(result.status, 0);
assert.strictEqual(result.status, 0, statusError(result));
assert.strictEqual(result.stdout, '');
assert.ok(result.stderr.includes('PROMPT_INJECTION'));
@ -179,7 +184,7 @@ function runTests() {
env: { FAKE_INSAITS_MODE: 'error', INSAITS_FAIL_MODE: '' },
});
try {
assert.strictEqual(result.status, 0);
assert.strictEqual(result.status, 0, statusError(result));
assert.strictEqual(result.stdout, '');
assert.ok(result.stderr.includes('SDK error'));
} finally {
@ -193,7 +198,7 @@ function runTests() {
env: { FAKE_INSAITS_MODE: 'error', INSAITS_FAIL_MODE: 'closed' },
});
try {
assert.strictEqual(result.status, 2);
assert.strictEqual(result.status, 2, statusError(result));
assert.ok(result.stdout.includes('InsAIts SDK error (RuntimeError)'));
assert.ok(result.stdout.includes('blocking execution'));
} finally {