68 lines
3.0 KiB
JavaScript
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));
|
|
})();
|