|
- import fs from 'node:fs';
- import assert from 'node:assert/strict';
- import {chromium,expect} from '@playwright/test';
- import {login} from './role-permissions-live.mjs';
- const dir='reports/bridge-new-models-006-008-20260917',signed=await login('root'),browser=await chromium.launch({channel:'msedge',headless:true}),page=await browser.newPage({viewport:{width:1440,height:1000}}),checks=[];
- await page.addInitScript(s=>{sessionStorage.setItem('unreal-tran:web:access-token:v1',s.accessToken);sessionStorage.setItem('unreal-tran:web:refresh-token:v1',s.refreshToken);},signed);
- try{
- for(const [label,origin]of [['local','http://127.0.0.1:6180'],['lan','http://192.168.31.168:6180']]){
- await page.goto(origin+'/teaching/virtual-training');
- for(const [code,file]of [['006','bridge-pump-substitute-v4.jpg'],['007','bridge-pump-replace-v4.jpg'],['008','bridge-balance-valve-swap-v4.jpg']]){
- const card=page.getByTestId('teaching-assignment-TASK-VIRTUAL-'+code),img=card.locator('figure img');
- await expect(img).toHaveAttribute('src','/models/bridge-training/'+file,{timeout:30000});
- await expect.poll(()=>img.evaluate(i=>i.complete&&i.naturalWidth>0)).toBe(true);
- checks.push({label,code,file,pass:true});
- }
- await page.screenshot({path:dir+'/list-'+label+'.png',fullPage:true});
- assert.ok(await page.evaluate(()=>document.documentElement.scrollWidth<=innerWidth));
- }
- fs.writeFileSync(dir+'/list.json',JSON.stringify({pass:true,checks},null,2));console.log('PASS',checks.length);
- }finally{await browser.close();}
|