- 补入库:server/internal/db/dump.go、redis 分页/扫描预算测试、opsxdb-mcp main_test、 packages/opsxdb-mcp package-lock、docs 审计与对比文档等 37 个新文件 - 含结构扁平化进行中的 80 处修改与 155 处旧结构删除(server/ src/ src-tauri/ 为当前有效源) - 构建产物(bin/target/dist)与签名私钥仍按规则排除
37 lines
1.4 KiB
TypeScript
37 lines
1.4 KiB
TypeScript
import { afterEach, expect, it } from "vitest";
|
|
import { renderToStaticMarkup } from "react-dom/server";
|
|
import { ObjectTree } from "./ObjectTree";
|
|
import { useWorkspaceStore } from "./store";
|
|
|
|
const initial = useWorkspaceStore.getState();
|
|
const serverState = useWorkspaceStore.getInitialState();
|
|
const initialServer = {
|
|
connections: serverState.connections,
|
|
activeConnectionId: serverState.activeConnectionId,
|
|
tree: serverState.tree,
|
|
treeLoading: serverState.treeLoading,
|
|
sidebarFilter: serverState.sidebarFilter,
|
|
};
|
|
|
|
afterEach(() => {
|
|
Object.assign(serverState, initialServer);
|
|
useWorkspaceStore.setState(initial, true);
|
|
});
|
|
|
|
it("展开 Redis DB 时渲染 Key,而不是把 JSX 内的源码当文字展示", () => {
|
|
const state = {
|
|
connections: [{ id: "redis-local", name: "Redis 连接", driver: "redis", host: "127.0.0.1", port: 6379, user: "", password: "", database: "0" }],
|
|
activeConnectionId: "redis-local",
|
|
tree: [{ name: "0", kind: "database", loaded: true, children: [{ name: "USER:1", kind: "key", type: "string", ttl: -1 }] }],
|
|
treeLoading: false,
|
|
sidebarFilter: "",
|
|
} as const;
|
|
Object.assign(serverState, state);
|
|
|
|
const html = renderToStaticMarkup(<ObjectTree />);
|
|
expect(html).toContain("USER:1");
|
|
expect(html).toContain("搜索 DB0 的 Key");
|
|
expect(html).not.toContain("renderRedisNodes(");
|
|
expect(html).not.toContain("服务端已按 pattern SCAN");
|
|
});
|