Files
pikasTech-HWLAB/web/hwlab-cloud-web/tests/workbench-e2e/specs/session-switch-reload.spec.ts
T

22 lines
1.3 KiB
TypeScript

import { expect, fakeServerState, gotoWorkbench, saveScreenshot, test } from "../fixtures/test";
import { selectors, sessionTab } from "../fixtures/selectors";
test("session switch persists active conversation after reload", async ({ page }, testInfo) => {
await gotoWorkbench(page);
await expect(page.locator(sessionTab("cnv_running"))).toHaveAttribute("data-active", "true");
await saveScreenshot(page, testInfo, "session-switch-before");
await page.locator(sessionTab("cnv_completed")).click();
await expect(page).toHaveURL(/\/workbench\/sessions\/cnv_completed/u);
await expect(page.locator(sessionTab("cnv_completed"))).toHaveAttribute("data-active", "true");
await expect(page.locator(`${selectors.messageCard}[data-role="agent"][data-status="completed"]`)).toContainText("构建和 Trace 渲染检查完成");
await expect.poll(async () => (await fakeServerState(page)).selectedConversationId).toBe("cnv_completed");
await saveScreenshot(page, testInfo, "session-switch-after");
await page.reload();
await expect(page.locator(sessionTab("cnv_completed"))).toHaveAttribute("data-active", "true");
await expect(page.locator(selectors.sessionStatus)).toContainText("ses_completed");
await expect(page.locator(`${selectors.traceTimeline}[data-status="completed"]`)).toBeVisible();
await saveScreenshot(page, testInfo, "session-switch-reload");
});