test(opencode): defer provider timeout stalls

This commit is contained in:
Dax Raad 2026-05-29 23:22:48 -04:00
parent 65596c85ea
commit 654cbc1502

View file

@ -31,7 +31,7 @@ it.live("headerTimeout does not abort delayed SSE body after headers arrive", ()
provideTmpdirServer(
({ llm }) =>
Effect.gen(function* () {
yield* llm.push(reply().wait(Bun.sleep(250)).text("late").stop())
yield* llm.push(reply().wait(deferredSleep(250)).text("late").stop())
const provider = yield* Provider.Service
const model = yield* provider.getModel(ProviderID.make("test"), ModelID.make("test-model"))
@ -63,7 +63,7 @@ it.live("chunkTimeout raises a response stream error when SSE body stalls", () =
provideTmpdirServer(
({ llm }) =>
Effect.gen(function* () {
yield* llm.push(reply().wait(Bun.sleep(250)).text("late").stop())
yield* llm.push(reply().wait(deferredSleep(250)).text("late").stop())
const provider = yield* Provider.Service
const model = yield* provider.getModel(ProviderID.make("test"), ModelID.make("test-model"))
@ -192,6 +192,12 @@ function providerConfig(url: string, options: Record<string, unknown> = {}) {
}
}
function deferredSleep(ms: number): PromiseLike<void> {
return {
then: (resolve, reject) => Bun.sleep(ms).then(resolve, reject),
}
}
async function delayedHeaderServer(delay: number): Promise<{ server: Server; url: string }> {
const server = createServer((_, res) => {
setTimeout(() => {