test: Add context-detector edge case tests

- Test for settings.json without permissions field
- Test for undefined cwd
- Test for cwd without context files

Coverage: 93.92% (218 tests)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Jarrod Watts
2026-01-03 07:51:27 +11:00
parent 73b870531f
commit c33f9a33e8

View File

@@ -42,6 +42,34 @@ describe('detectContextFiles', () => {
expect(result.projectSettings).toBe(true);
expect(result.projectSettingsRules).toBe(3);
});
it('handles settings.json without permissions field', () => {
const settingsPath = path.join(tmpDir, '.claude', 'settings.json');
fs.mkdirSync(path.dirname(settingsPath), { recursive: true });
fs.writeFileSync(settingsPath, JSON.stringify({ someOtherField: true }), 'utf-8');
const result = detectContextFiles(tmpDir);
expect(result.projectSettings).toBe(true);
expect(result.projectSettingsRules).toBe(0);
});
it('returns default values when cwd is undefined', () => {
const result = detectContextFiles(undefined);
expect(result.projectClaudeMd).toBe(false);
expect(result.projectClaudeMdPath).toBeNull();
expect(result.projectSettings).toBe(false);
});
it('returns default values when cwd has no context files', () => {
const result = detectContextFiles(tmpDir);
expect(result.projectClaudeMd).toBe(false);
expect(result.projectClaudeMdPath).toBeNull();
expect(result.projectSettings).toBe(false);
expect(result.projectSettingsRules).toBe(0);
});
});
describe('ContextDetector', () => {