feat: make mdtodo web tasks operable
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
// SPEC: PJ2026-010404 项目管理 draft-2026-06-25-p0-project-management-mdtodo.
|
||||
// SPEC: PJ2026-010404 项目管理 draft-2026-06-25-p0-project-management-mdtodo; draft-2026-06-26-p1-mdtodo-web-operable.
|
||||
// Responsibility: Fake-server browser regression for project root and MDTODO pages.
|
||||
|
||||
import { expect, saveScreenshot, test } from "../fixtures/test";
|
||||
@@ -18,6 +18,7 @@ test.describe("project management pages", () => {
|
||||
await expect(page.getByTestId("mdtodo-toolbar")).toBeVisible();
|
||||
await expect(page.getByTestId("mdtodo-source-select")).toHaveValue("hwlab-v03-mdtodo");
|
||||
await expect(page.getByTestId("mdtodo-file-select")).toHaveValue("file_plan");
|
||||
await expect(page.getByTestId("mdtodo-file-select")).toContainText("hwlab-v03-mdtodo-web-sample.md");
|
||||
await expect(page.locator(".mdtodo-summary-grid .metric-card")).toHaveCount(0);
|
||||
await expect(page.locator(".mdtodo-source-panel")).toHaveCount(0);
|
||||
await expect(page.locator(".mdtodo-file-panel")).toHaveCount(0);
|
||||
@@ -26,6 +27,12 @@ test.describe("project management pages", () => {
|
||||
await expect(page.locator('[data-task-id="R1.1"]')).toBeVisible();
|
||||
await expect(page.locator('[data-task-id="R1.1.1"]')).toBeVisible();
|
||||
await expect(page.getByTestId("mdtodo-task-detail")).toContainText("mdtodo:hwlab-v03-mdtodo:file_plan:R1");
|
||||
await expect(page.getByTestId("mdtodo-body-rendered")).toContainText("Root notes");
|
||||
await page.getByTestId("mdtodo-report-link").click();
|
||||
await expect(page.getByTestId("mdtodo-report-preview")).toContainText("Report body from fake server");
|
||||
await page.getByTestId("mdtodo-report-fullscreen").click();
|
||||
await expect(page.getByTestId("mdtodo-report-fullscreen-dialog")).toContainText("R1.1 implementation report");
|
||||
await page.getByLabel("关闭报告").click();
|
||||
await page.getByTestId("mdtodo-info-open").click();
|
||||
await expect(page.getByTestId("mdtodo-info-popover")).toContainText("Source");
|
||||
await expect(page.getByTestId("mdtodo-info-popover")).toContainText("Files");
|
||||
@@ -40,12 +47,14 @@ test.describe("project management pages", () => {
|
||||
await page.getByTestId("mdtodo-source-reindex-dialog").click();
|
||||
await expect(page.getByTestId("mdtodo-source-message")).toContainText("Reindex 2 files / 4 tasks");
|
||||
await page.getByLabel("关闭配置").click();
|
||||
await page.getByTestId("mdtodo-title-read").dblclick();
|
||||
await page.getByTestId("mdtodo-edit-title").fill("实现项目根导航 - edited");
|
||||
await page.getByTestId("mdtodo-edit-status").selectOption("in_progress");
|
||||
await page.getByTestId("mdtodo-edit-save").click();
|
||||
await expect(page.getByTestId("mdtodo-task-mutation-message")).toContainText("任务已保存");
|
||||
await expect(page.getByTestId("mdtodo-task-detail")).toContainText("实现项目根导航 - edited");
|
||||
await expect(page.locator('[data-task-id="R1"]')).toContainText("进行中");
|
||||
await page.getByTestId("mdtodo-body-rendered").dblclick();
|
||||
await page.getByTestId("mdtodo-edit-body").fill("Body saved from Playwright.");
|
||||
await page.getByTestId("mdtodo-edit-body-save").click();
|
||||
await expect(page.getByTestId("mdtodo-task-mutation-message")).toContainText("正文已保存");
|
||||
@@ -78,6 +87,8 @@ test.describe("project management pages", () => {
|
||||
const sessionPayload = await sessionDetail.json();
|
||||
expect(sessionPayload.session?.launchContext?.projectId ?? sessionPayload.session?.metadata?.launchContext?.projectId).toBe("project_hwlab_v03");
|
||||
expect(sessionPayload.session?.launchContext?.taskRef ?? sessionPayload.session?.metadata?.launchContext?.taskRef).toBe("mdtodo:hwlab-v03-mdtodo:file_plan:R1");
|
||||
expect(sessionPayload.session?.messageCount ?? sessionPayload.session?.messages?.length ?? 0).toBeGreaterThan(0);
|
||||
expect(sessionPayload.session?.firstUserMessagePreview ?? "").toContain("MDTODO");
|
||||
|
||||
const links = await page.request.get("/v1/project-management/workbench-links?taskRef=mdtodo:hwlab-v03-mdtodo:file_plan:R1");
|
||||
expect(links.ok()).toBeTruthy();
|
||||
|
||||
Reference in New Issue
Block a user