import fs from 'node:fs'; import { createRequire } from 'node:module'; const require = createRequire(import.meta.url); const { chromium, } = require('C:/Users/macbook/AppData/Local/Temp/investmoz-visual-qa-tools-20261004/node_modules/playwright'); const base = process.argv[2] ?? 'http://127.0.0.1:18089/documentos'; const browser = await chromium.launch({ headless: true }); const errors = []; const evidence = { base, testedAt: new Date().toISOString(), viewports: [], errors, }; for (const viewport of [ { name: 'desktop', width: 1440, height: 1000 }, { name: 'mobile', width: 390, height: 844 }, ]) { const page = await browser.newPage({ viewport: { width: viewport.width, height: viewport.height }, }); page.on('pageerror', (error) => errors.push(error.message)); const response = await page.goto(base, { waitUntil: 'networkidle' }); const heading = await page .getByRole('heading', { name: 'Documentos e Formulários' }) .count(); const overflow = await page.evaluate(() => ({ viewport: innerWidth, document: document.documentElement.scrollWidth, body: document.body.scrollWidth, })); await page.keyboard.press('Tab'); const focus = await page.evaluate(() => ({ tag: document.activeElement?.tagName, label: document.activeElement?.getAttribute('aria-label'), text: document.activeElement?.textContent?.trim().slice(0, 100), })); const screenshot = `docs/investmoz/document-library-${viewport.name}-2026-10-05.png`; await page.screenshot({ path: screenshot, fullPage: true }); evidence.viewports.push({ ...viewport, status: response?.status(), heading, emptyState: await page .getByText( /N[aã]o existem documentos publicados para esta pesquisa/, ) .count(), overflow, firstKeyboardFocus: focus, screenshot, }); await page.close(); } await browser.close(); const target = 'docs/investmoz/document-library-browser-2026-10-05.json'; fs.writeFileSync(target, JSON.stringify(evidence, null, 2) + '\n'); console.log(JSON.stringify(evidence, null, 2));