cents/tests/e2e/09-统计与查询/01-未分类与分类轮盘.spec.ts

35 lines
1.9 KiB
TypeScript

import { test, expect } from "@playwright/test";
import { makeEntry, mockApi, } from "../测试夹具";
test.describe("统计与查询:未分类和分类轮盘", () => {
test("01-统计未分类跳转查询后能显示对应流水", async ({ page }) => {
await mockApi(page, { initialEntries: [makeEntry({ categoryId: "expense", note: "待归类午餐" })] });
await (page);
await page.goto("/stats?tab=category&range=month&month=2026-08");
await page.locator(".category-stat-row", { hasText: "支出" }).click();
const uncategorized = page.locator(".category-stat-row", { hasText: "未分类" });
await expect(uncategorized).toBeVisible();
await uncategorized.getByRole("button", { name: "查看该分类流水" }).click();
await expect(page).toHaveURL(/\/query\?.*cat=expense(?::|%3A)uncategorized/);
await expect(page.getByText("待归类午餐")).toBeVisible();
await expect(page.getByRole("button", { name: /分类.*支出未分类/ })).toBeVisible();
await page.getByRole("button", { name: "打开查询条件" }).click();
await expect(page.getByRole("button", { name: "取消支出未分类" })).toBeVisible();
});
test("02-分类轮盘默认显示支出大类,返回后显示收支类型", async ({ page }) => {
await mockApi(page);
await (page);
await page.getByRole("button", { name: "记一笔" }).click();
await page.getByRole("button", { name: /选择分类,当前为支出/ }).click();
await expect(page.getByRole("button", { name: "餐饮" })).toBeVisible();
await expect(page.getByRole("button", { name: "收入", exact: true })).not.toBeVisible();
await page.getByRole("button", { name: "返回上一级" }).click();
await expect(page.getByRole("button", { name: "支出", exact: true })).toBeVisible();
await expect(page.getByRole("button", { name: "收入", exact: true })).toBeVisible();
});
});