test: round 101 — output() circular crash, getSessionStats type confusion, appendSessionContent null

- output() throws TypeError on circular reference object (JSON.stringify has no try/catch)
- getSessionStats(123) throws TypeError (number reaches parseSessionMetadata, .match() fails)
- appendSessionContent(null) returns false (TypeError caught by try/catch)

Total tests: 863
This commit is contained in:
Affaan Mustafa
2026-02-13 15:54:02 -08:00
parent d2c1281e97
commit 4d016babbb
2 changed files with 33 additions and 0 deletions

View File

@@ -1628,6 +1628,26 @@ src/main.ts
'Item text truncated at embedded ### (lazy regex stops at first ### match)');
})) passed++; else failed++;
// ── Round 101: getSessionStats with non-string input (number) throws TypeError ──
console.log('\nRound 101: getSessionStats (non-string input — type confusion crash):');
if (test('getSessionStats(123) throws TypeError (number reaches parseSessionMetadata → .match() fails)', () => {
// typeof 123 === 'number' → looksLikePath = false → content = 123
// parseSessionMetadata(123) → !123 is false → 123.match(...) → TypeError
assert.throws(
() => sessionManager.getSessionStats(123),
{ name: 'TypeError' },
'Non-string input (number) should crash in parseSessionMetadata (.match not a function)'
);
})) passed++; else failed++;
// ── Round 101: appendSessionContent(null, 'content') returns false (error caught) ──
console.log('\nRound 101: appendSessionContent (null path — error handling):');
if (test('appendSessionContent(null, content) returns false (TypeError caught by try/catch)', () => {
const result = sessionManager.appendSessionContent(null, 'some content');
assert.strictEqual(result, false,
'null path should cause fs.appendFileSync to throw TypeError, caught by try/catch');
})) passed++; else failed++;
// Summary
console.log(`\nResults: Passed: ${passed}, Failed: ${failed}`);
process.exit(failed > 0 ? 1 : 0);

View File

@@ -1454,6 +1454,19 @@ function runTests() {
}
})) passed++; else failed++;
// ── Round 101: output() with circular reference object throws (no try/catch around JSON.stringify) ──
console.log('\nRound 101: output() (circular reference — JSON.stringify crash):');
if (test('output() throws TypeError on circular reference object (JSON.stringify has no try/catch)', () => {
const circular = { a: 1 };
circular.self = circular; // Creates circular reference
assert.throws(
() => utils.output(circular),
{ name: 'TypeError' },
'JSON.stringify of circular object should throw TypeError (no try/catch in output())'
);
})) passed++; else failed++;
// Summary
console.log('\n=== Test Results ===');
console.log(`Passed: ${passed}`);