@@ -4,43 +4,40 @@ import { openAgentChatPage, openAgentProviderPage, openOptionsPage } from "./uti
44test . describe ( "Agent Navigation" , ( ) => {
55 test ( "should navigate to agent chat page via sidebar" , async ( { context, extensionId } ) => {
66 const page = await openOptionsPage ( context , extensionId ) ;
7- await page . waitForTimeout ( 1000 ) ;
87
98 // Agent SubMenu title 的 onClick 直接导航到 /agent/chat
109 // Sider.tsx 中 SubMenu title 的 span onClick 设置 hash
1110 const agentMenuTitle = page . locator ( ".arco-menu-inline-header span" , { hasText : / a g e n t / i } ) . first ( ) ;
11+ await expect ( agentMenuTitle ) . toBeVisible ( { timeout : 10_000 } ) ;
1212 await agentMenuTitle . click ( ) ;
13- await page . waitForTimeout ( 1000 ) ;
1413
1514 // 验证 URL hash 包含 /agent
16- expect ( page . url ( ) ) . toContain ( "# /agent" ) ;
15+ await expect ( page ) . toHaveURL ( / # \ /a g e n t / ) ;
1716 await page . close ( ) ;
1817 } ) ;
1918
2019 test ( "should navigate to agent sub-pages via sidebar" , async ( { context, extensionId } ) => {
2120 const page = await openOptionsPage ( context , extensionId ) ;
22- await page . waitForTimeout ( 1000 ) ;
2321
2422 // 先展开 Agent 子菜单
2523 const agentMenuHeader = page . locator ( ".arco-menu-inline-header" ) . filter ( { hasText : / a g e n t / i } ) . first ( ) ;
24+ await expect ( agentMenuHeader ) . toBeVisible ( { timeout : 10_000 } ) ;
2625 await agentMenuHeader . click ( ) ;
27- await page . waitForTimeout ( 500 ) ;
2826
2927 // 展开后点击 Provider 子菜单项(使用 key 属性匹配)
3028 const providerItem = page
3129 . locator ( '[class*="arco-menu-item"]' )
3230 . filter ( { hasText : / m o d e l s e r v i c e | p r o v i d e r | 模 型 / i } )
3331 . first ( ) ;
32+ await expect ( providerItem ) . toBeVisible ( { timeout : 10_000 } ) ;
3433 await providerItem . click ( ) ;
35- await page . waitForTimeout ( 1000 ) ;
3634
37- expect ( page . url ( ) ) . toContain ( "# /agent/provider" ) ;
35+ await expect ( page ) . toHaveURL ( / # \ /a g e n t \ /p r o v i d e r / ) ;
3836 await page . close ( ) ;
3937 } ) ;
4038
4139 test ( "should load agent chat page directly" , async ( { context, extensionId } ) => {
4240 const page = await openAgentChatPage ( context , extensionId ) ;
43- await page . waitForTimeout ( 2000 ) ;
4441
4542 // 聊天页面应包含新建会话按钮
4643 const newChatBtn = page . locator ( "button" , { hasText : / n e w | 新 建 / i } ) . first ( ) ;
@@ -50,7 +47,6 @@ test.describe("Agent Navigation", () => {
5047
5148 test ( "should load agent provider page directly" , async ( { context, extensionId } ) => {
5249 const page = await openAgentProviderPage ( context , extensionId ) ;
53- await page . waitForTimeout ( 2000 ) ;
5450
5551 // Provider 页面应包含添加模型按钮
5652 const addBtn = page . locator ( "button" , { hasText : / a d d | 添 加 / i } ) . first ( ) ;
@@ -60,7 +56,6 @@ test.describe("Agent Navigation", () => {
6056
6157 test ( "should show empty state on provider page when no models configured" , async ( { context, extensionId } ) => {
6258 const page = await openAgentProviderPage ( context , extensionId ) ;
63- await page . waitForTimeout ( 2000 ) ;
6459
6560 // 没有配置模型时应显示空状态
6661 const emptyState = page . locator ( ".arco-empty" ) ;
0 commit comments