|
- import assert from 'node:assert/strict';
- import { expect } from '@playwright/test';
-
- export async function verifyVisualEffects(page, operation) {
- await expect.poll(async()=>page.evaluate(()=>globalThis.__trainingSceneDiagnostics().bridgeWorkshop.pending)).toBe(false);
- const targets = await page.evaluate(()=>globalThis.__trainingSceneDiagnostics().bridgeWorkshop.targets);
- for (const effect of operation.effects || []) {
- const target = targets.find(item=>item.id===effect.targetId);
- assert.ok(target, `Missing visual target ${effect.targetId}`);
- if (typeof effect.visible==='boolean') assert.equal(target.visible,effect.visible,`${effect.targetId} visibility`);
- if (effect.offset) assert.ok(target.position.every((v,i)=>Math.abs(v-target.home[i]-effect.offset[i])<0.001),`${effect.targetId} displacement`);
- if (effect.scale) assert.ok(target.scale.every((v,i)=>Math.abs(v-target.homeScale[i]*effect.scale[i])<0.001),`${effect.targetId} scale`);
- }
- }
|