Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
41 lines
1.9 KiB
JavaScript
41 lines
1.9 KiB
JavaScript
// Verifica visiva mirata: node tests/veicoli.browser.mjs
|
|
// Usa lo stesso Chromium/SwiftShader di browser.mjs, senza titolo e audio.
|
|
import { chromium } from 'playwright';
|
|
import { mkdirSync } from 'node:fs';
|
|
import assert from 'node:assert/strict';
|
|
import { staticServer } from './helpers.mjs';
|
|
import { ARGS } from './chromium.mjs';
|
|
|
|
const out = process.env.OUT ?? '/tmp/regolo-shots';
|
|
mkdirSync(out, { recursive: true });
|
|
const server = await staticServer();
|
|
let browser;
|
|
try {
|
|
browser = await chromium.launch({ args: ARGS });
|
|
const page = await browser.newPage({ viewport: { width: 1280, height: 720 } });
|
|
const errors = [];
|
|
page.on('pageerror', e => errors.push(e.message));
|
|
page.on('response', r => { if (r.status() >= 400) errors.push(`${r.status()} ${r.url()}`); });
|
|
await page.route('**/__veicoli', route => route.fulfill({ contentType: 'text/html', body:
|
|
'<style>body{margin:0}canvas{display:block;width:1280px;height:720px;image-rendering:pixelated}</style><canvas width="640" height="360"></canvas>' }));
|
|
await page.goto(`http://127.0.0.1:${server.port}/__veicoli`);
|
|
await page.evaluate(async () => {
|
|
const [{ story }, { Game }, renderer] = await Promise.all([
|
|
import('/src/story/story.js'), import('/src/engine/game.js'), import('/src/engine/render.js'),
|
|
]);
|
|
const loaded = await renderer.loadAssets(story, 'campomigliaio_circolo');
|
|
if (loaded.some(ok => !ok)) throw new Error('Uno sfondo/personaggio non è arrivato');
|
|
const game = new Game(story);
|
|
game.go('campomigliaio_circolo');
|
|
game.time = 8;
|
|
const ctx = document.querySelector('canvas').getContext('2d');
|
|
renderer.render(ctx, game, { time: 8000 });
|
|
});
|
|
assert.deepEqual(errors, []);
|
|
await page.screenshot({ path: `${out}/campomigliaio-veicoli.png` });
|
|
console.log(`Schermata: ${out}/campomigliaio-veicoli.png`);
|
|
} finally {
|
|
await browser?.close();
|
|
server.kill();
|
|
}
|