From 3b1ad3ee6c37332f5cb7ddad21f4169220b754d3 Mon Sep 17 00:00:00 2001 From: Chinesezjc Date: Thu, 23 Jul 2026 15:56:28 +0800 Subject: [PATCH] test(gui): keyless assembled todo-display pass in the fixture smoke MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- apps/web/tests/smoke-fixture.e2e.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/apps/web/tests/smoke-fixture.e2e.ts b/apps/web/tests/smoke-fixture.e2e.ts index 0726d14c8b..3b997442f5 100644 --- a/apps/web/tests/smoke-fixture.e2e.ts +++ b/apps/web/tests/smoke-fixture.e2e.ts @@ -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([]) })