test: add env var fallback, console.log max matches, and format non-existent file tests

Round 53: Adds 3 hook tests — validates evaluate-session.js
falls back to CLAUDE_TRANSCRIPT_PATH env var when stdin JSON
is invalid, post-edit-console-warn.js truncates output to max
5 matches, and post-edit-format.js passes through data when
the target .tsx file doesn't exist.
This commit is contained in:
Affaan Mustafa
2026-02-13 05:34:59 -08:00
parent f1a693f7cf
commit ad40bf3aad
2 changed files with 59 additions and 0 deletions

View File

@@ -2680,6 +2680,39 @@ async function runTests() {
}
})) passed++; else failed++;
// ── Round 53: console-warn max matches and format non-existent file ──
console.log('\nRound 53: post-edit-console-warn.js (max matches truncation):');
if (await asyncTest('reports maximum 5 console.log matches per file', async () => {
const testDir = createTestDir();
const testFile = path.join(testDir, 'many-logs.js');
const lines = Array(7).fill(null).map((_, i) =>
`console.log("debug line ${i + 1}");`
);
fs.writeFileSync(testFile, lines.join('\n'));
const stdinJson = JSON.stringify({ tool_input: { file_path: testFile } });
const result = await runScript(path.join(scriptsDir, 'post-edit-console-warn.js'), stdinJson);
assert.strictEqual(result.code, 0, 'Should exit 0');
// Count line number reports in stderr (format: "N: console.log(...)")
const lineReports = (result.stderr.match(/^\d+:/gm) || []).length;
assert.strictEqual(lineReports, 5, `Should report max 5 matches, got ${lineReports}`);
cleanupTestDir(testDir);
})) passed++; else failed++;
console.log('\nRound 53: post-edit-format.js (non-existent file):');
if (await asyncTest('passes through data for non-existent .tsx file path', async () => {
const stdinJson = JSON.stringify({
tool_input: { file_path: '/nonexistent/path/file.tsx' }
});
const result = await runScript(path.join(scriptsDir, 'post-edit-format.js'), stdinJson);
assert.strictEqual(result.code, 0, 'Should exit 0 for non-existent file');
assert.strictEqual(result.stdout, stdinJson, 'Should pass through stdin data unchanged');
})) passed++; else failed++;
// Summary
console.log('\n=== Test Results ===');
console.log(`Passed: ${passed}`);