You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

19 rivejä
1.5 KiB

  1. import fs from 'node:fs';
  2. import {chromium} from '@playwright/test';
  3. import {login,call} from './role-permissions-live.mjs';
  4. const session=await login('root');
  5. const report='reports/virtual-html-workspace-20260912';fs.mkdirSync(report,{recursive:true});
  6. const tasks=await call('tran/v1/teaching/assignments?channel=VIRTUAL&assignmentKind=TRAINING&page=1&size=100',session.accessToken);
  7. console.log(JSON.stringify(tasks.data.records.map(t=>({id:t.id,name:t.name,status:t.status})),null,2));
  8. const browser=await chromium.launch({channel:'msedge',headless:true,args:['--enable-unsafe-swiftshader']});
  9. const context=await browser.newContext({viewport:{width:1920,height:1080}});
  10. await context.addInitScript(s=>{sessionStorage.setItem('unreal-tran:web:access-token:v1',s.accessToken);sessionStorage.setItem('unreal-tran:web:refresh-token:v1',s.refreshToken)},session);
  11. const page=await context.newPage(),errors=[];page.on('pageerror',e=>errors.push(e.message));
  12. await page.goto('http://127.0.0.1:6180/teaching/virtual-training/preview/'+(process.argv[2]||'55'));
  13. await page.locator('.training-shell').waitFor({timeout:120000}).catch(error=>console.log('WAIT',error.message));
  14. await page.waitForTimeout(10000);
  15. console.log('DIAGNOSTICS',JSON.stringify(await page.evaluate(()=>globalThis.__trainingSceneDiagnostics?.())));
  16. console.log('PAGE', (await page.locator('body').innerText()).slice(-5000));console.log('ERRORS',errors);
  17. await page.screenshot({path:report+'/initial.png',fullPage:true});
  18. await browser.close();