Files
n8n-mcp/tests/unit/database
czlonkowski 41c6a29b08 fix: resolve TypeScript errors in test files
- Add type assertions for factory options arrays
- Add 'this' type annotations to mock functions
- Fix missing required properties in test objects
- Change Mock to MockInstance for Vitest compatibility
- Add non-null assertions where needed

All 943 tests now passing
2025-07-28 20:28:45 +02:00
..

Database Layer Unit Tests

This directory contains comprehensive unit tests for the database layer components of n8n-mcp.

Test Coverage

node-repository.ts - 100% Coverage

  • saveNode method with JSON serialization
  • getNode method with JSON deserialization
  • getAITools method
  • safeJsonParse private method
  • Edge cases: large JSON, boolean conversion, invalid JSON handling

template-repository.ts - 80.31% Coverage

  • FTS5 initialization and fallback
  • saveTemplate with sanitization
  • getTemplate and getTemplatesByNodes
  • searchTemplates with FTS5 and LIKE fallback
  • getTemplatesForTask with task mapping
  • Template statistics and maintenance operations
  • Uncovered: Some error paths in FTS5 operations

database-adapter.ts - Tested via Mocks

  • Interface compliance tests
  • PreparedStatement implementation
  • Transaction support
  • FTS5 detection logic
  • Error handling patterns

Test Strategy

The tests use a mock-based approach to:

  1. Isolate database operations from actual database dependencies
  2. Test business logic without requiring real SQLite/sql.js
  3. Ensure consistent test execution across environments
  4. Focus on behavior rather than implementation details

Key Test Files

  • node-repository-core.test.ts - Core NodeRepository functionality
  • template-repository-core.test.ts - Core TemplateRepository functionality
  • database-adapter-unit.test.ts - DatabaseAdapter interface and patterns

Running Tests

# Run all database tests
npm test -- tests/unit/database/

# Run with coverage
npm run test:coverage -- tests/unit/database/

# Run specific test file
npm test -- tests/unit/database/node-repository-core.test.ts

Mock Infrastructure

The tests use custom mock implementations:

  • MockDatabaseAdapter - Simulates database operations
  • MockPreparedStatement - Simulates SQL statement execution
  • Mock logger and template sanitizer for external dependencies

This approach ensures tests are fast, reliable, and maintainable.