61 lines
1.3 KiB
Rust
Raw Permalink Normal View History

2025-06-27 02:33:44 +01:00
use nu_test_support::{nu, pipeline};
#[test]
fn rows() {
let sample = r#"
[[name, lucky_code];
[Andrés, 1],
[JT , 1],
[Jason , 2],
[Yehuda, 1]]"#;
let actual = nu!(pipeline(&format!(
r#"
{sample}
| take 3
| get lucky_code
| math sum
"#
)));
assert_eq!(actual.out, "4");
}
#[test]
fn rows_with_no_arguments_should_lead_to_error() {
let actual = nu!("[1 2 3] | take");
assert!(actual.err.contains("missing_positional"));
}
#[test]
fn fails_on_string() {
let actual = nu!(r#""foo bar" | take 2"#);
assert!(actual.err.contains("command doesn't support"));
}
#[test]
fn takes_bytes() {
let actual = nu!("(0x[aa bb cc] | take 2) == 0x[aa bb]");
assert_eq!(actual.out, "true");
}
#[test]
fn takes_bytes_from_stream() {
let actual = nu!("(1.. | each { 0x[aa bb cc] } | bytes collect | take 2) == 0x[aa bb]");
assert_eq!(actual.out, "true");
}
#[test]
// covers a situation where `take` used to behave strangely on list<binary> input
fn works_with_binary_list() {
let actual = nu!(r#"
([0x[01 11]] | take 1 | get 0) == 0x[01 11]
"#);
assert_eq!(actual.out, "true");
}