use assert_cmd::Command;
use predicates::prelude::*;
#[test]
fn cli_oneshot_korean_input() {
Command::cargo_bin("braillify")
.unwrap()
.arg("안녕")
.assert()
.success()
.stdout(predicate::str::is_empty().not());
}
#[test]
fn cli_no_argument_does_not_panic() {
let _ = Command::cargo_bin("braillify").unwrap().assert();
}
#[test]
fn cli_long_korean_input() {
let long = "안녕하세요 ".repeat(50);
Command::cargo_bin("braillify")
.unwrap()
.arg(&long)
.assert()
.success();
}
#[test]
fn cli_invalid_char_fails() {
Command::cargo_bin("braillify")
.unwrap()
.arg("😀")
.assert()
.failure();
}
#[test]
fn cli_version_flag() {
Command::cargo_bin("braillify")
.unwrap()
.arg("--version")
.assert()
.success()
.stdout(predicate::str::contains("braillify"));
}
#[test]
fn cli_help_flag() {
Command::cargo_bin("braillify")
.unwrap()
.arg("--help")
.assert()
.success();
}
#[test]
fn cli_reads_stdin_when_no_arg() {
Command::cargo_bin("braillify")
.unwrap()
.write_stdin("안녕")
.assert()
.success()
.stdout(predicate::str::is_empty().not());
}
#[test]
fn cli_empty_stdin_no_panic() {
let _ = Command::cargo_bin("braillify")
.unwrap()
.write_stdin("")
.assert();
}