25 lines
1.2 KiB
JavaScript
25 lines
1.2 KiB
JavaScript
import { chromium } from 'playwright';
|
|
|
|
const browser = await chromium.launch();
|
|
for (const w of [1600, 1440, 1366, 1280, 1180, 1024, 992, 900, 768, 640, 480, 390]) {
|
|
const page = await browser.newPage({ viewport: { width: w, height: 900 }, deviceScaleFactor: 1 });
|
|
await page.goto('http://localhost:3000/miletruth', { waitUntil: 'load', timeout: 90000 });
|
|
await page.waitForTimeout(1200);
|
|
const r = await page.evaluate(() => {
|
|
const copy = document.querySelector('#solution-miletruth-ai .sw-mt-copy');
|
|
const flow = document.querySelector('#solution-miletruth-ai .sw-mt-flow');
|
|
const labels = [...flow.querySelectorAll('.sw-mt-step-label')];
|
|
return {
|
|
copyW: Math.round(copy.getBoundingClientRect().width),
|
|
// widest single unbreakable label vs the track it was given
|
|
worst: labels.map(e => {
|
|
const track = e.parentElement.getBoundingClientRect().width;
|
|
return { txt: e.textContent, need: Math.round(e.scrollWidth), track: Math.round(track) };
|
|
}).filter(x => x.need > x.track + 1),
|
|
};
|
|
});
|
|
console.log(`${String(w).padStart(4)} copy=${String(r.copyW).padStart(3)} overflow=${r.worst.length ? JSON.stringify(r.worst) : 'none'}`);
|
|
await page.close();
|
|
}
|
|
await browser.close();
|