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