From d4c37a3f78721f71f9faa1eb0737afe770a1ab7b Mon Sep 17 00:00:00 2001 From: "Rodrigo B. de Sousa Martins" Date: Fri, 8 Aug 2025 10:35:55 -0300 Subject: [PATCH] Limpeza 2 Signed-off-by: Rodrigo B. de Sousa Martins --- test-callbacks.js | 73 ------------------- test-complete-reset-flow.js | 120 -------------------------------- test-firmware-update.js | 135 ------------------------------------ test-nlp.js | 37 ---------- test-reset-alternative.js | 66 ------------------ test-reset-fixed.js | 49 ------------- test-reset-onu.js | 70 ------------------- test-ver-sinal-debug.js | 60 ---------------- 8 files changed, 610 deletions(-) delete mode 100644 test-callbacks.js delete mode 100644 test-complete-reset-flow.js delete mode 100644 test-firmware-update.js delete mode 100644 test-nlp.js delete mode 100644 test-reset-alternative.js delete mode 100644 test-reset-fixed.js delete mode 100644 test-reset-onu.js delete mode 100644 test-ver-sinal-debug.js diff --git a/test-callbacks.js b/test-callbacks.js deleted file mode 100644 index f35eddb..0000000 --- a/test-callbacks.js +++ /dev/null @@ -1,73 +0,0 @@ -// Teste de parsing de callbacks -console.log('🧪 Testando parsing de callbacks...\n'); - -// Simular dados de callback -const testCallbacks = [ - 'check_signal_olt_dito_DACM91569513', - 'check_signal_olt_colmeia_ABCD12345678', - 'check_signal_olt_canaa_TEST123456', - 'check_signal_olt_canaa2_SERIAL789', - 'show_config_olt_dito_1/1/1_10', - 'show_config_olt_canaa2_2/2/2_25' -]; - -function parseCheckSignalCallback(data) { - const parts = data.split('_'); - let oltId, serialNumber; - - if (parts.length === 5) { - // Caso: check_signal_olt_dito_SERIAL - oltId = parts[2] + '_' + parts[3]; // "olt_dito" - serialNumber = parts[4]; - } else if (parts.length === 4) { - // Caso: check_signal_oltid_SERIAL - oltId = parts[2]; - serialNumber = parts[3]; - } else { - // Tentar reconstruir dinamicamente - oltId = parts.slice(2, -1).join('_'); - serialNumber = parts[parts.length - 1]; - } - - return { oltId, serialNumber }; -} - -function parseShowConfigCallback(data) { - const parts = data.split('_'); - let oltId, slot, onuId; - - if (parts.length === 6) { - // Caso: show_config_olt_dito_slot_onuid - oltId = parts[2] + '_' + parts[3]; // "olt_dito" - slot = parts[4]; - onuId = parts[5]; - } else if (parts.length === 5) { - // Caso: show_config_oltid_slot_onuid - oltId = parts[2]; - slot = parts[3]; - onuId = parts[4]; - } else { - // Tentar reconstruir dinamicamente - onuId = parts[parts.length - 1]; - slot = parts[parts.length - 2]; - oltId = parts.slice(2, -2).join('_'); - } - - return { oltId, slot, onuId }; -} - -testCallbacks.forEach((callback, index) => { - console.log(`${index + 1}. Callback: "${callback}"`); - - if (callback.startsWith('check_signal_')) { - const result = parseCheckSignalCallback(callback); - console.log(` Resultado: OLT="${result.oltId}", Serial="${result.serialNumber}"`); - } else if (callback.startsWith('show_config_')) { - const result = parseShowConfigCallback(callback); - console.log(` Resultado: OLT="${result.oltId}", Slot="${result.slot}", ONU="${result.onuId}"`); - } - - console.log(''); -}); - -console.log('✅ Teste concluído!'); diff --git a/test-complete-reset-flow.js b/test-complete-reset-flow.js deleted file mode 100644 index e352ad0..0000000 --- a/test-complete-reset-flow.js +++ /dev/null @@ -1,120 +0,0 @@ -// Teste completo do fluxo de Reset ONU -const SSHManager = require('./src/ssh/manager'); - -async function testCompleteResetFlow() { - console.log('🧪 Teste Completo do Fluxo de Reset ONU\n'); - - const sshManager = new SSHManager(); - - // Simular callback data que seria gerado pelo bot - console.log('📝 1. Simulando callback data gerado pelo bot:'); - - // Exemplo de como seria gerado no handleVerSinal após encontrar ONU - const simulatedResult = { - slot: '1/1/1', - onuId: '5' - }; - const oltId = 'olt_dito'; - const serialNumber = 'DACM91569513'; - - const resetCallback = `reset_onu_${oltId}_${simulatedResult.slot}_${simulatedResult.onuId}`; - console.log(` Callback gerado: ${resetCallback}`); - - // Teste de parsing do callback - console.log('\n🔍 2. Testando parsing do callback:'); - const parts = resetCallback.split('_'); - console.log(` Parts: ${JSON.stringify(parts)}`); - - let parsedOltId, parsedSlot, parsedOnuId; - - if (parts.length === 6) { - parsedOltId = parts[2] + '_' + parts[3]; - parsedSlot = parts[4]; - parsedOnuId = parts[5]; - } else if (parts.length === 5) { - parsedOltId = parts[2]; - parsedSlot = parts[3]; - parsedOnuId = parts[4]; - } else { - parsedOnuId = parts[parts.length - 1]; - parsedSlot = parts[parts.length - 2]; - parsedOltId = parts.slice(2, -2).join('_'); - } - - console.log(` ✅ Parsed - OLT: ${parsedOltId}, Slot: ${parsedSlot}, ONU: ${parsedOnuId}`); - - // Verificar se a OLT existe - console.log('\n🏢 3. Verificando se a OLT existe:'); - const equipment = sshManager.equipamentos.get(parsedOltId); - if (equipment) { - console.log(` ✅ OLT encontrada: ${equipment.name} (${equipment.host})`); - } else { - console.log(` ❌ OLT não encontrada: ${parsedOltId}`); - console.log(' 📋 OLTs disponíveis:'); - sshManager.listOLTs().forEach(olt => { - console.log(` - ${olt.id}: ${olt.name}`); - }); - return; - } - - // Gerar comando que seria executado - console.log('\n💻 4. Comando que seria executado:'); - const command = `config terminal && interface gpon ${parsedSlot} && onu-reset onu ${parsedOnuId} && exit`; - console.log(` Comando: ${command}`); - - // Simular callback de confirmação - console.log('\n✅ 5. Callback de confirmação:'); - const confirmCallback = `confirm_reset_onu_${parsedOltId}_${parsedSlot}_${parsedOnuId}`; - console.log(` Callback: ${confirmCallback}`); - - // Testar parsing da confirmação - const confirmParts = confirmCallback.replace('confirm_reset_onu_', '').split('_'); - console.log(` Parts após remoção: ${JSON.stringify(confirmParts)}`); - - let confirmOltId, confirmSlot, confirmOnuId; - - if (confirmParts.length === 4) { - confirmOltId = confirmParts[0] + '_' + confirmParts[1]; - confirmSlot = confirmParts[2]; - confirmOnuId = confirmParts[3]; - } else if (confirmParts.length === 3) { - confirmOltId = confirmParts[0]; - confirmSlot = confirmParts[1]; - confirmOnuId = confirmParts[2]; - } else { - confirmOnuId = confirmParts[confirmParts.length - 1]; - confirmSlot = confirmParts[confirmParts.length - 2]; - confirmOltId = confirmParts.slice(0, -2).join('_'); - } - - console.log(` ✅ Confirm Parsed - OLT: ${confirmOltId}, Slot: ${confirmSlot}, ONU: ${confirmOnuId}`); - - // Verificar se o método existe - console.log('\n⚙️ 6. Verificando método resetOnuAlternative:'); - if (typeof sshManager.resetOnuAlternative === 'function') { - console.log(' ✅ Método resetOnuAlternative encontrado'); - - // Teste simulado (sem executar) - console.log('\n🎯 7. Teste simulado do método:'); - console.log(` Parâmetros: resetOnuAlternative('${confirmOltId}', '${confirmSlot}', '${confirmOnuId}')`); - - console.log('\n📊 8. Resultado esperado:'); - console.log(' - Conexão na OLT via SSH'); - console.log(' - Execução do comando de reset'); - console.log(' - Retorno com status de sucesso/erro'); - - } else { - console.log(' ❌ Método resetOnuAlternative NÃO encontrado'); - } - - console.log('\n✅ Teste completo finalizado!'); - console.log('\n🚀 Para testar no bot:'); - console.log(' 1. Digite: ver sinal DACM91569513'); - console.log(' 2. Selecione uma OLT'); - console.log(' 3. Clique em "🔌 Reiniciar ONU"'); - console.log(' 4. Confirme com "✅ SIM, Reiniciar"'); - console.log(' 5. Verifique os logs no console'); -} - -// Executar teste -testCompleteResetFlow().catch(console.error); diff --git a/test-firmware-update.js b/test-firmware-update.js deleted file mode 100644 index 8cbc0dd..0000000 --- a/test-firmware-update.js +++ /dev/null @@ -1,135 +0,0 @@ -// Teste da funcionalidade de Atualização de Firmware ONU -const SSHManager = require('./src/ssh/manager'); - -async function testOnuFirmwareUpdate() { - console.log('🧪 Testando funcionalidade de Atualização de Firmware ONU...\n'); - - const sshManager = new SSHManager(); - - // Teste 1: Verificar métodos implementados - console.log('⚙️ 1. Verificando métodos implementados:'); - - if (typeof sshManager.getOnuDetails === 'function') { - console.log(' ✅ Método getOnuDetails encontrado'); - } else { - console.log(' ❌ Método getOnuDetails não encontrado'); - } - - if (typeof sshManager.updateOnuFirmware === 'function') { - console.log(' ✅ Método updateOnuFirmware encontrado'); - } else { - console.log(' ❌ Método updateOnuFirmware não encontrado'); - } - - if (typeof sshManager.parseEquipmentId === 'function') { - console.log(' ✅ Método parseEquipmentId encontrado'); - } else { - console.log(' ❌ Método parseEquipmentId não encontrado'); - } - - // Teste 2: Testar parsing de Equipment ID - console.log('\n🔍 2. Testando parsing de Equipment ID:'); - - const testOutputs = [ - 'Equipment ID: DM986-100\nOther info...', - 'equipment id : DM986-414\nMore data...', - 'Model: DM986-100 Version: 1.0\nExtra info...', - 'Some random output without equipment id' - ]; - - testOutputs.forEach((output, index) => { - const equipmentId = sshManager.parseEquipmentId(output); - console.log(` Test ${index + 1}: "${output.substring(0, 30)}..." → Equipment ID: ${equipmentId}`); - }); - - // Teste 3: Mapear opções de firmware - console.log('\n📦 3. Mapeamento de opções de firmware:'); - - const firmwareMap = { - 'DM986-100': [ - 'DM986-100-inter.tar (FW INTERMEDIÁRIA)', - 'DM986-100-v56.tar (FW ATUAL)', - 'DM986-100-R300.tar (FW ROUTER)' - ], - 'DM986-414': [ - 'DM986-414-inter.tar (FW INTERMEDIÁRIA)', - 'DM986-414-v70.tar (FW ATUAL)' - ] - }; - - Object.entries(firmwareMap).forEach(([model, firmwares]) => { - console.log(` 📱 ${model}:`); - firmwares.forEach(fw => { - console.log(` - ${fw}`); - }); - }); - - // Teste 4: Testar parsing de callbacks - console.log('\n🔄 4. Testando parsing de callbacks de firmware:'); - - const testCallbacks = [ - 'update_onu_olt_dito_1/1/1_5', - 'firmware_DM986-100-v56.tar_olt_dito_1/1/1_5', - 'confirm_firmware_DM986-414-v70.tar_olt_canaa2_2/2/2_10' - ]; - - testCallbacks.forEach(callback => { - console.log(` Callback: ${callback}`); - - if (callback.startsWith('update_onu_')) { - const parts = callback.split('_'); - let oltId, slot, onuId; - - if (parts.length === 6) { - oltId = parts[2] + '_' + parts[3]; - slot = parts[4]; - onuId = parts[5]; - } - - console.log(` → Tipo: Update ONU`); - console.log(` → OLT: ${oltId}, Slot: ${slot}, ONU: ${onuId}`); - } else if (callback.startsWith('firmware_')) { - const parts = callback.replace('firmware_', '').split('_'); - const firmwareFile = parts[0]; - let oltId = parts[1] + '_' + parts[2]; - let slot = parts[3]; - let onuId = parts[4]; - - console.log(` → Tipo: Seleção Firmware`); - console.log(` → Firmware: ${firmwareFile}`); - console.log(` → OLT: ${oltId}, Slot: ${slot}, ONU: ${onuId}`); - } else if (callback.startsWith('confirm_firmware_')) { - const parts = callback.replace('confirm_firmware_', '').split('_'); - const firmwareFile = parts[0]; - let oltId = parts[1] + '_' + parts[2]; - let slot = parts[3]; - let onuId = parts[4]; - - console.log(` → Tipo: Confirmação Firmware`); - console.log(` → Firmware: ${firmwareFile}`); - console.log(` → OLT: ${oltId}, Slot: ${slot}, ONU: ${onuId}`); - } - - console.log(); - }); - - // Teste 5: Comando de atualização - console.log('📝 5. Exemplo de comando de atualização:'); - const slot = '1/1/1'; - const onuId = '5'; - const firmwareFile = 'DM986-100-v56.tar'; - const command = `request firmware onu install ${firmwareFile} interface gpon ${slot} onu ${onuId}`; - console.log(` Comando: ${command}`); - - console.log('\n✅ Teste de funcionalidade de firmware concluído!'); - console.log('\n🚀 Fluxo de teste no bot:'); - console.log(' 1. Digite: "ver sinal DACM91569513"'); - console.log(' 2. Clique: "⬆️ Atualizar ONU"'); - console.log(' 3. Sistema detecta modelo automaticamente'); - console.log(' 4. Escolha opção de firmware'); - console.log(' 5. Confirme a atualização'); - console.log(' 6. Aguarde o processo completar'); -} - -// Executar teste -testOnuFirmwareUpdate().catch(console.error); diff --git a/test-nlp.js b/test-nlp.js deleted file mode 100644 index 19b2fe4..0000000 --- a/test-nlp.js +++ /dev/null @@ -1,37 +0,0 @@ -const NLPProcessor = require('./src/nlp/processor'); - -// Teste do processador de linguagem natural -const nlp = new NLPProcessor(); - -console.log('🧪 Testando o processador de linguagem natural...\n'); - -const testCases = [ - 'Desconectar usuario analuciagomes', - 'desconectar analuciagomes', - 'ver sinal DACM91569513', - 'verificar sinal ABCD12345678', - 'sinal TESTE123456', - 'desconectar cliente joao123', - 'kick usuário maria456', - 'expulsar cliente teste', - 'remover cliente admin', - 'desconectar router1', - 'desconectar todas conexões', - 'listar usuários conectados', - 'mostrar clientes', - 'ssh juniper', - 'conectar concentrador', - 'verificar status do concentrador', - '/help', - '/equipamentos', - 'ping 131.0.192.254' -]; - -testCases.forEach((testCase, index) => { - console.log(`${index + 1}. Entrada: "${testCase}"`); - const result = nlp.processMessage(testCase); - console.log(` Resultado:`, result); - console.log(''); -}); - -console.log('✅ Teste concluído!'); diff --git a/test-reset-alternative.js b/test-reset-alternative.js deleted file mode 100644 index e8fd4d1..0000000 --- a/test-reset-alternative.js +++ /dev/null @@ -1,66 +0,0 @@ -// 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); diff --git a/test-reset-fixed.js b/test-reset-fixed.js deleted file mode 100644 index 92faf37..0000000 --- a/test-reset-fixed.js +++ /dev/null @@ -1,49 +0,0 @@ -// Teste da versão corrigida do resetOnuAlternative -const SSHManager = require('./src/ssh/manager'); - -async function testResetOnuFixed() { - console.log('🧪 Testando versão corrigida do resetOnuAlternative...\n'); - - const sshManager = new SSHManager(); - - // Verificar OLTs disponíveis - console.log('📋 OLTs disponíveis:'); - const olts = sshManager.listOLTs(); - olts.forEach(olt => { - console.log(` - ${olt.id}: ${olt.name} (${olt.host})`); - }); - - console.log('\n🔧 Sequência de comandos que será executada:'); - const slot = '1/1/1'; - const onuId = '10'; - - console.log(' 1. config'); - console.log(` 2. interface gpon ${slot}`); - console.log(` 3. onu-reset onu ${onuId}`); - console.log(' 4. yes (confirmação)'); - console.log(' 5. exit (sai do modo interface: config-gpon-1/1/1 → config)'); - console.log(' 6. exit (sai do modo configuração: config → modo normal)'); - - console.log('\n📝 Diferenças da versão corrigida:'); - console.log(' ✅ Usa "config" em vez de "config terminal"'); - console.log(' ✅ Executa comandos em sequência, não tudo junto'); - console.log(' ✅ Aguarda 2 segundos após onu-reset antes de enviar "yes"'); - console.log(' ✅ Adiciona delays entre comandos para estabilidade'); - console.log(' ✅ Trata erros de cada comando individualmente'); - - console.log('\n🎯 Fluxo esperado na OLT:'); - console.log(' DM4610-OLT-POP-DITO# config'); - console.log(' Entering configuration mode terminal'); - console.log(' DM4610-OLT-POP-DITO(config)# interface gpon 1/1/1'); - console.log(' DM4610-OLT-POP-DITO(config-gpon-1/1/1)# onu-reset onu 10'); - console.log(' Are you sure you want to reset this ONU? [no,yes] yes'); - console.log(' DM4610-OLT-POP-DITO(config-gpon-1/1/1)# exit'); - console.log(' DM4610-OLT-POP-DITO(config)# exit'); - console.log(' DM4610-OLT-POP-DITO#'); - - console.log('\n✅ Implementação corrigida pronta para teste!'); - console.log('🚀 Use o bot: "ver sinal DACM91569513" → "🔌 Reiniciar ONU"'); -} - -// Executar teste -testResetOnuFixed().catch(console.error); diff --git a/test-reset-onu.js b/test-reset-onu.js deleted file mode 100644 index 4863803..0000000 --- a/test-reset-onu.js +++ /dev/null @@ -1,70 +0,0 @@ -// Teste da funcionalidade de Reset ONU -const SSHManager = require('./src/ssh/manager'); - -async function testResetOnu() { - console.log('🧪 Iniciando teste de Reset ONU...\n'); - - const sshManager = new SSHManager(); - - // Teste 1: Verificar se as OLTs estão configuradas - console.log('📋 1. Listando OLTs disponíveis:'); - const olts = sshManager.listOLTs(); - olts.forEach(olt => { - console.log(` - ${olt.id}: ${olt.name} (${olt.host})`); - }); - console.log(); - - // Teste 2: Testar parsing de callback data - console.log('🔍 2. Testando parsing de callback data:'); - const testCallbacks = [ - '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' - ]; - - testCallbacks.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}`); - console.log(); - }); - - // Teste 3: Verificar se o método resetOnu existe - console.log('⚙️ 3. Verificando método resetOnu:'); - if (typeof sshManager.resetOnu === 'function') { - console.log(' ✅ Método resetOnu encontrado'); - } else { - console.log(' ❌ Método resetOnu não encontrado'); - } - - // Teste 4: Simular chamada do método (sem executar) - console.log('\n🔄 4. Simulando estrutura de chamada resetOnu:'); - console.log(' Parâmetros esperados: equipmentId, slot, onuId'); - console.log(' Exemplo: resetOnu("olt_dito", "1/1/1", "5")'); - console.log(' Comandos executados:'); - console.log(' 1. config'); - console.log(' 2. interface gpon 1/1/1'); - console.log(' 3. onu-reset onu 5'); - console.log(' 4. yes (confirmação)'); - console.log(' 5. exit'); - - console.log('\n✅ Teste de Reset ONU concluído!'); - console.log('📝 Para testar completamente, use o bot com "ver sinal SERIAL"'); - console.log(' e clique no botão "🔌 Reiniciar ONU" que aparecerá.'); -} - -// Executar teste -testResetOnu().catch(console.error); diff --git a/test-ver-sinal-debug.js b/test-ver-sinal-debug.js deleted file mode 100644 index a3080fd..0000000 --- a/test-ver-sinal-debug.js +++ /dev/null @@ -1,60 +0,0 @@ -// Teste específico para debug do comando "ver sinal" -const BotHandler = require('./src/bot/handler'); - -// Mock do bot do Telegram -const mockBot = { - sendMessage: async (chatId, message, options) => { - console.log(`📤 MENSAGEM ENVIADA para chat ${chatId}:`); - console.log(` Texto: ${message}`); - if (options) { - console.log(` Opções: ${JSON.stringify(options, null, 2)}`); - } - console.log(''); - return { message_id: Date.now() }; - } -}; - -async function testVerSinal() { - console.log('🧪 Testando comando "ver sinal" diretamente...\n'); - - // Criar handler - const handler = new BotHandler(mockBot); - - // Testar método handleVerSinal diretamente - console.log('🎯 Teste 1: Chamando handleVerSinal diretamente'); - console.log(' Serial: DACM91569513'); - console.log(' ChatId: 123456789\n'); - - try { - await handler.handleVerSinal(123456789, 'DACM91569513'); - console.log('✅ Método handleVerSinal executado sem erros'); - } catch (error) { - console.error('❌ Erro no handleVerSinal:', error); - } - - console.log('\n🧠 Teste 2: Testando processamento NLP'); - const intent = handler.nlp.processMessage('ver sinal DACM91569513'); - console.log(' Intent detectado:', intent); - - console.log('\n⚙️ Teste 3: Testando executeAction'); - const mockUser = { first_name: 'Teste', id: 123456789 }; - - try { - await handler.executeAction(123456789, intent, mockUser); - console.log('✅ executeAction executado sem erros'); - } catch (error) { - console.error('❌ Erro no executeAction:', error); - } - - console.log('\n📋 Teste 4: Verificando OLTs disponíveis'); - const olts = handler.ssh.listOLTs(); - console.log(` OLTs encontradas: ${olts.length}`); - olts.forEach(olt => { - console.log(` - ${olt.id}: ${olt.name} (${olt.host})`); - }); - - console.log('\n✅ Teste de debug concluído!'); -} - -// Executar teste -testVerSinal().catch(console.error);