* refactor: streamline test suite - cut 33 files, enable parallel execution (11.9x speedup)
Remove duplicate, low-value, and fragmented test files while preserving
all meaningful coverage. Enable parallel test execution and remove
the entire benchmark infrastructure.
Key changes:
- Consolidate workflow-validator tests (13 files -> 3)
- Consolidate config-validator tests (9 files -> 3)
- Consolidate telemetry tests (11 files -> 6)
- Merge AI validator tests (2 files -> 1)
- Remove example/demo test files, mock-testing files, and already-skipped tests
- Remove benchmark infrastructure (10 files, CI workflow, 4 npm scripts)
- Enable parallel test execution (remove singleThread: true)
- Remove retry:2 that was masking flaky tests
- Slim CI publish-results job
Results: 224 -> 191 test files, 4690 -> 4303 tests, 121K -> 106K lines
Local runtime: 319s -> 27s (11.9x speedup)
Conceived by Romuald Członkowski - www.aiadvisors.pl/en
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* refactor: absorb config-validator satellite tests into consolidated file
The previous commit deleted 4 config-validator satellite files. This
properly merges their unique tests into the consolidated config-validator.test.ts,
recovering 89 tests that were dropped during the bulk deletion.
Deduplicates 5 tests that existed in both the satellite files and the
security test file.
Conceived by Romuald Członkowski - www.aiadvisors.pl/en
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: delete missed benchmark-pr.yml workflow, fix flaky session test
- Remove benchmark-pr.yml that referenced deleted benchmark:ci script
- Fix session-persistence round-trip test using timestamps closer to
now to avoid edge cases exposed by removing retry:2
Conceived by Romuald Członkowski - www.aiadvisors.pl/en
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: rebuild FTS5 index after database rebuild to prevent stale rowid refs
The FTS5 content-synced index could retain phantom rowid references from
previous rebuild cycles, causing 'missing row N from content table'
errors on MATCH queries.
- Add explicit FTS5 rebuild command in rebuild script after all nodes saved
- Add FTS5 rebuild in test beforeAll as defense-in-depth
- Rebuild nodes.db with consistent FTS5 index
Conceived by Romuald Członkowski - www.aiadvisors.pl/en
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: use recent timestamps in all session persistence tests
Session round-trip tests used timestamps 5-10 minutes in the past which
could fail under CI load when combined with session timeout validation.
Use timestamps 30 seconds in the past for all valid-session test data.
Conceived by Romuald Członkowski - www.aiadvisors.pl/en
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove msw-setup.ts from global vitest setupFiles
- Create separate integration-specific MSW setup
- Add vitest.config.integration.ts for integration tests
- Update package.json to use integration config for integration tests
- Update CI workflow to run unit and integration tests separately
- Add aggressive cleanup in integration MSW setup for CI environment
This prevents MSW from being initialized for unit tests where it's not needed,
which was causing tests to hang in CI after all tests completed.
- Reduce CI reporters to prevent resource contention (removed json/html)
- Optimize coverage settings with all:false and skipFull:true
- Fix MSW waitForRequest memory leak by adding timeout and cleanup
- Add teardownTimeout to vitest config
- Add 10-minute timeout to GitHub Actions job
- Create emergency test script without coverage for debugging
The main issues were:
1. Coverage collection with multiple reporters causing exhaustion
2. MSW event listener that could hang indefinitely
3. Too many simultaneous reporters (4 at once)
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add comprehensive test utilities for database testing
- Implement connection management tests for in-memory and file databases
- Add transaction tests including nested transactions and savepoints
- Test database lifecycle, error handling, and performance
- Include tests for WAL mode, connection pooling, and constraints
Part of Phase 4: Integration Testing
- Removed invalid workflow property from createTestTemplate function
- Fixed TemplateWorkflow interface usage to use nodes directly
- Removed unsupported watchExclude property from vitest config
- Updated seedTestTemplates to properly handle template data structure
All TypeScript errors are now resolved.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add test result artifacts storage with multiple formats (JUnit, JSON, HTML)
- Configure GitHub Actions to upload and preserve test outputs
- Add PR comment integration with test summaries
- Create benchmark comparison workflow for PR performance tracking
- Add detailed test report generation scripts
- Configure artifact retention policies (30 days for tests, 90 for combined)
- Set up test metadata collection for better debugging
This completes all remaining test infrastructure tasks and provides
comprehensive visibility into test results across CI/CD pipeline.
- Create benchmark test suites for critical operations:
- Node loading performance
- Database query performance
- Search operations performance
- Validation performance
- MCP tool execution performance
- Add GitHub Actions workflow for benchmark tracking:
- Runs on push to main and PRs
- Uses github-action-benchmark for historical tracking
- Comments on PRs with performance results
- Alerts on >10% performance regressions
- Stores results in GitHub Pages
- Create benchmark infrastructure:
- Custom Vitest benchmark configuration
- JSON reporter for CI results
- Result formatter for github-action-benchmark
- Performance threshold documentation
- Add supporting utilities:
- SQLiteStorageService for benchmark database setup
- MCPEngine wrapper for testing MCP tools
- Test factories for generating benchmark data
- Enhanced NodeRepository with benchmark methods
- Document benchmark system:
- Comprehensive benchmark guide in docs/BENCHMARKS.md
- Performance thresholds in .github/BENCHMARK_THRESHOLDS.md
- README for benchmarks directory
- Integration with existing test suite
The benchmark system will help monitor performance over time and catch regressions before they reach production.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove Jest and all related packages
- Install Vitest with coverage support
- Create vitest.config.ts with path aliases
- Set up global test configuration
- Migrate all 6 test files to Vitest syntax
- Update TypeScript configuration for better Vitest support
- Create separate tsconfig.build.json for clean builds
- Fix all import/module issues in tests
- All 68 tests passing successfully
- Current coverage baseline: 2.45%
Phase 1 of testing suite improvement complete.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>