tests/mcp_tools.rs
//! Epic H1 — exhaustive MCP tool harness (standalone alias).
//!
//! The actual harness lives in `tests/support/mcp_harness.rs` (the single
//! source of truth, also driven by `tests/mcp_matrix.rs` so the matrix and this
//! standalone target can never disagree). This file is the thin `--test
//! mcp_tools` entry point:
//!
//! cargo test --features mcp --test mcp_tools
//!
//! It drives EVERY nornir MCP tool through the real `nornir-mcp` binary over its
//! stdio JSON-RPC transport against a seeded temp warehouse, asserts each tool's
//! structured OUTPUT against the seeded data (LAW 1 — inject values, assert
//! results), and FAILS if any registered tool got no coverage row (the coverage
//! gate). See the module docs in `mcp_harness.rs`.
#![cfg(feature = "mcp")]
#[path = "support/mcp_harness.rs"]
mod harness;
/// Debug helper: seed a workspace into a fixed dir and print its paths, then
/// keep it alive for probing. Ignored by default.
/// `cargo test --features mcp --test mcp_tools seed_only -- --ignored --nocapture`
#[test]
#[ignore = "debug helper: seeds a fixed dir and keeps it alive for probing; not a correctness gate"]
fn seed_only() {
harness::seed_only();
}
/// The exhaustive, coverage-gated functional test (alias of the matrix entry).
#[test]
fn mcp_every_tool_exercised_and_asserted() {
harness::run_full_coverage();
}