test(cua): await toggle completion under the browser deadline

This commit is contained in:
creatixchu committed 2026-10-19 14:30:34 +08:00
1 parent 8dc477498f
commit 69f5a19ba7
1 file changed
+5 -4
+5 -4
View File
@@ -45,8 +45,9 @@ it.each([undefined, 'minimal'] as const)('adds CUA to PTC sessions while preserv
const toggle = card.getByRole('switch', { name: '启用 Computer Use', exact: true })
expect(await toggle.getAttribute('aria-checked')).toBe('false')
expect(await card.textContent()).toContain('请切换到 PTC 模式')
// Bundle transitions await native cleanup under the browser action deadline.
await toggle.click()
await expect.poll(() => toggle.getAttribute('aria-checked')).toBe('true')
await toggle.and(page.locator('[aria-checked="true"]')).waitFor({ state: 'visible' })
const setup = page.getByRole('dialog', { name: '使用 Computer Use 前需要设置', exact: true })
await setup.waitFor()
expect(await setup.getByText('Computer Use 插件已开启,但暂时无法检测系统权限。请前往插件详情页查看原因并重试。', { exact: true }).count()).toBe(1)
@@ -65,7 +66,7 @@ it.each([undefined, 'minimal'] as const)('adds CUA to PTC sessions while preserv
})
expect(scaffold.ctx.tools.schemas(fresh.agent).some(tool => tool.name === 'cua')).toBe(true)
await toggle.click()
await expect.poll(() => toggle.getAttribute('aria-checked')).toBe('false')
await toggle.and(page.locator('[aria-checked="false"]')).waitFor({ state: 'visible' })
expect(scaffold.ctx.get('computerUse')).toBeUndefined()
for (const agent of [ptcAgent, fresh.agent]) expect(scaffold.ctx.tools.schemas(agent).some(tool => tool.name === 'cua')).toBe(false)
expect(runtimeFiber() === originalRuntimeFiber).toBe(true)
@@ -74,7 +75,7 @@ it.each([undefined, 'minimal'] as const)('adds CUA to PTC sessions while preserv
await card.getByRole('button', { name: '查看 Computer Use', exact: true }).click()
const detailToggle = page.locator('[data-plugin-panel]').getByRole('switch', { name: '启用 Computer Use', exact: true })
await detailToggle.click()
await expect.poll(() => detailToggle.getAttribute('aria-checked')).toBe('true')
await detailToggle.and(page.locator('[aria-checked="true"]')).waitFor({ state: 'visible' })
const panel = page.locator('[data-cua-settings]')
await panel.waitFor()
const defaultSetting = panel.getByRole('group', { name: '新会话默认模式', exact: true })
@@ -92,7 +93,7 @@ it.each([undefined, 'minimal'] as const)('adds CUA to PTC sessions while preserv
expect(saved).toContain('selectedDefault: ptc')
expect(saved).not.toContain('executionMode:')
await detailToggle.click()
await expect.poll(() => detailToggle.getAttribute('aria-checked')).toBe('false')
await detailToggle.and(page.locator('[aria-checked="false"]')).waitFor({ state: 'visible' })
expect(await readFile(settingsPath, 'utf8')).toBe(saved)
expect(runtimeFiber() === originalRuntimeFiber).toBe(true)
expect(scaffold.ctx.ptcRuntime.programFormat).toBe('function-body')