Skip to main content
Glama

n8n-MCP

by 88-888
test-error-validation.js4.7 kB
#!/usr/bin/env node /** * Test script for error output validation improvements */ const { WorkflowValidator } = require('../dist/services/workflow-validator.js'); const { NodeRepository } = require('../dist/database/node-repository.js'); const { EnhancedConfigValidator } = require('../dist/services/enhanced-config-validator.js'); const Database = require('better-sqlite3'); const path = require('path'); async function runTests() { // Initialize database const dbPath = path.join(__dirname, '..', 'data', 'nodes.db'); const db = new Database(dbPath, { readonly: true }); const nodeRepository = new NodeRepository(db); const validator = new WorkflowValidator(nodeRepository, EnhancedConfigValidator); console.log('\n🧪 Testing Error Output Validation Improvements\n'); console.log('=' .repeat(60)); // Test 1: Incorrect configuration - multiple nodes in same array console.log('\n📝 Test 1: INCORRECT - Multiple nodes in main[0]'); console.log('-'.repeat(40)); const incorrectWorkflow = { nodes: [ { id: '132ef0dc-87af-41de-a95d-cabe3a0a5342', name: 'Validate Input', type: 'n8n-nodes-base.set', typeVersion: 3.4, position: [-400, 64], parameters: {} }, { id: '5dedf217-63f9-409f-b34e-7780b22e199a', name: 'Filter URLs', type: 'n8n-nodes-base.filter', typeVersion: 2.2, position: [-176, 64], parameters: {} }, { id: '9d5407cc-ca5a-4966-b4b7-0e5dfbf54ad3', name: 'Error Response1', type: 'n8n-nodes-base.respondToWebhook', typeVersion: 1.5, position: [-160, 240], parameters: {} } ], connections: { 'Validate Input': { main: [ [ { node: 'Filter URLs', type: 'main', index: 0 }, { node: 'Error Response1', type: 'main', index: 0 } // WRONG! ] ] } } }; const result1 = await validator.validateWorkflow(incorrectWorkflow); if (result1.errors.length > 0) { console.log('❌ ERROR DETECTED (as expected):'); const errorMessage = result1.errors.find(e => e.message.includes('Incorrect error output configuration') ); if (errorMessage) { console.log('\nError Summary:'); console.log(`Node: ${errorMessage.nodeName || 'Validate Input'}`); console.log('\nFull Error Message:'); console.log(errorMessage.message); } else { console.log('Other errors found:', result1.errors.map(e => e.message)); } } else { console.log('⚠️ No errors found - validation may not be working correctly'); } // Test 2: Correct configuration - separate arrays console.log('\n📝 Test 2: CORRECT - Separate main[0] and main[1]'); console.log('-'.repeat(40)); const correctWorkflow = { nodes: [ { id: '132ef0dc-87af-41de-a95d-cabe3a0a5342', name: 'Validate Input', type: 'n8n-nodes-base.set', typeVersion: 3.4, position: [-400, 64], parameters: {}, onError: 'continueErrorOutput' }, { id: '5dedf217-63f9-409f-b34e-7780b22e199a', name: 'Filter URLs', type: 'n8n-nodes-base.filter', typeVersion: 2.2, position: [-176, 64], parameters: {} }, { id: '9d5407cc-ca5a-4966-b4b7-0e5dfbf54ad3', name: 'Error Response1', type: 'n8n-nodes-base.respondToWebhook', typeVersion: 1.5, position: [-160, 240], parameters: {} } ], connections: { 'Validate Input': { main: [ [ { node: 'Filter URLs', type: 'main', index: 0 } ], [ { node: 'Error Response1', type: 'main', index: 0 } // CORRECT! ] ] } } }; const result2 = await validator.validateWorkflow(correctWorkflow); const hasIncorrectError = result2.errors.some(e => e.message.includes('Incorrect error output configuration') ); if (!hasIncorrectError) { console.log('✅ No error output configuration issues (correct!)'); } else { console.log('❌ Unexpected error found'); } console.log('\n' + '='.repeat(60)); console.log('\n✨ Error output validation is working correctly!'); console.log('The validator now properly detects:'); console.log(' 1. Multiple nodes incorrectly placed in main[0]'); console.log(' 2. Provides clear JSON examples for fixing issues'); console.log(' 3. Validates onError property matches connections'); // Close database db.close(); } runTests().catch(error => { console.error('Test failed:', error); process.exit(1); });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/88-888/n8n-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server