Files
n8n-mcp/docs/testing-checklist.md
czlonkowski cf960ed2ac test: phase 0 - fix failing tests and setup CI/CD
- Fixed 6 failing tests across http-server-auth.test.ts and single-session.test.ts
- All tests now pass (68 passing, 0 failing)
- Added GitHub Actions workflow for automated testing
- Added comprehensive testing documentation and strategy
- Tests fixed without changing application behavior
2025-07-28 12:04:38 +02:00

5.6 KiB

n8n-MCP Testing Implementation Checklist

Immediate Actions (Day 1)

  • Install Vitest and remove Jest
  • Create vitest.config.ts
  • Setup global test configuration
  • Migrate existing tests to Vitest syntax
  • Create GitHub Actions workflow file
  • Setup coverage reporting with Codecov

Week 1: Foundation

Testing Infrastructure

  • Create test directory structure
  • Setup mock infrastructure for better-sqlite3
  • Create mock for n8n-nodes-base package
  • Setup test database utilities
  • Create factory pattern for nodes
  • Create builder pattern for workflows
  • Setup global test utilities
  • Configure test environment variables

CI/CD Pipeline

  • GitHub Actions for test execution
  • Coverage reporting integration
  • Performance benchmark tracking
  • Test result artifacts
  • Branch protection rules
  • Required status checks

Week 2: Mock Infrastructure

Database Mocking

  • Complete better-sqlite3 mock implementation
  • Mock prepared statements
  • Mock transactions
  • Mock FTS5 search functionality
  • Test data seeding utilities

External Dependencies

  • Mock axios for API calls
  • Mock file system operations
  • Mock MCP SDK
  • Mock Express server
  • Mock WebSocket connections

Week 3-4: Unit Tests

Core Services (Priority 1)

  • config-validator.ts - 95% coverage
  • enhanced-config-validator.ts - 95% coverage
  • workflow-validator.ts - 90% coverage
  • expression-validator.ts - 90% coverage
  • property-filter.ts - 90% coverage
  • example-generator.ts - 85% coverage

Parsers (Priority 2)

  • node-parser.ts - 90% coverage
  • property-extractor.ts - 90% coverage

MCP Layer (Priority 3)

  • tools.ts - 90% coverage
  • handlers-n8n-manager.ts - 85% coverage
  • handlers-workflow-diff.ts - 85% coverage
  • tools-documentation.ts - 80% coverage

Database Layer (Priority 4)

  • node-repository.ts - 85% coverage
  • database-adapter.ts - 85% coverage
  • template-repository.ts - 80% coverage

Loaders and Mappers (Priority 5)

  • node-loader.ts - 85% coverage
  • docs-mapper.ts - 80% coverage

Week 5-6: Integration Tests

MCP Protocol Tests

  • Full MCP server initialization
  • Tool invocation flow
  • Error handling and recovery
  • Concurrent request handling
  • Session management

n8n API Integration

  • Workflow CRUD operations
  • Webhook triggering
  • Execution monitoring
  • Authentication handling
  • Error scenarios

Database Integration

  • SQLite operations with real DB
  • FTS5 search functionality
  • Transaction handling
  • Migration testing
  • Performance under load

Week 7-8: E2E & Performance

End-to-End Scenarios

  • Complete workflow creation flow
  • AI agent workflow setup
  • Template import and validation
  • Workflow execution monitoring
  • Error recovery scenarios

Performance Benchmarks

  • Node loading speed (< 50ms per node)
  • Search performance (< 100ms for 1000 nodes)
  • Validation speed (< 10ms simple, < 100ms complex)
  • Database query performance
  • Memory usage profiling
  • Concurrent request handling

Load Testing

  • 100 concurrent MCP requests
  • 10,000 nodes in database
  • 1,000 workflow validations/minute
  • Memory leak detection
  • Resource cleanup verification

Testing Quality Gates

Coverage Requirements

  • Overall: 80%+
  • Core services: 90%+
  • MCP tools: 90%+
  • Critical paths: 95%+
  • New code: 90%+

Performance Requirements

  • All unit tests < 10ms
  • Integration tests < 1s
  • E2E tests < 10s
  • Full suite < 5 minutes
  • No memory leaks

Code Quality

  • No ESLint errors
  • No TypeScript errors
  • No console.log in tests
  • All tests have descriptions
  • No hardcoded values

Monitoring & Maintenance

Daily

  • Check CI pipeline status
  • Review failed tests
  • Monitor flaky tests

Weekly

  • Review coverage reports
  • Update test documentation
  • Performance benchmark review
  • Team sync on testing progress

Monthly

  • Update baseline benchmarks
  • Review and refactor tests
  • Update testing strategy
  • Training/knowledge sharing

Risk Mitigation

Technical Risks

  • Mock complexity - Use simple, maintainable mocks
  • Test brittleness - Focus on behavior, not implementation
  • Performance impact - Run heavy tests in parallel
  • Flaky tests - Proper async handling and isolation

Process Risks

  • Slow adoption - Provide training and examples
  • Coverage gaming - Review test quality, not just numbers
  • Maintenance burden - Automate what's possible
  • Integration complexity - Use test containers

Success Criteria

Technical Metrics

  • Coverage: 80%+ overall, 90%+ critical paths
  • Performance: All benchmarks within limits
  • Reliability: Zero flaky tests
  • Speed: CI pipeline < 5 minutes

Team Metrics

  • All developers writing tests
  • Tests reviewed in PRs
  • No production bugs from tested code
  • Improved development velocity

Resources & Tools

Documentation

Monitoring

Team Resources

  • Testing best practices guide
  • Example test implementations
  • Mock usage patterns
  • Performance optimization tips