Files
xiaofanluan 7cccacdc51 feat: add repository-wide code review with feature analysis
Implement full repository review mode that detects logical features/modules
and reviews them systematically with session persistence for pause/resume
capability.

Key additions:
- RepoScanner: scans codebase and estimates tokens/cost
- FeatureAnalyzer: AI-powered detection of logical modules
- FeaturePlanner: creates review execution plan
- StateManager: persists sessions for resume capability
- RepoOrchestrator: executes feature-by-feature reviews
- MarkdownReporter: generates review reports

New CLI options: --repo, --quick, --deep, --list-sessions, --session,
--export, --path, --ignore, --plan-only, --reanalyze

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 22:58:22 +08:00

47 lines
1.3 KiB
TypeScript

// tests/state/types.test.ts
import { describe, it, expect } from 'vitest'
import type { ReviewSession, FeatureReviewResult } from '../../src/state/types.js'
describe('State Types', () => {
it('should define ReviewSession structure', () => {
const session: ReviewSession = {
id: 'test-id',
startedAt: new Date(),
updatedAt: new Date(),
status: 'in_progress',
config: {
focusAreas: ['security', 'performance'],
selectedFeatures: ['write', 'query']
},
plan: {
features: [],
totalFeatures: 5,
selectedCount: 2
},
progress: {
currentFeatureIndex: 1,
completedFeatures: ['write'],
featureResults: {}
}
}
expect(session.id).toBe('test-id')
expect(session.status).toBe('in_progress')
expect(session.config.selectedFeatures).toContain('write')
})
it('should define FeatureReviewResult structure', () => {
const result: FeatureReviewResult = {
featureId: 'write',
issues: [
{ id: 1, location: 'insert.ts:50', description: 'Missing validation', severity: 'medium', consensus: '2/2' }
],
summary: 'Write functionality has 1 medium issue',
reviewedAt: new Date()
}
expect(result.featureId).toBe('write')
expect(result.issues).toHaveLength(1)
})
})