7 lines
1.5 KiB
JavaScript
7 lines
1.5 KiB
JavaScript
const {chromium}=require('C:/Users/ADMIN/.cache/codex-runtimes/codex-primary-runtime/dependencies/node/node_modules/playwright');
|
|
const assert=require('node:assert/strict');
|
|
(async()=>{const browser=await chromium.launch({headless:true});const page=await browser.newPage({viewport:{width:1440,height:1000}});const errors=[];page.on('pageerror',e=>errors.push(e.message));await page.goto('http://localhost:4320/components/chart');await page.waitForFunction(()=>document.querySelectorAll('[data-chart-canvas]').length===12&&[...document.querySelectorAll('[data-chart-canvas]')].every(c=>c.style.width));await page.waitForTimeout(500);
|
|
const results=await page.evaluate(()=>[...document.querySelectorAll('[data-ui-component="Chart"]')].map(root=>{const c=root.querySelector('canvas');const pixels=c.getContext('2d').getImageData(0,0,c.width,c.height).data;return {type:JSON.parse(root.dataset.chartConfig).type,width:c.clientWidth,height:c.clientHeight,rendered:pixels.some((v,i)=>i%4===3&&v>0),status:root.querySelector('[data-chart-status]').textContent,table:root.querySelectorAll('table tr').length}}));assert.equal(results.length,12);assert(results.every(r=>r.width>0&&r.rendered&&r.status===''&&r.table>1));
|
|
await page.locator('#chart-demo-1').screenshot({path:'output/chartjs-verify/showcase-bar.png'});await page.locator('#chart-demo-8').screenshot({path:'output/chartjs-verify/showcase-scatter.png'});
|
|
assert.deepEqual(errors,[]);console.log(JSON.stringify({productionCharts:results,errors},null,2));await browser.close()})().catch(e=>{console.error(e);process.exit(1)});
|