**Critical Fix**: Tests now properly test the MCP handler layer (the actual product) instead of raw API client.
**Changes**:
- All 15 tests now use `handleCreateWorkflow()` MCP handler
- Tests validate `McpToolResponse` structure (`success`, `data`, `error`)
- Created `mcp-context.ts` helper for configuring InstanceContext
- Fixed ERROR_HANDLING_WORKFLOW to add main connection (MCP validation requirement)
- Updated error/edge case tests to expect validation failures (correct MCP behavior)
**MCP Handler Validation**:
- Error scenarios now correctly expect `success: false` with validation errors
- Edge cases updated to reflect MCP handler's proper pre-validation
- Documents that MCP validation is CORRECT behavior (catches errors early)
**Test Results**: All 15 scenarios passing
- 8 valid workflow tests → expect `success: true`
- 7 validation tests (errors/edge cases) → expect `success: false`
**Why This Matters**:
AI assistants interact with MCP handlers, not raw API client. Testing the wrong layer would miss MCP-specific logic and validation.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
The cleanup was deleting ALL test workflows in CI, including the pre-activated
webhook workflow that needs to persist across test runs. Since CI uses a shared
n8n instance (not a disposable test instance), we should skip cleanup there.
Cleanup now only runs locally where users can recreate their own test workflows.
Critical fix: Prevents accidental deletion of the webhook workflow in CI
Implements comprehensive workflow creation tests against real n8n instance
with 15 test scenarios covering P0 bugs, base nodes, advanced features,
error scenarios, and edge cases.
Key Changes:
- Added 15 workflow creation test scenarios in create-workflow.test.ts
- Fixed critical MSW interference with real API calls
- Fixed environment loading priority (.env before test defaults)
- Implemented multi-level cleanup with webhook workflow preservation
- Migrated from webhook IDs to webhook URLs configuration
- Added TypeScript type safety fixes (26 errors resolved)
- Updated test names to reflect actual n8n API behavior
Bug Fixes:
- Removed MSW from integration test setup (was blocking real API calls)
- Fixed .env loading order to preserve real credentials over test defaults
- Added type guards for undefined workflow IDs
- Fixed position arrays to use proper tuple types [number, number]
- Added literal types for executionOrder and settings values
Test Coverage:
- P0: Critical bug verification (FULL vs SHORT node type format)
- P1: Base n8n nodes (webhook, HTTP, langchain, multi-node)
- P2: Advanced features (connections, settings, expressions, error handling)
- Error scenarios (documents actual n8n API validation behavior)
- Edge cases (minimal workflows, empty connections, no settings)
Technical Improvements:
- Cleanup strategy preserves pre-activated webhook workflows
- Single webhook URL accepts all HTTP methods (GET, POST, PUT, DELETE)
- Environment-aware credential loading with validation
- Comprehensive test context for resource tracking
All 15 tests passing ✅
TypeScript: 0 errors ✅🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>