test(sync): shorten websocket fallback test (#1211)

* test(sync): shorten websocket fallback test

* test(sync): avoid duplicate fallback cleanup

---------

Co-authored-by: Isaac Sanchez <isanchez-hawkins@arize.com>
This commit is contained in:
Isaac Sanchez-Hawkins
2026-05-12 10:57:27 +03:00
committed by GitHub
co-authored by Isaac Sanchez
parent 614e9bbfbf
commit eb5b1de9b7
@@ -74,6 +74,14 @@ function createSdkWithSingleEvent(event, hold) {
};
}
function withTimeout(promise, ms, message) {
let timeoutId;
const timeout = new Promise((_, reject) => {
timeoutId = setTimeout(() => reject(new Error(message)), ms);
});
return Promise.race([promise, timeout]).finally(() => clearTimeout(timeoutId));
}
// Helper to create an SDK that yields multiple events in sequence, then holds.
function createSdkWithEvents(events, hold) {
return {
@@ -638,25 +646,30 @@ describe('createEventPipeline', () => {
},
}, hold);
let cleanup;
const delivered = new Promise((resolve) => {
const { cleanup } = createEventPipeline({
const pipeline = createEventPipeline({
sdk,
transport: 'auto',
wsReadyTimeoutMs: 20,
onEvent: (directory, payload) => {
received.push({ directory, payload });
cleanup();
releaseStream();
resolve();
},
});
cleanup = pipeline.cleanup;
});
await Promise.resolve();
const socket = FakeWebSocket.instances[0];
socket.emitOpen();
await new Promise((resolve) => setTimeout(resolve, 2300));
await delivered;
try {
await withTimeout(delivered, 500, 'timed out waiting for websocket-ready SSE fallback');
} finally {
cleanup?.();
releaseStream();
}
expect(received).toEqual([
{