修正外部 MCP 语义目录测试里写死的 legacy 工具数断言

- 断言 MCP_OPERATIONS.len() == 30 自 #592 起写死。4b529a895(新增支付服务接入与订单收银台)
  在内置 OpenAPI 中新增 createExternalPaymentOrder、getExternalPaymentOrder 两条未被
  x-mcp-excluded 排除的操作,legacy 可调用工具由 30 合法增至 32(非重复注册、非覆盖)
- 断言更新为 32 并注明来源(内置 OpenAPI 去掉 5 条元数据/入口操作后的可调用集合),
  保留“语义工具是增量、不得覆盖 legacy 工具”的原意;总数断言改为
  MCP_OPERATIONS.len() + TOOLS.len() 派生,避免再次写死
- 本地实跑:cargo test --locked -p api-server --no-fail-fast --manifest-path server-rs/Cargo.toml semantic
  → 18 passed(含 semantic_catalog_adds_fifteen_tools_without_replacing_legacy_tools)
This commit is contained in:
2026-10-04 00:56:55 +08:00
parent 26b6e1095b
commit 05707e61e4
@@ -30,7 +30,10 @@ fn prepare(
#[test]
fn semantic_catalog_adds_fifteen_tools_without_replacing_legacy_tools() {
assert_eq!(TOOLS.len(), 15);
assert_eq!(MCP_OPERATIONS.len(), 30);
// legacy 工具集合直接来自内置 OpenAPI(排除 5 条 x-mcp-excluded 元数据/入口操作)。
// 支付收银台新增 createExternalPaymentOrder / getExternalPaymentOrder 后,
// 可调用操作由 30 增至 32:语义工具只做增量,不得替换 legacy 工具。
assert_eq!(MCP_OPERATIONS.len(), 32);
let legacy = MCP_OPERATIONS
.iter()
.map(mcp_operation_tool)
@@ -52,7 +55,7 @@ fn semantic_catalog_adds_fifteen_tools_without_replacing_legacy_tools() {
.is_some_and(|text| !text.is_empty())
);
}
assert_eq!(names.len(), 45);
assert_eq!(names.len(), MCP_OPERATIONS.len() + TOOLS.len());
}
#[test]