Files
OmniRoute/tests/helpers/fakeUpstreamStream.ts
Diego Rodrigues de Sa e Souza 931afe3482 Fase 8 · Bloco B — suíte de correção (property + golden + SSE-correctness) (#3808)
Integrated into release/v3.8.25 — Fase 8 Bloco B (property + golden + SSE-correctness).
2026-06-14 18:02:51 -03:00

29 lines
799 B
TypeScript

/**
* Controllable fake upstream ReadableStream for integration tests.
* Allows pushing chunks, closing, erroring, and observing cancel.
*/
export function fakeUpstreamStream() {
let controllerRef: ReadableStreamDefaultController<Uint8Array> | null = null;
let cancelCb: ((reason?: unknown) => void) | null = null;
const enc = new TextEncoder();
const stream = new ReadableStream<Uint8Array>({
start(controller) {
controllerRef = controller;
},
cancel(reason) {
cancelCb?.(reason);
},
});
return {
stream,
push: (s: string) => controllerRef?.enqueue(enc.encode(s)),
close: () => controllerRef?.close(),
error: (e: unknown) => controllerRef?.error(e),
onCancel: (cb: (reason?: unknown) => void) => {
cancelCb = cb;
},
};
}