Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 
 

21 рядки
1.5 KiB

  1. import fs from 'node:fs';
  2. import assert from 'node:assert/strict';
  3. import {chromium,expect} from '@playwright/test';
  4. import {login} from './role-permissions-live.mjs';
  5. 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=[];
  6. 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);
  7. try{
  8. for(const [label,origin]of [['local','http://127.0.0.1:6180'],['lan','http://192.168.31.168:6180']]){
  9. await page.goto(origin+'/teaching/virtual-training');
  10. for(const [code,file]of [['006','bridge-pump-substitute-v4.jpg'],['007','bridge-pump-replace-v4.jpg'],['008','bridge-balance-valve-swap-v4.jpg']]){
  11. const card=page.getByTestId('teaching-assignment-TASK-VIRTUAL-'+code),img=card.locator('figure img');
  12. await expect(img).toHaveAttribute('src','/models/bridge-training/'+file,{timeout:30000});
  13. await expect.poll(()=>img.evaluate(i=>i.complete&&i.naturalWidth>0)).toBe(true);
  14. checks.push({label,code,file,pass:true});
  15. }
  16. await page.screenshot({path:dir+'/list-'+label+'.png',fullPage:true});
  17. assert.ok(await page.evaluate(()=>document.documentElement.scrollWidth<=innerWidth));
  18. }
  19. fs.writeFileSync(dir+'/list.json',JSON.stringify({pass:true,checks},null,2));console.log('PASS',checks.length);
  20. }finally{await browser.close();}