czlonkowski--n8n-mcp
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
64 行
2.0 KiB
Markdown
64 行
2.0 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
# 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. |