2.8 KiB
2.8 KiB
| globs | |||
|---|---|---|---|
|
Testing Conventions
Test Framework
Uses Vitest with happy-dom environment. Config in vitest.config.ts.
Test Commands
pnpm test # Run all vitest tests
pnpm test:watch # Watch mode
pnpm test:coverage # Coverage report
pnpm test:coverage:critical # Critical path coverage
pnpm test:chunks # Chunk building tests
pnpm test:semantic # Semantic step extraction
pnpm test:noise # Noise filtering tests
pnpm test:task-filtering # Task tool filtering
Test Structure
test/
├── main/
│ ├── ipc/ # IPC handler tests
│ │ ├── configValidation.test.ts
│ │ └── guards.test.ts
│ ├── services/ # Service tests
│ │ ├── analysis/ (ChunkBuilder)
│ │ ├── discovery/ (ProjectPathResolver, SessionSearcher)
│ │ ├── infrastructure/ (FileWatcher)
│ │ └── parsing/ (MessageClassifier, SessionParser)
│ └── utils/ # Main process utilities
│ ├── jsonl.test.ts
│ ├── pathDecoder.test.ts
│ ├── pathValidation.test.ts
│ ├── regexValidation.test.ts
│ └── tokenizer.test.ts
├── renderer/
│ ├── hooks/ # Hook tests
│ │ ├── navigationUtils.test.ts
│ │ ├── useAutoScrollBottom.test.ts
│ │ ├── useSearchContextNavigation.test.ts
│ │ └── useVisibleAIGroup.test.ts
│ ├── store/ # Zustand store slices
│ │ ├── notificationSlice.test.ts
│ │ ├── paneSlice.test.ts
│ │ ├── pathResolution.test.ts
│ │ ├── sessionSlice.test.ts
│ │ ├── tabSlice.test.ts
│ │ └── tabUISlice.test.ts
│ └── utils/ # Renderer utilities
│ ├── claudeMdTracker.test.ts
│ ├── dateGrouping.test.ts
│ ├── formatters.test.ts
│ └── pathUtils.test.ts
├── shared/
│ └── utils/ # Shared utilities
│ ├── markdownSearchRendererAlignment.test.ts
│ ├── markdownTextSearch.test.ts
│ ├── modelParser.test.ts
│ └── tokenFormatting.test.ts
├── mocks/ # Test fixtures and mocks
└── setup.ts # Test setup/config
Files to Test After Changes
services/analysis/ChunkBuilder.ts- Chunk building logicservices/parsing/SessionParser.ts- JSONL parsingservices/parsing/MessageClassifier.ts- Message classification- Store slices in
src/renderer/store/slices/ - Utility functions in
*/utils/
Test Data
Test fixtures use real JSONL session data from ~/.claude/projects/.