feat: implement integration testing foundation (Phase 1)

Complete implementation of Phase 1 foundation for n8n API integration tests.
Establishes core utilities, fixtures, and infrastructure for testing all 17 n8n API handlers against real n8n instance.

Changes:
- Add integration test environment configuration to .env.example
- Create comprehensive test utilities infrastructure:
  * credentials.ts: Environment-aware credential management (local .env vs CI secrets)
  * n8n-client.ts: Singleton API client wrapper with health checks
  * test-context.ts: Resource tracking and automatic cleanup
  * cleanup-helpers.ts: Multi-level cleanup strategies (orphaned, age-based, tag-based)
  * fixtures.ts: 6 pre-built workflow templates (webhook, HTTP, multi-node, error handling, AI, expressions)
  * factories.ts: Dynamic node/workflow builders with 15+ factory functions
  * webhook-workflows.ts: Webhook workflow configs and setup instructions

- Add npm scripts:
  * test:integration:n8n: Run n8n API integration tests
  * test:cleanup:orphans: Clean up orphaned test resources

- Create cleanup script for CI/manual use

Documentation:
- Add comprehensive integration testing plan (550 lines)
- Add Phase 1 completion summary with lessons learned

Key Features:
- Automatic credential detection (CI vs local)
- Multi-level cleanup (test, suite, CI, orphan)
- 6 workflow fixtures covering common scenarios
- 15+ factory functions for dynamic test data
- Support for 4 HTTP methods (GET, POST, PUT, DELETE) via pre-activated webhook workflows
- TypeScript-first with full type safety
- Comprehensive error handling with helpful messages

Total: ~1,520 lines of production-ready code + 650 lines of documentation

Ready for Phase 2: Workflow creation tests

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
czlonkowski
2025-10-03 13:12:42 +02:00
parent fe59688e03
commit 2305aaab9e
18 changed files with 10956 additions and 1 deletions

View File

@@ -132,4 +132,36 @@ ENABLE_MULTI_TENANT=false
# Enable metadata generation during template fetch (default: false)
# Set to true to automatically generate metadata when running fetch:templates
# METADATA_GENERATION_ENABLED=false
# METADATA_GENERATION_ENABLED=false
# ========================================
# INTEGRATION TESTING CONFIGURATION
# ========================================
# Configuration for integration tests that call real n8n instance API
# n8n API Configuration for Integration Tests
# For local development: Use your local n8n instance
# For CI: These will be provided by GitHub secrets
# N8N_API_URL=http://localhost:5678
# N8N_API_KEY=
# Pre-activated Webhook Workflows for Testing
# These workflows must be created manually in n8n and activated
# because n8n API doesn't support workflow activation.
#
# Setup Instructions:
# 1. Create 4 workflows in n8n UI (one for each HTTP method)
# 2. Each workflow should have a single Webhook node
# 3. Configure webhook paths: mcp-test-get, mcp-test-post, mcp-test-put, mcp-test-delete
# 4. ACTIVATE each workflow in n8n UI
# 5. Copy the workflow IDs here
#
# N8N_TEST_WEBHOOK_GET_ID= # Workflow ID for GET method webhook
# N8N_TEST_WEBHOOK_POST_ID= # Workflow ID for POST method webhook
# N8N_TEST_WEBHOOK_PUT_ID= # Workflow ID for PUT method webhook
# N8N_TEST_WEBHOOK_DELETE_ID= # Workflow ID for DELETE method webhook
# Test Configuration
N8N_TEST_CLEANUP_ENABLED=true # Enable automatic cleanup of test workflows
N8N_TEST_TAG=mcp-integration-test # Tag applied to all test workflows
N8N_TEST_NAME_PREFIX=[MCP-TEST] # Name prefix for test workflows