fix chat queue promotion (#1042)

This commit is contained in:
ekko
2026-05-26 17:39:38 +08:00
committed by GitHub
parent b0000b4c38
commit e926a8e2fb
2 changed files with 99 additions and 28 deletions
+40 -1
View File
@@ -142,6 +142,22 @@ test('keeps queued runs on one socket and does not duplicate streamed handlers',
expect(second.runCount).toBe(2)
expect(second.run.session_id).toBe(first.run.session_id)
expect(second.run.input).toBe('Second queued contract')
await expect(page.locator('p').filter({ hasText: /^Second queued contract$/ })).toHaveCount(0)
await page.evaluate(({ sid, queueId }) => {
const socket = (window as any).__PW_CHAT_SOCKET__.latest
socket.__trigger('run.peer_user_message', {
event: 'run.peer_user_message',
session_id: sid,
message: {
id: queueId,
role: 'user',
content: 'Second queued contract',
timestamp: Date.now() / 1000,
},
})
}, { sid: first.run.session_id, queueId: second.run.queue_id })
await expect(page.locator('p').filter({ hasText: /^Second queued contract$/ })).toHaveCount(0)
await page.evaluate((sid) => {
const socket = (window as any).__PW_CHAT_SOCKET__.latest
@@ -152,6 +168,29 @@ test('keeps queued runs on one socket and does not duplicate streamed handlers',
output: 'First answer',
queue_remaining: 1,
})
}, first.run.session_id)
await expect(page.locator('p').filter({ hasText: /^Second queued contract$/ })).toHaveCount(0)
await page.evaluate(({ sid, queueId }) => {
const socket = (window as any).__PW_CHAT_SOCKET__.latest
socket.__trigger('run.queued', {
event: 'run.queued',
session_id: sid,
queue_length: 0,
dequeued_queue_id: queueId,
queued_messages: [],
})
socket.__trigger('run.peer_user_message', {
event: 'run.peer_user_message',
session_id: sid,
message: {
id: queueId,
role: 'user',
content: 'Second queued contract',
timestamp: Date.now() / 1000,
},
})
socket.__trigger('run.started', { event: 'run.started', session_id: sid, run_id: 'run-2', queue_length: 0 })
socket.__trigger('message.delta', { event: 'message.delta', session_id: sid, run_id: 'run-2', delta: 'Second answer' })
socket.__trigger('run.completed', {
@@ -161,7 +200,7 @@ test('keeps queued runs on one socket and does not duplicate streamed handlers',
output: 'Second answer',
queue_remaining: 0,
})
}, first.run.session_id)
}, { sid: first.run.session_id, queueId: second.run.queue_id })
await expect(page.locator('p').filter({ hasText: /^First answer$/ })).toHaveCount(1)
await expect(page.locator('p').filter({ hasText: /^Second queued contract$/ })).toHaveCount(1)