mirror of
https://github.com/nushell/nushell.git
synced 2024-11-22 16:33:37 +01:00
d5677625a7
# Description I'm not sure if "is-terminal" is the best name for this command as there is also "term size". Uses [`is_terminal()`](https://doc.rust-lang.org/stable/std/io/trait.IsTerminal.html#tymethod.is_terminal) which is cross-platform. Possible alternative names: * `term is-tty --stdout` * `term is-tty stdout` * `term is-terminal stdout` If multiple streams are provided an error is returned. The error span covers all arguments as the incompatible one is not known. This may be new? Fixes #10517 # User-Facing Changes * Add `is-terminal` to check if stdin, stdout, or stderr are a terminal (TTY) # Tests + Formatting The nu tests always redirect stdin, stdout, and stderr so a positive test case is not possible without extra work - 🟢 `toolkit fmt` - 🟢 `toolkit clippy` - 🟢 `toolkit test` - 🟢 `toolkit test stdlib` # After Submitting The new command will be added automatically --------- Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
25 lines
483 B
Rust
25 lines
483 B
Rust
use nu_test_support::{nu, pipeline};
|
|
|
|
// Inside nu! stdout is piped so it won't be a terminal
|
|
#[test]
|
|
fn is_terminal_stdout_piped() {
|
|
let actual = nu!(pipeline(
|
|
r#"
|
|
is-terminal --stdout
|
|
"#
|
|
));
|
|
|
|
assert_eq!(actual.out, "false");
|
|
}
|
|
|
|
#[test]
|
|
fn is_terminal_two_streams() {
|
|
let actual = nu!(pipeline(
|
|
r#"
|
|
is-terminal --stdin --stderr
|
|
"#
|
|
));
|
|
|
|
assert!(actual.err.contains("Only one stream may be checked"));
|
|
}
|