// Teste específico do método resetOnuAlternative const SSHManager = require('./src/ssh/manager'); async function testResetOnuAlternative() { console.log('🧪 Testando método resetOnuAlternative...\n'); const sshManager = new SSHManager(); // Verificar se o método existe console.log('⚙️ Verificando método resetOnuAlternative:'); if (typeof sshManager.resetOnuAlternative === 'function') { console.log(' ✅ Método resetOnuAlternative encontrado'); } else { console.log(' ❌ Método resetOnuAlternative não encontrado'); return; } // Testar a estrutura do comando console.log('\n🔍 Estrutura do comando que será executado:'); const slot = '1/1/1'; const onuId = '5'; const command = `config terminal && interface gpon ${slot} && onu-reset onu ${onuId} && exit`; console.log(` Comando: ${command}`); // Simular diferentes cenários de parsing console.log('\n📝 Teste de parsing de callbacks:'); const testCases = [ 'reset_onu_olt_dito_1/1/1_5', 'reset_onu_olt_colmeia_2/2/2_10', 'reset_onu_olt_canaa_3/3/3_15', 'reset_onu_olt_canaa2_1/2/3_8' ]; testCases.forEach(callback => { const parts = callback.split('_'); let oltId, slot, onuId; if (parts.length === 6) { oltId = parts[2] + '_' + parts[3]; slot = parts[4]; onuId = parts[5]; } else { onuId = parts[parts.length - 1]; slot = parts[parts.length - 2]; oltId = parts.slice(2, -2).join('_'); } console.log(` Callback: ${callback}`); console.log(` -> OLT: ${oltId}, Slot: ${slot}, ONU: ${onuId}`); // Mostrar como seria o comando const cmd = `config terminal && interface gpon ${slot} && onu-reset onu ${onuId} && exit`; console.log(` -> Comando: ${cmd}`); console.log(); }); console.log('✅ Testes de estrutura concluídos!'); console.log('\n📋 Diferenças entre as versões:'); console.log(' 🔄 resetOnu (original): Usa shell interativo com detecção de prompts'); console.log(' ⚡ resetOnuAlternative: Usa comando único com operadores &&'); console.log('\n💡 A versão alternativa deve ser mais confiável e evitar timeouts.'); console.log('🚀 Teste no bot usando "ver sinal SERIAL" e clique em "🔌 Reiniciar ONU"'); } // Executar teste testResetOnuAlternative().catch(console.error);