#!/usr/bin/env node
/**
* Simplified test for running inside the Docker container
* Tests connection resilience features
*/
async function runTest() {
console.log('๐งช Testing Connection Resilience in Container');
console.log('=' .repeat(50));
try {
// Import from the correct container paths
const { ComfyUIClient } = await import('/app/src/comfyui-client.js');
console.log('\n๐ Test 1: Basic Connection');
const client = new ComfyUIClient('comfyui:8188', {
maxReconnectAttempts: 3,
reconnectDelay: 500,
heartbeatInterval: 5000
});
try {
await client.connect();
console.log('โ
Successfully connected to ComfyUI');
const status = client.getConnectionStatus();
console.log('๐ Connection status:', JSON.stringify(status, null, 2));
console.log('\n๐ Test 2: Connection State');
console.log('Is connected:', client.isConnected());
console.log('Connection state:', status.state);
console.log('Attempts remaining:', status.attemptsRemaining);
console.log('\n๐ Test 3: Simulating Disconnect');
// Close the WebSocket to trigger reconnection
if (client.ws) {
console.log('Closing WebSocket...');
client.ws.close();
// Wait a moment for reconnection
await new Promise(resolve => setTimeout(resolve, 2000));
const newStatus = client.getConnectionStatus();
console.log('Status after disconnect:', newStatus.state);
// Wait for reconnection
if (newStatus.state === 'reconnecting') {
console.log('Waiting for reconnection...');
await new Promise(resolve => setTimeout(resolve, 3000));
const finalStatus = client.getConnectionStatus();
console.log('Final status:', finalStatus.state);
if (finalStatus.state === 'connected') {
console.log('โ
Successfully reconnected!');
}
}
}
console.log('\n๐ Test 4: Clean Disconnect');
client.disconnect();
console.log('โ
Cleanly disconnected');
console.log('\n' + '=' .repeat(50));
console.log('๐ All tests completed successfully!');
} catch (error) {
console.error('โ Connection test failed:', error.message);
if (error.stack) {
console.error('Stack trace:', error.stack);
}
process.exit(1);
}
} catch (error) {
console.error('โ Failed to import modules:', error.message);
process.exit(1);
}
}
// Run the test
runTest().catch(error => {
console.error('Fatal error:', error);
process.exit(1);
});