From a2a79ada82ee038ed287dd1c6ef277f70559bd53 Mon Sep 17 00:00:00 2001 From: Yichen Jiang Date: Fri, 31 Jul 2026 14:18:47 +0800 Subject: [PATCH] test(web): scope retry status assertion --- .../ui-conversation/tests/chat-view.spec.tsx | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/packages/client/ui-conversation/tests/chat-view.spec.tsx b/packages/client/ui-conversation/tests/chat-view.spec.tsx index 98d38bd185..b90a2647ab 100644 --- a/packages/client/ui-conversation/tests/chat-view.spec.tsx +++ b/packages/client/ui-conversation/tests/chat-view.spec.tsx @@ -5,7 +5,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { Profiler } from 'react' -import { act, cleanup, fireEvent, render } from '@testing-library/react' +import { act, cleanup, fireEvent, render, within } from '@testing-library/react' import type { AssistantMessageNode, CommandNode, ConversationNode, ConversationSnapshot, ModelRetryNode, RunningToolCall, SessionId, SessionListState, ToolResultNode, @@ -254,16 +254,16 @@ describe('ChatView', () => { } as const satisfies ConversationNode const h = makeHarness({ nodes: [user(1, 'try'), retryNode], running: true }) const view = render() - const disclosure = view.container.querySelector('details') - expect(disclosure?.dataset.active).toBe('true') - expect(view.getByRole('status').textContent).toBe('正在重试模型请求(1/2) · 1s') + const disclosure = view.container.querySelector('details') as HTMLDetailsElement + expect(disclosure.dataset.active).toBe('true') + expect(within(disclosure).getByRole('status').textContent).toBe('正在重试模型请求(1/2) · 1s') act(() => { h.set({ nodes: [user(1, 'try'), retryNode, nextRetry] }) }) - expect(view.getAllByRole('status')).toHaveLength(1) + expect(within(disclosure).getAllByRole('status')).toHaveLength(1) expect(view.container.querySelector('details')).toBe(disclosure) - expect(view.getByRole('status').textContent).toBe('正在重试模型请求(2/2) · 1s') + expect(within(disclosure).getByRole('status').textContent).toBe('正在重试模型请求(2/2) · 1s') act(() => { h.set({ @@ -277,14 +277,15 @@ describe('ChatView', () => { running: false, }) }) - expect(disclosure?.dataset.active).toBeUndefined() - expect(view.getByRole('status').textContent).toBe('已重试模型请求(2/2) · 1s') + expect(disclosure.dataset.active).toBeUndefined() + expect(within(disclosure).getByRole('status').textContent).toBe('已重试模型请求(2/2) · 1s') act(() => { h.set({ nodes: [user(1, 'try'), { ...retry(6), retryState: 'cancelled' }], running: true }) }) - expect(disclosure?.dataset.active).toBeUndefined() - expect(view.getByRole('status').textContent).toContain('重试已取消') + const cancelledDisclosure = view.container.querySelector('details') as HTMLDetailsElement + expect(cancelledDisclosure.dataset.active).toBeUndefined() + expect(within(cancelledDisclosure).getByRole('status').textContent).toContain('重试已取消') }) it('the expanded row Inspect pill hands the call id to inspectCall', () => {