test(web): align browser scenarios with detailed work defaults

This commit is contained in:
imccyu committed 2026-09-27 11:51:50 +08:00
1 parent 47db27a730
commit 79fce08d25
6 files changed
+16 -6

No files matched your search

+10 -2
View File
@@ -23,7 +23,7 @@ import {
webSnapshotMode,
type WebScaffold,
} from './scaffold.ts'
import { expandOwningTurnProcess, newEnglishPage, saveFailureShot } from './support.ts'
import { expandOwningTurnProcess, newEnglishPage, openSettings, saveFailureShot } from './support.ts'
const MODE = webSnapshotMode()
const HISTORY_SESSION_ID = 'chat-scroll-history-e2e'
@@ -677,7 +677,7 @@ describe('web e2e: long Chat scroll contract', () => {
})
}, 180_000)
it.skipIf(MODE === 'record')('follows a growing process group independently of the outer transcript', async () => {
it.skipIf(MODE === 'record')('follows a growing Standard-mode process group independently of the outer transcript', async () => {
const parts = [
'GROUP_SCROLL_START\n\n',
...Array.from({ length: 4 }, (_, batch) => Array.from({ length: 20 }, (_, row) =>
@@ -701,6 +701,14 @@ describe('web e2e: long Chat scroll contract', () => {
}, async (world) => {
await world.page.emulateMedia({ reducedMotion: 'no-preference' })
await openSeed(world.page, HISTORY_FIXTURE, HISTORY_FIXTURE.markers.assistant(HISTORY_FIXTURE.turns))
await openSettings(world.page, 'en')
await world.page.getByRole('dialog', { name: 'Settings', exact: true })
.getByText('Work details', { exact: true }).locator('../..')
.getByRole('button', { name: 'Detailed', exact: true }).click()
await world.page.getByRole('menuitem', { name: 'Standard', exact: true }).click()
await expect.poll(() => world.scaffold.ctx.settings.describe().find(row => row.ns === 'ui-chat')?.value)
.toMatchObject({ transcriptView: 'standard' })
await world.page.keyboard.press('Escape')
const gates = parts.slice(1).map(() => Promise.withResolvers<undefined>())
const dispose = world.scaffold.ctx.on('llm/stream', async function* (_options, next) {
let index = -1
+1
View File
@@ -33,6 +33,7 @@ describe.skipIf(MODE === 'record')('web e2e: native and Client locale preference
})
await page.exposeFunction('nativeLocaleChanged', (locale: string) => { reported.push(locale) })
await page.addInitScript(() => {
Object.defineProperty(globalThis, 'dshDesktop', { value: { protocolVersion: 1 } })
const bridge = globalThis as typeof globalThis & {
nativeLocaleRead(): Promise<unknown>
nativeLocaleChanged(locale: string): Promise<void>
@@ -10,7 +10,7 @@
- button "Copy"
- status: Deep diving...
- button "Deep diving for {{duration}}" [disabled] [expanded]
- button "Analyzing the request · The user wants me to ask them a checkpoint question first, then continue with whatever they interject. Let me do exactly that."
- button "Think The user wants me to ask them a checkpoint question first, then continue with whatever they interject. Let me do exactly that."
- text: "Interjection: include the word BANANA in your final reply."
- button "Copy"
- text: "Interjection: include the word ORANGE in your final reply."
+2 -1
View File
@@ -81,7 +81,8 @@ describe('web e2e: PTC mode round renders nested sub-calls', () => {
await row.waitFor({ state: 'attached', timeout: 30_000 })
await expandOwningTurnProcess(page, row)
await row.waitFor({ state: 'visible' })
await page.getByRole('button', { name: 'Preparing to run code', exact: true }).waitFor()
await row.getByText('Code', { exact: true }).waitFor()
expect(await row.getAttribute('data-tool')).toBe('run_code')
expect(sessionEvents.some(event => event.type === 'tool/call')).toBe(false)
expect(await row.getByRole('button').count()).toBe(0)
expect(await row.locator('pre').count()).toBe(0)
@@ -1,3 +1,2 @@
- button "Preparing to run code" [expanded]
- 'button "Think The user wants me to write a single `run_code` program that:"'
- text: Preparing tool call Code
+2 -1
View File
@@ -10,7 +10,8 @@
- button "Copy"
- status: Deep diving...
- button "Deep diving for {{duration}}" [disabled]
- button "Waiting for your action · Ready to continue?"
- text: Running
- button "Ask question waiting"
- text: "Interjection: include the word BANANA in your final reply."
- button "Copy"
- region "Ready to continue?":