import fs from 'node:fs/promises'; import {chromium} from '@playwright/test'; import {bootMenuFixture,exerciseMenuNavigation} from './mobile-menu-scenario.mjs'; const base=new URL(process.env.TIMEWEB_BASE_URL||'https://app.caterium.ru'); if(base.protocol!=='https:')throw new Error('Production UI verification requires HTTPS'); const output='production-ui-results';await fs.mkdir(output,{recursive:true}); const browser=await chromium.launch(),results=[]; try{ for(const width of [390,1440]){ const context=await browser.newContext({viewport:{width,height:900},serviceWorkers:'block'}); try{ const page=await context.newPage(); await bootMenuFixture(page,base.href); const result=await exerciseMenuNavigation(page,{screenshot:async name=>{await page.screenshot({path:`${output}/${name}-${width}.png`,animations:'disabled'});}}); results.push({width,...result});console.log(`PASS published menu ${width}px: form placement, arrow, unsaved values, save, unchanged orders`); }finally{await context.close();} } await fs.writeFile(`${output}/mobile-menu-result.json`,JSON.stringify({base:base.href,checkedAt:new Date().toISOString(),backend:'synthetic, network-blocked',results},null,2)); }finally{await browser.close();}