43 lines
1.0 KiB
Rust
43 lines
1.0 KiB
Rust
use nu_test_support::nu;
|
|
|
|
#[test]
|
|
fn row() {
|
|
let actual = nu!("[[key value]; [foo 1] [foo 2]] | transpose -r | debug");
|
|
|
|
assert!(actual.out.contains("foo: 1"));
|
|
}
|
|
|
|
#[test]
|
|
fn row_but_last() {
|
|
let actual = nu!("[[key value]; [foo 1] [foo 2]] | transpose -r -l | debug");
|
|
|
|
assert!(actual.out.contains("foo: 2"));
|
|
}
|
|
|
|
#[test]
|
|
fn row_but_all() {
|
|
let actual = nu!("[[key value]; [foo 1] [foo 2]] | transpose -r -a | debug");
|
|
|
|
assert!(actual.out.contains("foo: [1, 2]"));
|
|
}
|
|
|
|
#[test]
|
|
fn throw_inner_error() {
|
|
let error_msg = "This message should show up";
|
|
let error = format!("(error make {{ msg: \"{}\" }})", error_msg);
|
|
let actual = nu!(format!(
|
|
"[[key value]; [foo 1] [foo 2] [{} 3]] | transpose",
|
|
error
|
|
));
|
|
|
|
assert!(actual.err.contains(error.as_str()));
|
|
}
|
|
|
|
#[test]
|
|
fn rejects_non_table_stream_input() {
|
|
let actual = nu!("[1 2 3] | each { |it| ($it * 2) } | transpose | to nuon");
|
|
|
|
assert!(actual.out.is_empty());
|
|
assert!(actual.err.contains("only table"));
|
|
}
|