test-composition-creation.js•2.46 kB
const { spawn } = require('child_process');
const fs = require('fs');
console.log("🔧 Starting MCP server for composition test...");
// Create the server process
const serverProcess = spawn('node', ['dist/index.js'], {
cwd: '/Users/ricardokawasaki/Desktop/euconquisto-composer-mcp-poc',
stdio: ['pipe', 'pipe', 'pipe']
});
let output = '';
let errorOutput = '';
let responseReceived = false;
// Capture outputs
serverProcess.stdout.on('data', (data) => {
const text = data.toString();
output += text;
console.log('📤 Server Output:', text);
// Check if we got a JSON-RPC response
if (text.includes('"jsonrpc"') && text.includes('"result"')) {
responseReceived = true;
try {
const lines = text.split('\n');
for (const line of lines) {
if (line.trim() && line.includes('"jsonrpc"')) {
console.log('📋 Parsed Response:', JSON.stringify(JSON.parse(line), null, 2));
break;
}
}
} catch (e) {
console.log('📋 Raw Response:', text);
}
}
});
serverProcess.stderr.on('data', (data) => {
const text = data.toString();
errorOutput += text;
console.log('📢 Server Log:', text);
});
// Send the test command
const testInput = '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"complete-composition-workflow","arguments":{"title":"Composição Teste MCP","description":"Composição de teste criada via automação MCP para verificação de funcionalidade","author":"Sistema MCP Browser Automation","navigate":true}}}\n';
console.log('📨 Sending test command...');
serverProcess.stdin.write(testInput);
serverProcess.stdin.end();
// Set timeout to kill process after 60 seconds
const timeout = setTimeout(() => {
console.log('⏰ Test timeout reached, terminating...');
serverProcess.kill('SIGTERM');
}, 60000);
serverProcess.on('close', (code) => {
clearTimeout(timeout);
console.log('\n' + '='.repeat(70));
console.log('🏁 TEST COMPLETION REPORT');
console.log('='.repeat(70));
console.log('Exit Code:', code);
console.log('Response Received:', responseReceived);
if (output) {
console.log('\n📤 Complete Output:');
console.log(output);
}
if (errorOutput) {
console.log('\n📢 Server Logs:');
console.log(errorOutput);
}
console.log('='.repeat(70));
});
serverProcess.on('error', (error) => {
clearTimeout(timeout);
console.error('❌ Server process error:', error);
});