test(gui): keyless assembled todo-display pass in the fixture smoke

Eight real bundles through the DI chain in ?fixture mode: plan strip
content, dedicated row summary + details linkage, collapse hint, zero page
errors — the CI-gated assembled-surface coverage for the todo display.
This commit is contained in:
Chinesezjc
2026-07-23 15:56:28 +08:00
parent f2a9c09429
commit 3b1ad3ee6c

View File

@@ -285,6 +285,28 @@ describe('web boot chain success pass (keyless, nine real bundles, ?fixture)', (
expect(await restoredInput.getAttribute('placeholder')).toBe('回复生成中,可停止后再输入')
})
it('renders the todo plan strip and the dedicated todo_write row off the session events', async () => {
onTestFailed(() => saveFailureShot(page, 'smoke-todo-display'))
// The question pass above already opened the fixture session; the strip
// reads the todo/write snapshot (tail-page projection + window replay).
const panel = page.locator('[data-testid="todo-panel"]')
await panel.waitFor({ timeout: 15_000 })
const text = await panel.innerText()
for (const expected of ['Plan', '1/3', '梳理需求', '实现 fixture 样本', '浏览器验收']) {
expect(text).toContain(expected)
}
// The dedicated row renders through the keyed toolview hole with the plan summary.
const row = page.locator('[data-sample="todo-row"]')
await row.scrollIntoViewIfNeeded()
expect(await row.innerText()).toContain('1/3 已完成')
// Collapse hides the list and surfaces the active item as the header hint.
await panel.locator('button').first().click()
const collapsed = await panel.innerText()
expect(collapsed).not.toContain('梳理需求')
expect(collapsed).toContain('实现 fixture 样本')
await panel.locator('button').first().click() // restore for later passes
})
it('stayed clean: no page errors across the whole load chain', () => {
expect(pageErrors).toEqual([])
})