Skip to content

Commit e3bb5a7

Browse files
committed
test(commands): 添加知识库统计接口的E2E测试
- 在topic-routes中新增knowledge stats路由映射 - 在j2-content-ops测试中添加知识库统计命令调用 - 验证接口返回的存储限制和请求速率监控数据结构有效 - 记录存储限制和请求窗口数量作为测试备注 - 引入parseStdoutJson辅助函数解析JSON输出
1 parent 54da9aa commit e3bb5a7

2 files changed

Lines changed: 26 additions & 1 deletion

File tree

packages/commands/tests/e2e/knowledge/journeys/j2-content-ops.e2e.test.ts

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
// Note: there is no "append documents to an existing base" command (kb update takes
55
// no doc-id), so incremental semantics are expressed as a two-document create + deleting one.
66
import { describe, expect, test } from "vite-plus/test";
7-
import { isKbAdminE2EReady } from "../../helpers.ts";
7+
import { isKbAdminE2EReady, parseStdoutJson } from "../../helpers.ts";
88
import { JOURNEY_J2_ROUTES } from "../../topic-routes.ts";
99
import {
1010
cleanupKbFixture,
@@ -67,6 +67,30 @@ describe.skipIf(!isKbAdminE2EReady())("journey J2: 内容运维 (live, 自清理
6767
expect(docStatusRun.exitCode, docStatusRun.stderr).toBe(0);
6868
expect(docStatusRun.stdout.trim()).toBe("COMPLETED");
6969

70+
// 2.5) knowledge stats — monitor endpoint returns valid structure (hard)
71+
const statsRun = await reporter.runStep("kb stats", JOURNEY_J2_ROUTES, [
72+
"knowledge",
73+
"stats",
74+
"--index-id",
75+
kb.indexId,
76+
"--workspace-id",
77+
workspaceId,
78+
"--output",
79+
"json",
80+
]);
81+
expect(statsRun.exitCode, statsRun.stderr).toBe(0);
82+
const statsData = parseStdoutJson<{
83+
data?: {
84+
storageMonitorData?: { indexStorageLimit?: number };
85+
qpsMonitorData?: { monitorData?: unknown[] };
86+
};
87+
}>(statsRun.stdout);
88+
expect(typeof statsData.data?.storageMonitorData?.indexStorageLimit).toBe("number");
89+
expect(Array.isArray(statsData.data?.qpsMonitorData?.monitorData)).toBe(true);
90+
reporter.recordNote(
91+
`storage limit=${statsData.data?.storageMonitorData?.indexStorageLimit} qps windows=${statsData.data?.qpsMonitorData?.monitorData?.length ?? 0}`,
92+
);
93+
7094
// 3) doc tag on doc2 (tagging succeeds: hard; tag read-back: soft — server-side
7195
// display lag or the API not echoing tags are both tolerable)
7296
const tagValue = `e2e-j2-${Date.now() % 100000000}`;

packages/commands/tests/e2e/topic-routes.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,7 @@ export const JOURNEY_J2_ROUTES: E2eRouteExports = {
294294
"knowledge doc status": "knowledgeDocStatus",
295295
"knowledge doc tag": "knowledgeDocTag",
296296
"knowledge doc delete": "knowledgeDocDelete",
297+
"knowledge stats": "knowledgeKbStats",
297298
};
298299

299300
export const JOURNEY_J3_ROUTES: E2eRouteExports = {

0 commit comments

Comments
 (0)