import { test, expect } from "../fixtures"; test.describe("数据监测中心页面", () => { test.beforeEach(async ({ authenticatedPage }) => { await authenticatedPage.goto("/dashboard/analytics"); await authenticatedPage.waitForLoadState("networkidle"); }); test("数据监测中心页面标题正确显示", async ({ authenticatedPage }) => { await expect(authenticatedPage.getByRole("heading", { name: "数据监测中心" })).toBeVisible({ timeout: 10000 }); }); test("数据监测中心页面副标题正确显示", async ({ authenticatedPage }) => { await expect(authenticatedPage.getByText("全渠道内容表现追踪")).toBeVisible({ timeout: 10000 }); }); test("数据监测中心页面显示时间范围选择", async ({ authenticatedPage }) => { const range7 = authenticatedPage.getByRole("button", { name: "最近7天" }); const range30 = authenticatedPage.getByRole("button", { name: "最近30天" }); const range90 = authenticatedPage.getByRole("button", { name: "最近90天" }); const has7 = await range7.isVisible({ timeout: 10000 }).catch(() => false); const has30 = await range30.isVisible({ timeout: 3000 }).catch(() => false); const has90 = await range90.isVisible({ timeout: 3000 }).catch(() => false); expect(has7 || has30 || has90).toBeTruthy(); }); test("数据监测中心页面显示统计指标", async ({ authenticatedPage }) => { const metricTotal = authenticatedPage.getByText("总发布").first(); const metricExposure = authenticatedPage.getByText("总曝光").first(); const metricInteraction = authenticatedPage.getByText("总互动").first(); const metricAI = authenticatedPage.getByText("AI引用数").first(); const hasTotal = await metricTotal.isVisible({ timeout: 5000 }).catch(() => false); const hasExposure = await metricExposure.isVisible({ timeout: 3000 }).catch(() => false); const hasInteraction = await metricInteraction.isVisible({ timeout: 3000 }).catch(() => false); const hasAI = await metricAI.isVisible({ timeout: 3000 }).catch(() => false); if (!hasTotal && !hasExposure && !hasInteraction && !hasAI) { test.skip(); return; } expect(hasTotal || hasExposure || hasInteraction || hasAI).toBeTruthy(); }); test("数据监测中心页面显示平台分布图表或空状态", async ({ authenticatedPage }) => { const emptyState = authenticatedPage.getByText("暂无平台分布数据"); const chart = authenticatedPage.locator(".recharts-composed-chart, .recharts-wrapper, canvas"); await expect(emptyState.or(chart)).toBeVisible({ timeout: 10000 }); }); test("数据监测中心页面显示AI洞察或空状态", async ({ authenticatedPage }) => { const adoptBtn = authenticatedPage.getByRole("button", { name: "采纳建议" }); const emptyState = authenticatedPage.getByText("暂无AI洞察"); if (await adoptBtn.isVisible({ timeout: 5000 }).catch(() => false)) { await expect(adoptBtn).toBeVisible(); } else if (await emptyState.isVisible({ timeout: 5000 }).catch(() => false)) { await expect(emptyState).toBeVisible(); } else { test.skip(); } }); });