test(llm-mock-server): await disconnect outcome
This commit is contained in:
@@ -169,17 +169,21 @@ describe('mock LLM server wire behaviors', () => {
|
|||||||
['partial_disconnect', 100] as const,
|
['partial_disconnect', 100] as const,
|
||||||
])('records a client that closes during %s', async (behavior, delayMs) => {
|
])('records a client that closes during %s', async (behavior, delayMs) => {
|
||||||
const events: MockLlmServerEvent[] = []
|
const events: MockLlmServerEvent[] = []
|
||||||
|
const result = Promise.withResolvers<Extract<MockLlmServerEvent, { type: 'result' }>>()
|
||||||
const server = await start([behavior], {
|
const server = await start([behavior], {
|
||||||
chunkDelayMs: delayMs,
|
chunkDelayMs: delayMs,
|
||||||
disconnectDelayMs: delayMs,
|
disconnectDelayMs: delayMs,
|
||||||
chunkSize: 1,
|
chunkSize: 1,
|
||||||
onEvent: (event) => { events.push(event) },
|
onEvent: (event) => {
|
||||||
|
events.push(event)
|
||||||
|
if (event.type === 'result') result.resolve(event)
|
||||||
|
},
|
||||||
})
|
})
|
||||||
const controller = new AbortController()
|
const controller = new AbortController()
|
||||||
const response = await chat(server, { signal: controller.signal })
|
const response = await chat(server, { signal: controller.signal })
|
||||||
controller.abort()
|
controller.abort()
|
||||||
await expect(response.text()).rejects.toThrow()
|
await expect(response.text()).rejects.toThrow()
|
||||||
await new Promise((resolve) => { setTimeout(resolve, 5) })
|
await result.promise
|
||||||
|
|
||||||
expect(server.requests[0]).toMatchObject({ behavior, outcome: 'client_closed' })
|
expect(server.requests[0]).toMatchObject({ behavior, outcome: 'client_closed' })
|
||||||
expect(events.filter(event => event.type === 'result')).toEqual([
|
expect(events.filter(event => event.type === 'result')).toEqual([
|
||||||
|
|||||||
Reference in New Issue
Block a user