Files
Investidor-V2/tools/document-library-browser-qa.mjs
T
nala 1106509116
tests / ci (push) Canceled after 0s
vrsao 2
2026-10-08 14:02:01 +02:00

63 lines
2.2 KiB
JavaScript

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