前端 bootstrap 用例补齐:在跑的那一轮与在队条目同时还原
- `directThreadChat.test.ts` 队列投影分组里新增一条:bootstrap 同时带 `turn.started` 锚点与两条 `queue.enqueued` - 断言 `turnRunning` / `turnUserItemId` / `pendingTurns` 三者同时正确,而不是各测一半 - 只加用例,不改实现
This commit is contained in:
@@ -410,6 +410,32 @@ describe('DirectProject 聊天 reducer', () => {
|
||||
[{ type: 'input_text', text: '第二条' }],
|
||||
]);
|
||||
});
|
||||
|
||||
it('bootstrap 同时交出在跑的那一轮与在队的那几条:顺序就是事件顺序', () => {
|
||||
// 中途加入(另一个窗口、离开工作台再回来)拿到的是一份**合并快照**:锚点让"这一轮还在跑"
|
||||
// 成立,后面的在队条目让队列不丢。只有其中一个都算把界面还原成了错的样子。
|
||||
const bootstrap = resolveDirectThreadBootstrap(
|
||||
emptyDirectThreadChatState(),
|
||||
{
|
||||
subscriptionId: 'sub-1',
|
||||
lastCompletedItemId: null,
|
||||
events: [
|
||||
withUserItemId(
|
||||
event({ type: 'turn.started', at: 1_500 }),
|
||||
'direct-codex:client-0:user',
|
||||
),
|
||||
enqueued('client-1', '第一条'),
|
||||
enqueued('client-2', '第二条'),
|
||||
],
|
||||
} as never,
|
||||
);
|
||||
expect(bootstrap.turnRunning).toBe(true);
|
||||
expect(bootstrap.turnUserItemId).toBe('direct-codex:client-0:user');
|
||||
expect(bootstrap.pendingTurns.map((turn) => turn.clientTurnId)).toEqual([
|
||||
'client-1',
|
||||
'client-2',
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('失败终态(turn.completed 带 failure 载荷)', () => {
|
||||
|
||||
Reference in New Issue
Block a user