57 lines
2.2 KiB
JavaScript
57 lines
2.2 KiB
JavaScript
const HerramientaSet = require('../models/HerramientaSet');
|
|
const HerramientaAsignacion = require('../models/HerramientaAsignacion');
|
|
const QRCode = require('qrcode');
|
|
|
|
async function testQrFlow() {
|
|
console.log('=== TEST DE FLUJO DE CÓDIGOS QR Y MANIFIESTO HTML ===');
|
|
|
|
const companyId = 1;
|
|
|
|
// 1. Obtener Sets existentes
|
|
console.log('1. Consultando sets de herramientas de Telcotronics...');
|
|
const sets = await HerramientaSet.findAll(companyId);
|
|
if (sets.length === 0) {
|
|
throw new Error('No hay sets en Telcotronics para probar');
|
|
}
|
|
|
|
const testSet = sets[0];
|
|
console.log(` ✓ Set encontrado: "${testSet.nombre}" (ID: ${testSet.id}, Código: ${testSet.codigo})`);
|
|
console.log(` ✓ Token QR: ${testSet.qr_token}`);
|
|
|
|
if (!testSet.qr_token) {
|
|
throw new Error('El set no tiene qr_token');
|
|
}
|
|
|
|
// 2. Probar findByToken
|
|
console.log('2. Buscando set mediante findByToken(qr_token)...');
|
|
const setByToken = await HerramientaSet.findByToken(testSet.qr_token);
|
|
if (!setByToken) {
|
|
throw new Error('findByToken retornó null');
|
|
}
|
|
console.log(` ✓ Set recuperado: ${setByToken.nombre} | Empresa: ${setByToken.company_name} | Herramientas: ${setByToken.herramientas.length}`);
|
|
console.log(` ✓ Estado custodia actual: ${setByToken.custodia ? 'EN CUSTODIA de ' + setByToken.custodia.tecnico_nombre : 'DISPONIBLE EN BODEGA'}`);
|
|
|
|
// 3. Generar código QR con la librería qrcode
|
|
console.log('3. Generando código QR en formato Data URL...');
|
|
const scanUrl = `https://soporte.sigmac.app/qr/set/${testSet.qr_token}`;
|
|
const qrDataUrl = await QRCode.toDataURL(scanUrl, {
|
|
width: 260,
|
|
margin: 1,
|
|
color: { dark: '#000000', light: '#ffffff' }
|
|
});
|
|
|
|
if (!qrDataUrl.startsWith('data:image/png;base64,')) {
|
|
throw new Error('El QR generado no es un Data URL de PNG válido');
|
|
}
|
|
console.log(` ✓ Código QR generado correctamente (longitud base64: ${qrDataUrl.length} bytes)`);
|
|
console.log(` ✓ URL destino del QR: ${scanUrl}`);
|
|
|
|
console.log('=== TEST DE QR Y MANIFIESTO FINALIZADO EXITOSAMENTE ===');
|
|
process.exit(0);
|
|
}
|
|
|
|
testQrFlow().catch(err => {
|
|
console.error('ERROR EN TEST:', err);
|
|
process.exit(1);
|
|
});
|