import { expect, gotoWorkbench, saveScreenshot, test } from "../fixtures/test"; import { selectors, sessionTab } from "../fixtures/selectors"; test("session rail, messages, composer and trace status stay consistent", async ({ page }, testInfo) => { await gotoWorkbench(page); await expect(page.locator(sessionTab("cnv_running"))).toHaveAttribute("data-running", "true"); await expect(page.locator(`${selectors.messageCard}[data-role="agent"][data-status="running"]`)).toBeVisible(); await expect(page.locator(selectors.commandSend)).toHaveAttribute("data-action", "cancel"); await page.locator(sessionTab("cnv_failed")).click(); await expect(page.locator(sessionTab("cnv_failed"))).toHaveAttribute("data-status", "failed"); await expect(page.locator(`${selectors.messageCard}[data-role="agent"][data-status="failed"]`)).toContainText("缺少受控依赖"); await expect(page.locator(`${selectors.traceTimeline}[data-status="failed"]`)).toBeVisible(); await page.locator(sessionTab("cnv_canceled")).click(); await expect(page.locator(sessionTab("cnv_canceled"))).toHaveAttribute("data-status", "canceled"); await expect(page.locator(`${selectors.messageCard}[data-role="agent"][data-status="canceled"]`)).toContainText("运行已取消"); await page.locator(sessionTab("cnv_completed")).click(); await expect(page.locator(sessionTab("cnv_completed"))).toHaveAttribute("data-running", "false"); await expect(page.locator(`${selectors.messageCard}[data-role="agent"][data-status="completed"]`)).toContainText("构建和 Trace 渲染检查完成"); await saveScreenshot(page, testInfo, "status-consistency-completed"); });