test: add replaceInFile write failure, empty sessions dir, and corrupted global config tests (Round 61)

- utils.test.js: replaceInFile returns false on read-only file (catch block)
- session-manager.test.js: getAllSessions returns empty when sessions dir missing
- package-manager.test.js: getPackageManager falls through corrupted global config to npm default

788 tests total, all passing.
This commit is contained in:
Affaan Mustafa
2026-02-13 06:44:52 -08:00
parent 9afecedb21
commit 3ec0aa7b50
3 changed files with 83 additions and 0 deletions

View File

@@ -1139,6 +1139,32 @@ src/main.ts
assert.strictEqual(meta.completed[0], 'Lowercase task');
})) passed++; else failed++;
// getAllSessions returns empty result when sessions directory does not exist
if (test('getAllSessions returns empty when sessions dir missing', () => {
const tmpDir = createTempSessionDir();
const origHome = process.env.HOME;
const origUserProfile = process.env.USERPROFILE;
try {
// Point HOME to a dir with no .claude/sessions/
process.env.HOME = tmpDir;
process.env.USERPROFILE = tmpDir;
// Re-require to pick up new HOME
delete require.cache[require.resolve('../../scripts/lib/session-manager')];
delete require.cache[require.resolve('../../scripts/lib/utils')];
const freshSM = require('../../scripts/lib/session-manager');
const result = freshSM.getAllSessions();
assert.deepStrictEqual(result.sessions, [], 'Should return empty sessions array');
assert.strictEqual(result.total, 0, 'Total should be 0');
assert.strictEqual(result.hasMore, false, 'hasMore should be false');
} finally {
process.env.HOME = origHome;
process.env.USERPROFILE = origUserProfile;
delete require.cache[require.resolve('../../scripts/lib/session-manager')];
delete require.cache[require.resolve('../../scripts/lib/utils')];
cleanup(tmpDir);
}
})) passed++; else failed++;
// Summary
console.log(`\nResults: Passed: ${passed}, Failed: ${failed}`);
process.exit(failed > 0 ? 1 : 0);