Files
wehub-resource-sync 409e92d6ae
Build and Push Docker Images / Build Docker Image (push) Has been cancelled
Build and Push Docker Images / Build Railway Docker Image (push) Has been cancelled
Build and Publish n8n Docker Image / test-image (push) Has been cancelled
Dependency Compatibility Check / Fresh Install Dependency Check (push) Has been cancelled
Build and Publish n8n Docker Image / build-and-push (push) Has been cancelled
Build and Publish n8n Docker Image / create-release (push) Has been cancelled
Automated Release / Detect Version Change (push) Has been cancelled
Automated Release / Generate Release Notes (push) Has been cancelled
Automated Release / Create GitHub Release (push) Has been cancelled
Automated Release / Package MCPB Bundle (push) Has been cancelled
Automated Release / Build and Verify (push) Has been cancelled
Automated Release / Publish to NPM (push) Has been cancelled
Automated Release / Build and Push Docker Images (push) Has been cancelled
Automated Release / Update Documentation (push) Has been cancelled
Automated Release / Notify Release Completion (push) Has been cancelled
Secret Scan / secretlint (push) Has been cancelled
Test Suite / test (push) Has been cancelled
Test Suite / cjs-runtime (push) Has been cancelled
Test Suite / publish-results (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:41:06 +08:00

2.0 KiB

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.