Просмотр исходного кода

test(llm-mock-server): await disconnect outcome

Tianyi Cui 1 месяц назад
Родитель
Сommit
5e4026d768
1 измененных файлов с 6 добавлено и 2 удалено
  1. 6 2
      packages/support/llm-mock-server/tests/server.spec.ts

+ 6 - 2
packages/support/llm-mock-server/tests/server.spec.ts

@@ -169,17 +169,21 @@ describe('mock LLM server wire behaviors', () => {
     ['partial_disconnect', 100] as const,
   ])('records a client that closes during %s', async (behavior, delayMs) => {
     const events: MockLlmServerEvent[] = []
+    const result = Promise.withResolvers<Extract<MockLlmServerEvent, { type: 'result' }>>()
     const server = await start([behavior], {
       chunkDelayMs: delayMs,
       disconnectDelayMs: delayMs,
       chunkSize: 1,
-      onEvent: (event) => { events.push(event) },
+      onEvent: (event) => {
+        events.push(event)
+        if (event.type === 'result') result.resolve(event)
+      },
     })
     const controller = new AbortController()
     const response = await chat(server, { signal: controller.signal })
     controller.abort()
     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(events.filter(event => event.type === 'result')).toEqual([