test(llm-mock-server): poll for the client-closed outcome
The fixed 5ms sleep raced slow CI runners (the server observes the socket close asynchronously); vi.waitFor polls until the outcome lands.
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
import { request } from 'node:http'
|
import { request } from 'node:http'
|
||||||
import { afterEach, describe, expect, it } from 'vitest'
|
import { afterEach, describe, expect, it, vi } from 'vitest'
|
||||||
import type { MockLlmBehavior, MockLlmServer, MockLlmServerEvent } from '../src/index.ts'
|
import type { MockLlmBehavior, MockLlmServer, MockLlmServerEvent } from '../src/index.ts'
|
||||||
import { startMockLlmServer } from '../src/index.ts'
|
import { startMockLlmServer } from '../src/index.ts'
|
||||||
|
|
||||||
@@ -179,9 +179,11 @@ describe('mock LLM server wire behaviors', () => {
|
|||||||
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) })
|
// The server observes the socket close asynchronously; a fixed sleep
|
||||||
|
// raced slow runners, so poll until the outcome lands.
|
||||||
expect(server.requests[0]).toMatchObject({ behavior, outcome: 'client_closed' })
|
await vi.waitFor(() => {
|
||||||
|
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([
|
||||||
expect.objectContaining({ behavior, outcome: 'client_closed' }),
|
expect.objectContaining({ behavior, outcome: 'client_closed' }),
|
||||||
])
|
])
|
||||||
|
|||||||
Reference in New Issue
Block a user