136 lines
5.1 KiB
JavaScript
136 lines
5.1 KiB
JavaScript
// 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);
|