選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 
 

30 行
1.6 KiB

  1. import { chromium } from '@playwright/test';
  2. import { pathToFileURL } from 'node:url';
  3. import assert from 'node:assert/strict';
  4. import path from 'node:path';
  5. import { report, work } from './scene-editor-closure-live.mjs';
  6. const browser = await chromium.launch({ channel:'msedge', headless:true });
  7. try {
  8. const page = await browser.newPage({ viewport:{width:1600,height:1000} });
  9. const errors=[];
  10. page.on('pageerror', error => errors.push(error.message));
  11. await page.goto(pathToFileURL(path.join(report,'index.html')).href);
  12. assert.equal(await page.locator('.matrix tbody tr').count(),119);
  13. await page.screenshot({path:path.join(work,'report-overview.png')});
  14. await page.locator('#search').fill('模型');
  15. assert.ok(await page.locator('.matrix tbody tr:not(.hidden)').count()>0);
  16. await page.locator('#search').fill('');
  17. await page.locator('#state').selectOption('PENDING');
  18. assert.equal(await page.locator('.matrix tbody tr:not(.hidden)').count(),0);
  19. await page.locator('#state').selectOption('all');
  20. await page.locator('a.shot').filter({has:page.locator('img[src*="42-fox"]')}).click();
  21. await page.locator('#viewer').waitFor({state:'visible'});
  22. await page.waitForFunction(() => {
  23. const img=document.querySelector('#viewer img');return img.complete && img.naturalWidth>0;
  24. });
  25. await page.screenshot({path:path.join(work,'report-image-viewer.png')});
  26. await page.locator('#close').click();
  27. assert.equal(errors.length,0);
  28. console.log(JSON.stringify({reportUi:'PASS',features:119,filter:true,viewer:true,pageErrors:0}));
  29. } finally {await browser.close();}