Files
html/api/v91_audit_broken.js
2026-04-20 15:00:02 +02:00

68 lines
3.0 KiB
JavaScript

const { chromium } = require('playwright');
const fs = require('fs');
(async () => {
const browser = await chromium.launch({ headless: true });
const ctx = await browser.newContext({
viewport: { width: 1440, height: 900 },
recordVideo: { dir: '/tmp/v91-videos/' }
});
const page = await ctx.newPage();
await page.addInitScript(() => {
try { localStorage.setItem('weval_internal', 'yacine-2026'); } catch(e){}
});
const results = [];
for (const target of [
{ name: 'wevia-em-big4', url: 'https://weval-consulting.com/wevia-em-big4.html' },
{ name: 'enterprise-model', url: 'https://weval-consulting.com/enterprise-model.html' }
]) {
const errs = [];
const network = [];
page.on('pageerror', e => errs.push(`pageerror: ${e.message}`));
page.on('console', m => { if (m.type() === 'error') errs.push(`console: ${m.text().substring(0,150)}`); });
page.on('response', r => {
if (r.url().includes('/api/') || r.url().includes('.json') || r.url().includes('.php')) {
network.push({ url: r.url().replace('https://weval-consulting.com',''), status: r.status() });
}
});
try {
await page.goto(target.url, { waitUntil: 'load', timeout: 30000 });
await page.waitForTimeout(5000); // Let JS render
const diag = await page.evaluate(() => {
return {
title: document.title,
final_url: location.href,
body_text_len: document.body.innerText.length,
svg_count: document.querySelectorAll('svg').length,
canvas_count: document.querySelectorAll('canvas').length,
img_count: document.querySelectorAll('img').length,
dots_count: document.querySelectorAll('.dot, .agent-dot, [class*="dot"], circle').length,
domain_labels: Array.from(document.querySelectorAll('*')).filter(e => /Finance|HR|Marketing|Sales|Supply|Procurement|Production|IT|QA/i.test(e.textContent || '') && e.children.length < 3).length,
errors_visible: Array.from(document.querySelectorAll('*')).filter(e => /error|failed|404|500/i.test(e.textContent || '') && e.children.length < 3).length,
};
});
await page.screenshot({ path: `/tmp/v91-${target.name}.png`, fullPage: true });
results.push({
target: target.name,
url: target.url,
...diag,
js_errors: errs.slice(0, 10),
api_calls: network.slice(0, 20)
});
} catch (e) {
results.push({ target: target.name, err: e.message.substring(0, 200) });
}
}
await ctx.close();
await browser.close();
fs.writeFileSync('/var/www/html/api/playwright-v91-audit-broken.json', JSON.stringify(results, null, 2));
console.log(JSON.stringify(results, null, 2).substring(0, 3000));
})();