// 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);