Commit Graph

9 Commits

Author SHA1 Message Date
czlonkowski
7f4c0ae3a9 fix: prevent MSW from loading globally to fix CI test hanging
- 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.
2025-07-29 14:16:13 +02:00
czlonkowski
b9eda61729 fix: resolve test hanging issue in CI
- 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>
2025-07-29 13:40:18 +02:00
czlonkowski
115bb6f36c fix: resolve test hang issues in CI
- Fixed MSW event listener memory leaks
- Added proper database connection cleanup
- Fixed MSW server lifecycle management
- Reduced global test timeout to 30s for faster failure detection
- Added resource cleanup in all integration tests

This should resolve the GitHub Actions test hanging issue
2025-07-29 13:07:51 +02:00
czlonkowski
1d464e29e5 test: add Phase 4 database integration tests (partial)
- 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
2025-07-29 09:36:14 +02:00
czlonkowski
4da7ccdec7 fix: ensure test environment configuration is always available
- Added fallback values in getTestConfig() to prevent undefined errors
- Call setTestDefaults() if environment variables are not set
- Added CI debug logging to diagnose environment loading issues
- Made configuration access more resilient to timing issues

This should resolve the persistent CI test failure by ensuring
environment variables always have valid values.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-29 08:49:53 +02:00
czlonkowski
a8c3d04c12 fix: resolve test environment loading race condition in CI
- Move getTestConfig() calls from module level to test execution time
- Add CI-specific debug logging to diagnose environment loading issues
- Add verification step in CI workflow to check .env.test availability
- Ensure environment variables are loaded before tests access config

The issue was that config was being accessed at module import time,
which could happen before the global setup runs in some CI environments.
2025-07-29 07:13:37 +02:00
czlonkowski
6c40057cf4 fix: correct default API key in test environment setup
- Updated default N8N_API_KEY to match test expectations
- Ensured test environment variables are properly set with defaults
- Fixed environment configuration test to work in CI

This resolves the final test failure in CI.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-29 00:14:41 +02:00
czlonkowski
b5210e5963 feat: add comprehensive performance benchmark tracking system
- 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>
2025-07-28 22:45:09 +02:00
czlonkowski
aa3b2a8460 test: migrate from Jest to Vitest (Phase 1 complete)
- 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>
2025-07-28 13:05:38 +02:00