#[test]
fn s2_mcp_source_contains_describe_tool_definition() {
let src = std::fs::read_to_string(
"src/mcp.rs",
).expect("read mcp.rs");
assert!(src.contains("reliary_describe"),
"reliary_describe must be registered in mcp.rs");
assert!(src.contains("Explain a symbol"),
"Tool description should describe purpose");
assert!(src.contains("inputSchema"),
"Tool must have input schema");
}
#[test]
fn s2_mcp_source_contains_describe_dispatcher() {
let src = std::fs::read_to_string("src/mcp.rs").expect("read mcp.rs");
assert!(src.contains("\"reliary_describe\""),
"Dispatcher must have an alias for reliary_describe");
assert!(src.contains("pack_query"),
"Dispatcher must delegate to pack_query handler");
}
#[test]
fn s2_mcp_primary_list_includes_describe() {
let src = std::fs::read_to_string("src/mcp.rs").expect("read mcp.rs");
assert!(src.contains("\"reliary_describe\""),
"reliary_describe must be in primary tool list so the model sees it by default");
}
#[test]
fn s2_describe_input_schema_has_name() {
let src = std::fs::read_to_string("src/mcp.rs").expect("read mcp.rs");
let start = src.find("reliary_describe").expect("tool exists");
let end_marker = src[start..].find("inputSchema\": {").expect("schema exists");
let schema = &src[start + end_marker..];
assert!(schema.contains("\"name\": {\"type\": \"string\""),
"Schema must accept 'name' string parameter");
}