Verify transport geometry, playback states and themed icons across both engines

This commit is contained in:
Jonathan Sykes
2026-10-09 16:12:28 +08:00
parent 1e83951972
commit a1048f1c30
6 changed files with 6243 additions and 1 deletions

View File

@@ -4,6 +4,7 @@ import { mkdir, writeFile } from 'node:fs/promises';
import { resolve } from 'node:path';
import { chromium, webkit } from 'playwright';
import { serve, layouts, themes, contextFor, appearance } from './ui-fixture.mjs';
import {transportChecks,remoteTransportFixture} from './transport-fixture.mjs';
const args = process.argv.slice(2);
const option = (key, fallback) => args.includes(key) ? args[args.indexOf(key)+1] : fallback;
@@ -17,6 +18,7 @@ try {
try {
const context = await contextFor(browser,host.origin);
const page = await context.newPage();
const remote=await remoteTransportFixture(browser,host.origin,name);
const errors = [];
page.on('pageerror', e => errors.push(e.message));
await page.goto(host.origin);
@@ -85,9 +87,12 @@ try {
});
assert.deepEqual(states,{normal:['#media-download'],progress:['#media-progress'],done:['#media-offline']},`${name}/${layout}/${theme}: save states`);
await page.evaluate(() => document.querySelector('#listPane').classList.remove('hidden'));
results.push({browser:name,layout,theme,...measurements});
const transport=await transportChecks(page,name,layout,theme);
const remoteStates=await remote.check(layout,theme);
results.push({browser:name,layout,theme,...measurements,transport,remoteStates});
}
assert.deepEqual(errors,[],'script errors');
await remote.close();
await context.close();
} finally { await browser.close(); }
}