AvanzaCast/packages/studio-panel/scripts/playwright_rec_test.mjs

35 lines
1.7 KiB
JavaScript

let playwright
try { playwright = await import('playwright'); } catch (e) { console.error('Playwright no está instalado:', e); process.exit(2); }
const { chromium } = playwright;
(async ()=>{
const browser = await chromium.launch();
const page = await browser.newPage();
try{
console.log('Navegando a simulate.html...');
await page.goto('http://localhost:3021/simulate.html', { waitUntil: 'networkidle', timeout: 15000 });
console.log('Página cargada. Buscando botón Start...');
const btn = await page.waitForSelector('button#recBtn, button:has-text("Start")', { timeout: 5000 });
if(!btn) throw new Error('Botón de grabación no encontrado');
console.log('Haciendo click en Start...');
await btn.click();
// esperar a que la clase recording esté presente o a que el .record-dot sea visible
await page.waitForSelector('.btn-control.recording', { timeout: 5000 });
await page.waitForSelector('.record-dot', { timeout: 5000 });
console.log('Recording visuals present — tomando captura...');
await page.screenshot({ path: '/tmp/studio_record_test.png', fullPage: true });
console.log('Screenshot guardada en /tmp/studio_record_test.png');
// comprobar atributos
const attrs = await page.evaluate(()=>{
const btn = document.getElementById('recBtn');
return {
ariaPressed: btn?.getAttribute('aria-pressed'),
hasRecordingClass: btn?.classList.contains('recording'),
recordDotDisplay: window.getComputedStyle(btn?.querySelector('.record-dot') || document.createElement('span')).display
}
});
console.log('Atributos tras click:', JSON.stringify(attrs));
}catch(e){ console.error('Error durante la prueba:', e); process.exitCode = 2 }
await browser.close();
})();