#![cfg(feature = "cli")]
use assert_cmd::Command;
use predicates::prelude::*;
fn cmd() -> Command {
let mut c = Command::cargo_bin("rusty-figlet").expect("binary built");
c.env("NO_COLOR", "1");
c
}
#[test]
fn unknown_filter_returns_enumerable_error() {
let assert = cmd()
.args(["-F", "nosuchfilter", "Hello"])
.assert()
.failure();
let out = assert.get_output();
let stderr = String::from_utf8_lossy(&out.stderr);
assert!(
stderr.contains("unknown filter"),
"stderr should mention 'unknown filter', got: {stderr}"
);
assert!(stderr.contains("crop"));
assert!(stderr.contains("gay"));
assert!(stderr.contains("metal"));
assert!(stderr.contains("flip"));
assert!(stderr.contains("flop"));
assert!(stderr.contains("rotate180"));
assert!(stderr.contains("rotateleft"));
assert!(stderr.contains("rotateright"));
assert!(stderr.contains("border"));
assert!(stderr.contains("nothing"));
assert!(stderr.contains("nosuchfilter"));
}
#[test]
fn empty_segment_in_chain_rejected() {
cmd()
.args(["-F", "crop::flip", "Hello"])
.assert()
.failure()
.stderr(predicate::str::contains("unknown filter"));
}
#[cfg(all(feature = "filter-crop", feature = "filter-border"))]
#[test]
fn valid_filter_chain_accepted() {
cmd().args(["-F", "crop:border", "Hi"]).assert().success();
}
#[cfg(all(feature = "filter-flip", feature = "filter-flop"))]
#[test]
fn multiple_dash_f_flags_concatenate() {
cmd()
.args(["-F", "flip", "-F", "flop", "Hi"])
.assert()
.success();
}
#[test]
fn nothing_filter_always_available() {
cmd().args(["-F", "nothing", "Hi"]).assert().success();
}