refactor: waitFor→findBy 替换 + renderWithBasicProviders + jsdom 条件化回退
This commit is contained in:
@@ -130,7 +130,7 @@ describe("ProjectsPage", () => {
|
||||
const calls = createProjectFetchMock();
|
||||
|
||||
renderWithProviders(createElement(App), { initialRoute: "/projects" });
|
||||
await waitFor(() => expect(screen.getByText("活跃项目")).not.toBeNull());
|
||||
await screen.findByText("活跃项目");
|
||||
|
||||
const searchInput1 = screen.getByPlaceholderText("搜索名称或描述");
|
||||
fireEvent.change(searchInput1, { target: { value: "归档" } });
|
||||
@@ -147,14 +147,14 @@ describe("ProjectsPage", () => {
|
||||
});
|
||||
await waitFor(() => expect(calls.some((call) => call.url.includes("status=archived"))).toBe(true));
|
||||
|
||||
await waitFor(() => expect(screen.getByText("归档项目")).not.toBeNull());
|
||||
await screen.findByText("归档项目");
|
||||
});
|
||||
|
||||
test("清空搜索条件复位请求参数并重新展示全部项目", async () => {
|
||||
const calls = createProjectFetchMock();
|
||||
|
||||
renderWithProviders(createElement(App), { initialRoute: "/projects" });
|
||||
await waitFor(() => expect(screen.getByText("活跃项目")).not.toBeNull());
|
||||
await screen.findByText("活跃项目");
|
||||
|
||||
const searchInput2 = screen.getByPlaceholderText("搜索名称或描述");
|
||||
fireEvent.change(searchInput2, { target: { value: "归档" } });
|
||||
@@ -169,23 +169,23 @@ describe("ProjectsPage", () => {
|
||||
const lastProjectCall = [...calls].reverse().find((call) => call.url.includes("/api/projects"));
|
||||
expect(lastProjectCall && !lastProjectCall.url.includes("keyword=")).toBe(true);
|
||||
});
|
||||
await waitFor(() => expect(screen.getByText("活跃项目")).not.toBeNull());
|
||||
await screen.findByText("活跃项目");
|
||||
});
|
||||
|
||||
test("新建项目提交请求 body 并显示创建结果", async () => {
|
||||
const calls = createProjectFetchMock([]);
|
||||
|
||||
renderWithProviders(createElement(App), { initialRoute: "/projects" });
|
||||
await waitFor(() => expect(screen.getByRole("button", { name: /新建项目/ })).not.toBeNull());
|
||||
await screen.findByRole("button", { name: /新建项目/ });
|
||||
|
||||
fireEvent.click(screen.getByRole("button", { name: /新建项目/ }));
|
||||
await waitFor(() => expect(screen.getAllByText("新建项目").length).toBeGreaterThan(1));
|
||||
await waitFor(() => expect(screen.getByPlaceholderText("请输入项目名称")).not.toBeNull());
|
||||
await screen.findByPlaceholderText("请输入项目名称");
|
||||
fireEvent.change(screen.getByPlaceholderText("请输入项目名称"), { target: { value: "新增项目" } });
|
||||
fireEvent.change(screen.getByPlaceholderText("请输入项目描述"), { target: { value: "新增描述" } });
|
||||
await clickLatestConfirmButton();
|
||||
|
||||
await waitFor(() => expect(screen.getByText("新增项目")).not.toBeNull());
|
||||
await screen.findByText("新增项目");
|
||||
|
||||
const createCall = calls.find((call) => call.url.endsWith("/api/projects") && call.method === "POST");
|
||||
expect(createCall).toBeDefined();
|
||||
@@ -211,7 +211,7 @@ describe("ProjectsPage", () => {
|
||||
}),
|
||||
);
|
||||
|
||||
await waitFor(() => expect(screen.getByPlaceholderText("请输入项目名称")).not.toBeNull());
|
||||
await screen.findByPlaceholderText("请输入项目名称");
|
||||
fireEvent.change(screen.getByPlaceholderText("请输入项目名称"), { target: { value: "编辑项目" } });
|
||||
await clickLatestConfirmButton();
|
||||
|
||||
@@ -235,7 +235,7 @@ describe("ProjectsPage", () => {
|
||||
}),
|
||||
);
|
||||
|
||||
await waitFor(() => expect(screen.getByPlaceholderText("请输入项目名称")).not.toBeNull());
|
||||
await screen.findByPlaceholderText("请输入项目名称");
|
||||
await clickLatestConfirmButton();
|
||||
expect(onCreate).not.toHaveBeenCalled();
|
||||
|
||||
@@ -274,17 +274,17 @@ describe("ProjectsPage", () => {
|
||||
expect(screen.getByText("当前路径:/workbench/p1")).not.toBeNull();
|
||||
|
||||
fireEvent.click(screen.getByRole("button", { name: /归档/ }));
|
||||
await waitFor(() => expect(screen.getByText("确认归档此项目?")).not.toBeNull());
|
||||
await screen.findByText("确认归档此项目?");
|
||||
await clickLatestConfirmButton();
|
||||
await waitFor(() => expect(onArchive).toHaveBeenCalledWith("p1"));
|
||||
|
||||
fireEvent.click(screen.getByRole("button", { name: /恢复/ }));
|
||||
await waitFor(() => expect(screen.getByText("确认恢复此项目?")).not.toBeNull());
|
||||
await screen.findByText("确认恢复此项目?");
|
||||
await clickLatestConfirmButton();
|
||||
await waitFor(() => expect(onRestore).toHaveBeenCalledWith("p2"));
|
||||
|
||||
fireEvent.click(screen.getByRole("button", { name: /删除/ }));
|
||||
await waitFor(() => expect(screen.getByText("确认永久删除此项目?")).not.toBeNull());
|
||||
await screen.findByText("确认永久删除此项目?");
|
||||
await clickLatestConfirmButton();
|
||||
await waitFor(() => expect(onDelete).toHaveBeenCalledWith("p2"));
|
||||
}, 15000);
|
||||
|
||||
Reference in New Issue
Block a user