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.
|
// Helper to create an SDK that yields multiple events in sequence, then holds.
|
||||||
function createSdkWithEvents(events, hold) {
|
function createSdkWithEvents(events, hold) {
|
||||||
return {
|
return {
|
||||||
@@ -638,25 +646,30 @@ describe('createEventPipeline', () => {
|
|||||||
},
|
},
|
||||||
}, hold);
|
}, hold);
|
||||||
|
|
||||||
|
let cleanup;
|
||||||
const delivered = new Promise((resolve) => {
|
const delivered = new Promise((resolve) => {
|
||||||
const { cleanup } = createEventPipeline({
|
const pipeline = createEventPipeline({
|
||||||
sdk,
|
sdk,
|
||||||
transport: 'auto',
|
transport: 'auto',
|
||||||
|
wsReadyTimeoutMs: 20,
|
||||||
onEvent: (directory, payload) => {
|
onEvent: (directory, payload) => {
|
||||||
received.push({ directory, payload });
|
received.push({ directory, payload });
|
||||||
cleanup();
|
|
||||||
releaseStream();
|
|
||||||
resolve();
|
resolve();
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
cleanup = pipeline.cleanup;
|
||||||
});
|
});
|
||||||
|
|
||||||
await Promise.resolve();
|
await Promise.resolve();
|
||||||
const socket = FakeWebSocket.instances[0];
|
const socket = FakeWebSocket.instances[0];
|
||||||
socket.emitOpen();
|
socket.emitOpen();
|
||||||
|
|
||||||
await new Promise((resolve) => setTimeout(resolve, 2300));
|
try {
|
||||||
await delivered;
|
await withTimeout(delivered, 500, 'timed out waiting for websocket-ready SSE fallback');
|
||||||
|
} finally {
|
||||||
|
cleanup?.();
|
||||||
|
releaseStream();
|
||||||
|
}
|
||||||
|
|
||||||
expect(received).toEqual([
|
expect(received).toEqual([
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user