feat(workbench): 新增收集箱页面 — 素材列表/详情分栏布局 + 新增/选中/删除 mock 交互
This commit is contained in:
63
tests/web/features/inbox/InboxPage.test.tsx
Normal file
63
tests/web/features/inbox/InboxPage.test.tsx
Normal file
@@ -0,0 +1,63 @@
|
||||
import { fireEvent, screen, waitFor } from "@testing-library/react";
|
||||
import { describe, expect, test } from "bun:test";
|
||||
import { createElement } from "react";
|
||||
|
||||
import { InboxPage } from "../../../../src/web/features/inbox";
|
||||
import { renderWithProviders } from "../../test-utils";
|
||||
|
||||
describe("InboxPage", () => {
|
||||
test("初始状态显示空状态提示", () => {
|
||||
renderWithProviders(createElement(InboxPage));
|
||||
expect(screen.getByText("暂无素材")).not.toBeNull();
|
||||
expect(screen.getByText("请在左侧选择素材")).not.toBeNull();
|
||||
});
|
||||
|
||||
test("新增素材后列表追加且自动选中", async () => {
|
||||
renderWithProviders(createElement(InboxPage));
|
||||
|
||||
fireEvent.click(screen.getByRole("button", { name: /新增素材/ }));
|
||||
|
||||
await waitFor(() => {
|
||||
expect(screen.getByText("新增素材", { selector: ".ant-modal-title" })).not.toBeNull();
|
||||
});
|
||||
|
||||
const textarea = screen.getByPlaceholderText("请输入素材描述");
|
||||
fireEvent.change(textarea, { target: { value: "新增的素材" } });
|
||||
|
||||
fireEvent.click(screen.getByText("确 定"));
|
||||
|
||||
await waitFor(() => {
|
||||
expect(screen.getByText("新增的素材")).not.toBeNull();
|
||||
});
|
||||
|
||||
expect(screen.getByText("素材详情")).not.toBeNull();
|
||||
expect(screen.queryByText("暂无素材")).toBeNull();
|
||||
expect(screen.queryByText("请在左侧选择素材")).toBeNull();
|
||||
});
|
||||
|
||||
test("删除素材后列表更新", async () => {
|
||||
renderWithProviders(createElement(InboxPage));
|
||||
|
||||
fireEvent.click(screen.getByRole("button", { name: /新增素材/ }));
|
||||
|
||||
await waitFor(() => {
|
||||
expect(screen.getByText("新增素材", { selector: ".ant-modal-title" })).not.toBeNull();
|
||||
});
|
||||
|
||||
const textarea = screen.getByPlaceholderText("请输入素材描述");
|
||||
fireEvent.change(textarea, { target: { value: "待删除的素材" } });
|
||||
|
||||
fireEvent.click(screen.getByText("确 定"));
|
||||
|
||||
await waitFor(() => {
|
||||
expect(screen.getByText("待删除的素材")).not.toBeNull();
|
||||
});
|
||||
|
||||
fireEvent.click(screen.getByLabelText("删除"));
|
||||
|
||||
await waitFor(() => {
|
||||
expect(screen.getByText("暂无素材")).not.toBeNull();
|
||||
expect(screen.getByText("请在左侧选择素材")).not.toBeNull();
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user