22 lines
1.3 KiB
TypeScript
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");
|
|
});
|