mod common;
use predicates::prelude::*;
#[test]
fn cli_rejects_zero_mcp_timeout() {
common::agent_block_cmd()
.args([
"-s",
&common::fixture("hello.lua"),
"--mcp-timeout-secs",
"0",
])
.assert()
.failure()
.stderr(predicate::str::contains("0 is not in 1.."));
}
#[test]
fn mcp_errors_propagate_to_lua_and_tracing() {
let assert = common::agent_block_cmd()
.args([
"-s",
&common::fixture("mcp_errors.lua"),
"--mcp-timeout-secs",
"2",
])
.env("RUST_LOG", "agent_block_mcp=warn")
.assert()
.success();
assert
.stdout(predicate::str::contains("CONNECT_TIMEOUT_ERR="))
.stdout(predicate::str::contains("initialize 'stuck' timed out"))
.stdout(predicate::str::contains("UNKNOWN_CALL_ERR="))
.stdout(predicate::str::contains("no server named 'ghost'"))
.stdout(predicate::str::contains("UNKNOWN_LIST_ERR="))
.stdout(predicate::str::contains("FIXTURE_DONE"))
.stdout(predicate::str::contains("mcp initialize timed out"))
.stdout(predicate::str::contains("mcp call_tool on unknown server"))
.stdout(predicate::str::contains("mcp list_tools on unknown server"));
}