Files
feedBack/tests/browser/audio-session-compat.spec.ts
T
2026-06-16 18:47:13 +02:00

38 lines
1.5 KiB
TypeScript

import { test, expect } from '@playwright/test';
test('legacy audio fader and analyser bridges stay visible in browser diagnostics', async ({ page }) => {
await page.goto('/');
await page.waitForSelector('.screen.active', { timeout: 10000 });
const result = await page.evaluate(() => {
const appWindow = window as any;
let faderValue = 1;
appWindow.slopsmith.audio.registerFader({
id: 'browser-smoke',
label: 'Browser Smoke',
min: 0,
max: 1,
step: 0.1,
defaultValue: 1,
getValue: () => faderValue,
setValue: (value: number) => { faderValue = value; },
});
appWindow.slopsmith.audioSession.recordBridgeHit({
domain: 'audio-mix',
bridgeId: 'audio-mix.analyser',
legacySurface: 'browser smoke analyser',
participantId: 'highway_3d',
});
const snapshot = appWindow.slopsmith.audioSession.snapshot();
const diagnostics = appWindow.slopsmith.capabilities.snapshotDiagnostics();
return {
hasFader: snapshot.domains['audio-mix'].participants.some((entry: any) => entry.participantId === 'fader.browser-smoke'),
hasAnalyserBridge: snapshot.domains['audio-mix'].bridges.some((entry: any) => entry.bridgeId === 'audio-mix.analyser'),
shimHit: diagnostics.compatibilityShims.some((entry: any) => entry.shimId === 'audio-mix.analyser' && entry.hitCount >= 1),
};
});
expect(result.hasFader).toBe(true);
expect(result.hasAnalyserBridge).toBe(true);
expect(result.shimHit).toBe(true);
});