import { expect } from "@playwright/test"; type HarnessEvent = { name: string; detail: unknown; timestamp: number; }; type ResilienceStatus = { connectionState?: string; websocketState?: string; totalBufferedAudioBytes?: number; [key: string]: unknown; }; export const getEventNames = (events: HarnessEvent[]) => events.map((event) => event.name); export const expectEvent = (events: HarnessEvent[], eventName: string) => { expect(getEventNames(events)).toContain(eventName); }; export const expectNoEvent = (events: HarnessEvent[], eventName: string) => { expect(getEventNames(events)).not.toContain(eventName); }; export const expectBufferedAudioAtLeastOnce = (statuses: ResilienceStatus[]) => { expect( statuses.some((status) => (status.totalBufferedAudioBytes || 0) > 0) ).toBeTruthy(); }; export const expectStatusTransition = ( statuses: ResilienceStatus[], state: string ) => { expect(statuses.some((status) => status.connectionState === state)).toBeTruthy(); };