import { OccupancyEvent } from '@ably/chat'; export function waitForExpectedInbandOccupancy( occupancyEvents: OccupancyEvent[], expectedOccupancy: OccupancyEvent, timeoutMs: number, ): Promise { return new Promise((resolve) => { const interval = setInterval(() => { const occupancy = occupancyEvents.find( (occupancy) => occupancy.connections === expectedOccupancy.connections && occupancy.presenceMembers === expectedOccupancy.presenceMembers, ); if (occupancy) { clearInterval(interval); resolve(); } }, 1000); setTimeout(() => { clearInterval(interval); resolve(); }, timeoutMs); }); }