diff --git a/cloud/apps/relay/src/relay.blackbox.test.ts b/cloud/apps/relay/src/relay.blackbox.test.ts index 92e667a8457..a10292b3cf2 100644 --- a/cloud/apps/relay/src/relay.blackbox.test.ts +++ b/cloud/apps/relay/src/relay.blackbox.test.ts @@ -974,15 +974,12 @@ describe('served relay URL', () => { credential: resumeToken }) const originalExpiry = first.hello.resumeExpiresAt - const firstPhoneClosed = new Promise((resolveClose) => - first.phone.once('close', () => resolveClose()) - ) - const firstDataClosed = new Promise((resolveClose) => - first.data.once('close', () => resolveClose()) + // Only the relay's close of the data leg proves it saw the phone leave; a client-side close can race the confirm. + const firstDataClosed = new Promise((resolveClose) => + first.data.once('close', (code) => resolveClose(code)) ) first.phone.close() - first.data.close() - await Promise.all([firstPhoneClosed, firstDataClosed]) + expect(await firstDataClosed).toBe(4408) const closedBasis = nextMessage(host.socket) host.socket.send( JSON.stringify({