1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//! Regression test for bug #20: comms verbs DO emit JSON when `--json` is passed, so
//! passing `--json` to a comms subcommand must NOT print the
//! "'--json' has no effect on this subcommand" warning.
//!
//! Gated on the same `cfg(all(feature = "comms", unix))` as the `Cmd::Comms` arm.
#![cfg(all(feature = "comms", unix))]
use std::process::Command;
fn bin() -> &'static str {
env!("CARGO_BIN_EXE_basemind")
}
/// `--json comms status` may fail to reach a broker (no daemon in CI), but the
/// ignored-flag warning is emitted up front in `warn_ignored_global_flags`, before
/// dispatch — so its presence/absence is independent of the command's success.
#[test]
fn should_not_warn_json_ineffective_on_comms() {
let dir = tempfile::tempdir().expect("tempdir");
let output = Command::new(bin())
.args([
"--root",
dir.path().to_str().unwrap(),
"--json",
"comms",
"status",
])
.env_remove("RUST_LOG")
.output()
.expect("run basemind comms status");
let stderr = String::from_utf8_lossy(&output.stderr);
assert!(
!stderr.contains("--json has no effect"),
"comms consumes `--json`; no ignored-flag warning expected. stderr:\n{stderr}"
);
}