mirror of
https://github.com/nushell/nushell.git
synced 2025-04-16 09:18:21 +02:00
# Description Make `echo` const. - It's a very simple command, there is no reason for it to not be const. - It's return type `any` is utilized in tests to type erase values, this might be useful for testing const evaluation too. - The upcoming custom command attribute feature can make use of it as a stopgap replacement for `const def` commands. # User-Facing Changes `echo` can be used in const contexts. # Tests + Formatting # After Submitting N/A
43 lines
952 B
Rust
43 lines
952 B
Rust
use nu_test_support::nu;
|
|
|
|
#[test]
|
|
fn echo_range_is_lazy() {
|
|
let actual = nu!("echo 1..10000000000 | first 3 | to json --raw");
|
|
|
|
assert_eq!(actual.out, "[1,2,3]");
|
|
}
|
|
|
|
#[test]
|
|
fn echo_range_handles_inclusive() {
|
|
let actual = nu!("echo 1..3 | each { |x| $x } | to json --raw");
|
|
|
|
assert_eq!(actual.out, "[1,2,3]");
|
|
}
|
|
|
|
#[test]
|
|
fn echo_range_handles_exclusive() {
|
|
let actual = nu!("echo 1..<3 | each { |x| $x } | to json --raw");
|
|
|
|
assert_eq!(actual.out, "[1,2]");
|
|
}
|
|
|
|
#[test]
|
|
fn echo_range_handles_inclusive_down() {
|
|
let actual = nu!("echo 3..1 | each { |it| $it } | to json --raw");
|
|
|
|
assert_eq!(actual.out, "[3,2,1]");
|
|
}
|
|
|
|
#[test]
|
|
fn echo_range_handles_exclusive_down() {
|
|
let actual = nu!("echo 3..<1 | each { |it| $it } | to json --raw");
|
|
|
|
assert_eq!(actual.out, "[3,2]");
|
|
}
|
|
|
|
#[test]
|
|
fn echo_is_const() {
|
|
let actual = nu!(r#"const val = echo 1..3; $val | to json --raw"#);
|
|
assert_eq!(actual.out, "[1,2,3]");
|
|
}
|