76 lines
2.8 KiB
Markdown
76 lines
2.8 KiB
Markdown
---
|
|
globs: ["test/**/*", "**/*.test.ts", "**/*.spec.ts"]
|
|
---
|
|
|
|
# Testing Conventions
|
|
|
|
## Test Framework
|
|
Uses Vitest with `happy-dom` environment. Config in `vitest.config.ts`.
|
|
|
|
## Test Commands
|
|
```bash
|
|
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 logic
|
|
- `services/parsing/SessionParser.ts` - JSONL parsing
|
|
- `services/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/`.
|