feat: 工作台聊天室功能
This commit is contained in:
@@ -3,8 +3,6 @@ import { describe, expect, test } from "bun:test";
|
||||
import { createElement } from "react";
|
||||
|
||||
import { App } from "../../../src/web/app";
|
||||
import { ProjectProvider } from "../../../src/web/consoles/workbench/ProjectContext";
|
||||
import { WorkbenchOverviewPage } from "../../../src/web/pages/workbench";
|
||||
import { renderWithProviders } from "../test-utils";
|
||||
|
||||
const MOCK_PROJECT = {
|
||||
@@ -33,6 +31,12 @@ function createMockHandler(overrides?: { archivedAt?: string; status?: "active"
|
||||
status: 200,
|
||||
});
|
||||
}
|
||||
if (url.includes("/api/projects/") && url.includes("/conversations")) {
|
||||
return new Response(JSON.stringify({ items: [], page: 1, pageSize: 100, total: 0 }), {
|
||||
headers: { "Content-Type": "application/json" },
|
||||
status: 200,
|
||||
});
|
||||
}
|
||||
return new Response(JSON.stringify({ error: "Not Found" }), { status: 404 });
|
||||
};
|
||||
const mocked = handler as unknown as typeof fetch;
|
||||
@@ -41,7 +45,7 @@ function createMockHandler(overrides?: { archivedAt?: string; status?: "active"
|
||||
}
|
||||
|
||||
describe("Workbench 路由", () => {
|
||||
test("active 项目可进入 Workbench 并展示总览", async () => {
|
||||
test("active 项目可进入 Workbench", async () => {
|
||||
createMockHandler();
|
||||
|
||||
renderWithProviders(createElement(App), {
|
||||
@@ -102,12 +106,18 @@ describe("Workbench 路由", () => {
|
||||
);
|
||||
});
|
||||
|
||||
test("Workbench 总览页标题显示'总览'", () => {
|
||||
renderWithProviders(
|
||||
createElement(ProjectProvider, { children: createElement(WorkbenchOverviewPage), project: MOCK_PROJECT }),
|
||||
);
|
||||
test("Workbench 显示聊天室菜单", async () => {
|
||||
createMockHandler();
|
||||
|
||||
expect(screen.getByText("总览")).not.toBeNull();
|
||||
expect(screen.getAllByText(MOCK_PROJECT.name).length).toBeGreaterThan(0);
|
||||
renderWithProviders(createElement(App), {
|
||||
initialRoute: `/workbench/${MOCK_PROJECT.id}`,
|
||||
});
|
||||
|
||||
await waitFor(
|
||||
() => {
|
||||
expect(screen.getByText("聊天室")).not.toBeNull();
|
||||
},
|
||||
{ timeout: 10000 },
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user