use assert_cmd::Command;
#[test]
fn validate_succeeds_on_minimal_config() {
Command::cargo_bin("quelch")
.unwrap()
.arg("--config")
.arg("tests/fixtures/quelch.minimal.yaml")
.arg("validate")
.assert()
.success();
}
#[test]
fn validate_prints_valid_message() {
let output = Command::cargo_bin("quelch")
.unwrap()
.arg("--config")
.arg("tests/fixtures/quelch.minimal.yaml")
.arg("validate")
.output()
.unwrap();
assert!(output.status.success());
let stdout = String::from_utf8_lossy(&output.stdout);
assert!(
stdout.contains("Config is valid."),
"expected 'Config is valid.' in stdout: {stdout}"
);
}
#[test]
fn validate_fails_on_missing_config() {
Command::cargo_bin("quelch")
.unwrap()
.arg("--config")
.arg("tests/fixtures/nonexistent.yaml")
.arg("validate")
.assert()
.failure();
}
#[test]
fn effective_config_outputs_yaml() {
let output = Command::cargo_bin("quelch")
.unwrap()
.arg("--config")
.arg("tests/fixtures/quelch.minimal.yaml")
.arg("effective-config")
.arg("ingest")
.output()
.unwrap();
assert!(output.status.success(), "effective-config must succeed");
let stdout = String::from_utf8_lossy(&output.stdout);
assert!(
stdout.contains("ingest"),
"expected 'ingest' in effective-config output: {stdout}"
);
}
#[test]
fn effective_config_fails_on_unknown_deployment() {
Command::cargo_bin("quelch")
.unwrap()
.arg("--config")
.arg("tests/fixtures/quelch.minimal.yaml")
.arg("effective-config")
.arg("no-such-deployment")
.assert()
.failure();
}