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 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"); }