import { renderToStaticMarkup } from "react-dom/server";
import { describe, expect, it } from "vitest";
import { HomePage } from "./HomePage";
import { PluginsPage } from "./PluginsPage";
import { ProfileSettingsPage } from "./ProfileSettingsPage";
import { ServerDetailPage } from "./ServerDetailPage";
import { ServersPage } from "./ServersPage";
import { UsersPage } from "./UsersPage";
import type { PageComponentProps } from "../contracts/page";
import { capabilitiesForRoles, type CurrentUserView } from "../contracts/workspace";
import type { OperationTracker } from "../stores/operations";
const adminUser: CurrentUserView = {
id: "user-admin",
displayName: "Operator",
status: "active",
roles: ["platformAdmin"],
capabilities: capabilitiesForRoles(["platformAdmin"]),
profile: {},
source: "local"
};
const noopOperations: OperationTracker = {
operations: [],
begin: () => "op-test",
update: () => undefined,
succeed: () => undefined,
fail: () => undefined,
isPending: () => false
};
function pageProps(params: PageComponentProps["params"] = {}): PageComponentProps {
return {
session: adminUser,
params,
operations: noopOperations,
onNavigate: () => undefined,
onLogout: async () => undefined,
onProfileSave: async () => adminUser,
onThemePreferenceSave: async () => ({ userId: adminUser.id, paletteId: "mecha-black", backgroundPresetId: "mecha-grid", persistence: "api", updatedAt: "2026-07-03T00:00:00Z" })
};
}
describe("first-party console pages", () => {
it("renders the platform overview with first-screen health modules", () => {
const html = renderToStaticMarkup();
expect(html).toContain("平台概览");
expect(html).toContain("资源负载");
expect(html).toContain("游戏类型分布");
expect(html).toContain("最近运营信号");
expect(html).not.toContain("sk-");
});
it("renders the server list workspace with search and status filters", () => {
const html = renderToStaticMarkup();
expect(html).toContain("服务器管理");
expect(html).toContain("搜索服务器");
expect(html).toContain("在线");
expect(html).toContain("离线");
expect(html).not.toContain("run socket");
expect(html).not.toContain("/Users/");
});
it("renders server detail sections for daily operations", () => {
const html = renderToStaticMarkup();
expect(html).toContain("返回列表");
expect(html).toContain("概览");
expect(html).toContain("日志");
expect(html).toContain("配置");
expect(html).toContain("插件控制");
expect(html).toContain("AI 助手");
expect(html).toContain("操作历史");
});
it("renders plugin catalog bridge readiness", () => {
const html = renderToStaticMarkup();
expect(html).toContain("插件市场");
expect(html).toContain("平台 API");
expect(html).toContain("正在加载插件市场");
expect(html).not.toContain("billing");
});
it("renders user access review context", () => {
const html = renderToStaticMarkup();
expect(html).toContain("用户管理");
expect(html).toContain("Plugin Reviewer");
expect(html).toContain("needs approval");
});
it("renders profile settings as a full page", () => {
const html = renderToStaticMarkup();
expect(html).toContain("个人设置");
expect(html).toContain("个人资料");
expect(html).toContain("界面偏好");
expect(html).not.toContain("role=\"dialog\"");
});
});