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:
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([
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user