Clean up tests containing unnecessary cwd: tokens (#9692)

# Description
The working directory doesn't have to be set for those tests (or would
be the default anyways). When appropriate also remove calls to the
`pipeline()` function. In most places kept the diff minimal and only
removed the superfluous part to not pollute the blame view. With simpler
tests also simplified things to make them more readable overall (this
included removal of the raw string literal).

Work for #8670
This commit is contained in:
Stefan Holderbach 2023-07-17 18:43:51 +02:00 committed by GitHub
parent 48271d8c3e
commit 656f707a0b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
70 changed files with 611 additions and 1344 deletions

View file

@ -2,24 +2,18 @@ use nu_test_support::nu;
#[test]
fn basic_binary_starts_with() {
let actual = nu!(
cwd: ".",
r#"
let actual = nu!(r#"
"hello world" | into binary | bytes starts-with 0x[68 65 6c 6c 6f]
"#
);
"#);
assert_eq!(actual.out, "true");
}
#[test]
fn basic_string_fails() {
let actual = nu!(
cwd: ".",
r#"
let actual = nu!(r#"
"hello world" | bytes starts-with 0x[68 65 6c 6c 6f]
"#
);
"#);
assert!(actual.err.contains("command doesn't support"));
assert_eq!(actual.out, "");
@ -27,48 +21,36 @@ fn basic_string_fails() {
#[test]
fn short_stream_binary() {
let actual = nu!(
cwd: ".",
r#"
let actual = nu!(r#"
nu --testbin repeater (0x[01]) 5 | bytes starts-with 0x[010101]
"#
);
"#);
assert_eq!(actual.out, "true");
}
#[test]
fn short_stream_mismatch() {
let actual = nu!(
cwd: ".",
r#"
let actual = nu!(r#"
nu --testbin repeater (0x[010203]) 5 | bytes starts-with 0x[010204]
"#
);
"#);
assert_eq!(actual.out, "false");
}
#[test]
fn short_stream_binary_overflow() {
let actual = nu!(
cwd: ".",
r#"
let actual = nu!(r#"
nu --testbin repeater (0x[01]) 5 | bytes starts-with 0x[010101010101]
"#
);
"#);
assert_eq!(actual.out, "false");
}
#[test]
fn long_stream_binary() {
let actual = nu!(
cwd: ".",
r#"
let actual = nu!(r#"
nu --testbin repeater (0x[01]) 32768 | bytes starts-with 0x[010101]
"#
);
"#);
assert_eq!(actual.out, "true");
}
@ -76,12 +58,9 @@ fn long_stream_binary() {
#[test]
fn long_stream_binary_overflow() {
// .. ranges are inclusive..inclusive, so we don't need to +1 to check for an overflow
let actual = nu!(
cwd: ".",
r#"
let actual = nu!(r#"
nu --testbin repeater (0x[01]) 32768 | bytes starts-with (0..32768 | each {|| 0x[01] } | bytes collect)
"#
);
"#);
assert_eq!(actual.out, "false");
}
@ -89,12 +68,9 @@ fn long_stream_binary_overflow() {
#[test]
fn long_stream_binary_exact() {
// ranges are inclusive..inclusive, so we don't need to +1 to check for an overflow
let actual = nu!(
cwd: ".",
r#"
let actual = nu!(r#"
nu --testbin repeater (0x[01020304]) 8192 | bytes starts-with (0..<8192 | each {|| 0x[01020304] } | bytes collect)
"#
);
"#);
assert_eq!(actual.out, "true");
}
@ -102,12 +78,9 @@ fn long_stream_binary_exact() {
#[test]
fn long_stream_string_exact() {
// ranges are inclusive..inclusive, so we don't need to +1 to check for an overflow
let actual = nu!(
cwd: ".",
r#"
let actual = nu!(r#"
nu --testbin repeater hell 8192 | bytes starts-with (0..<8192 | each {|| "hell" | into binary } | bytes collect)
"#
);
"#);
assert_eq!(actual.out, "true");
}
@ -115,15 +88,12 @@ fn long_stream_string_exact() {
#[test]
fn long_stream_mixed_exact() {
// ranges are inclusive..inclusive, so we don't need to +1 to check for an overflow
let actual = nu!(
cwd: ".",
r#"
let actual = nu!(r#"
let binseg = (0..<2048 | each {|| 0x[003d9fbf] } | bytes collect)
let strseg = (0..<2048 | each {|| "hell" | into binary } | bytes collect)
nu --testbin repeat_bytes 003d9fbf 2048 68656c6c 2048 | bytes starts-with (bytes build $binseg $strseg)
"#
);
"#);
assert_eq!(
actual.err, "",
@ -135,15 +105,12 @@ fn long_stream_mixed_exact() {
#[test]
fn long_stream_mixed_overflow() {
// ranges are inclusive..inclusive, so we don't need to +1 to check for an overflow
let actual = nu!(
cwd: ".",
r#"
let actual = nu!(r#"
let binseg = (0..<2048 | each {|| 0x[003d9fbf] } | bytes collect)
let strseg = (0..<2048 | each {|| "hell" | into binary } | bytes collect)
nu --testbin repeat_bytes 003d9fbf 2048 68656c6c 2048 | bytes starts-with (bytes build $binseg $strseg 0x[01])
"#
);
"#);
assert_eq!(
actual.err, "",

View file

@ -1,22 +1,16 @@
use nu_test_support::{nu, pipeline};
use nu_test_support::nu;
#[test]
fn append_assign_int() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
mut a = [1 2];
$a ++= [3 4];
$a
"#
));
"#);
let expected = nu!(
cwd: ".", pipeline(
r#"
let expected = nu!(r#"
[1 2 3 4]
"#
));
"#);
print!("{}", actual.out);
print!("{}", expected.out);
@ -25,21 +19,15 @@ fn append_assign_int() {
#[test]
fn append_assign_string() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
mut a = [a b];
$a ++= [c d];
$a
"#
));
"#);
let expected = nu!(
cwd: ".", pipeline(
r#"
let expected = nu!(r#"
[a b c d]
"#
));
"#);
print!("{}", actual.out);
print!("{}", expected.out);
@ -48,21 +36,15 @@ fn append_assign_string() {
#[test]
fn append_assign_any() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
mut a = [1 2 a];
$a ++= [b 3];
$a
"#
));
"#);
let expected = nu!(
cwd: ".", pipeline(
r#"
let expected = nu!(r#"
[1 2 a b 3]
"#
));
"#);
print!("{}", actual.out);
print!("{}", expected.out);
@ -71,21 +53,15 @@ fn append_assign_any() {
#[test]
fn append_assign_both_empty() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
mut a = [];
$a ++= [];
$a
"#
));
"#);
let expected = nu!(
cwd: ".", pipeline(
r#"
let expected = nu!(r#"
[]
"#
));
"#);
print!("{}", actual.out);
print!("{}", expected.out);
@ -94,14 +70,11 @@ fn append_assign_both_empty() {
#[test]
fn append_assign_type_mismatch() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
mut a = [1 2];
$a ++= [a];
$a | to json -r;
"#
));
"#);
assert_eq!(actual.out, r#"[1,2,"a"]"#);
}

View file

@ -2,26 +2,18 @@ use nu_test_support::{nu, pipeline};
#[test]
fn formatter_not_valid() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
date now | date format '%N'
"#
)
);
"#);
assert!(actual.err.contains("invalid format"));
}
#[test]
fn fails_without_input() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
date format "%c"
"#
)
);
"#);
assert!(actual.err.contains("Pipeline empty"));
}

View file

@ -4,8 +4,7 @@ use nu_test_support::{nu, pipeline};
#[test]
fn flatten_nested_tables_with_columns() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
echo [[origin, people]; [Ecuador, ('Andres' | wrap name)]]
[[origin, people]; [Nu, ('nuno' | wrap name)]]
@ -20,8 +19,7 @@ fn flatten_nested_tables_with_columns() {
#[test]
fn flatten_nested_tables_that_have_many_columns() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
echo [[origin, people]; [Ecuador, (echo [[name, meal]; ['Andres', 'arepa']])]]
[[origin, people]; [USA, (echo [[name, meal]; ['Katz', 'nurepa']])]]
@ -36,8 +34,7 @@ fn flatten_nested_tables_that_have_many_columns() {
#[test]
fn flatten_nested_tables() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
echo [[Andrés, Nicolás, Robalino]] | flatten | get 1
"#

View file

@ -2,13 +2,10 @@ use nu_test_support::nu;
#[test]
fn for_doesnt_auto_print_in_each_iteration() {
let actual = nu!(
cwd: ".",
r#"
let actual = nu!(r#"
for i in 1..2 {
echo 1
}"#
);
}"#);
// Make sure we don't see any of these values in the output
// As we do not auto-print loops anymore
assert!(!actual.out.contains('1'));
@ -16,14 +13,11 @@ fn for_doesnt_auto_print_in_each_iteration() {
#[test]
fn for_break_on_external_failed() {
let actual = nu!(
cwd: ".",
r#"
let actual = nu!(r#"
for i in 1..2 {
print 1;
nu --testbin fail
}"#
);
}"#);
// Note: nu! macro auto replace "\n" and "\r\n" with ""
// so our output will be `1`
assert_eq!(actual.out, "1");
@ -31,24 +25,18 @@ fn for_break_on_external_failed() {
#[test]
fn failed_for_should_break_running() {
let actual = nu!(
cwd: ".",
r#"
let actual = nu!(r#"
for i in 1..2 {
nu --testbin fail
}
print 3"#
);
print 3"#);
assert!(!actual.out.contains('3'));
let actual = nu!(
cwd: ".",
r#"
let actual = nu!(r#"
let x = [1 2]
for i in $x {
nu --testbin fail
}
print 3"#
);
print 3"#);
assert!(!actual.out.contains('3'));
}

View file

@ -182,10 +182,7 @@ fn errors_fetching_by_accessing_empty_list() {
#[test]
fn quoted_column_access() {
let actual = nu!(
cwd: "tests/fixtures/formats",
r#"'[{"foo bar": {"baz": 4}}]' | from json | get "foo bar".baz.0 "#
);
let actual = nu!(r#"'[{"foo bar": {"baz": 4}}]' | from json | get "foo bar".baz.0 "#);
assert_eq!(actual.out, "4");
}

View file

@ -2,39 +2,27 @@ use nu_test_support::{nu, pipeline};
#[test]
fn base64_defaults_to_encoding_with_standard_character_type() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo 'username:password' | encode base64
"#
)
);
"#);
assert_eq!(actual.out, "dXNlcm5hbWU6cGFzc3dvcmQ=");
}
#[test]
fn base64_encode_characterset_binhex() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo 'username:password' | encode base64 --character-set binhex
"#
)
);
"#);
assert_eq!(actual.out, "F@0NEPjJD97kE\'&bEhFZEP3");
}
#[test]
fn error_when_invalid_character_set_given() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo 'username:password' | encode base64 --character-set 'this is invalid'
"#
)
);
"#);
assert!(actual
.err
@ -43,26 +31,18 @@ fn error_when_invalid_character_set_given() {
#[test]
fn base64_decode_characterset_binhex() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo "F@0NEPjJD97kE'&bEhFZEP3" | decode base64 --character-set binhex --binary | decode utf-8
"#
)
);
"#);
assert_eq!(actual.out, "username:password");
}
#[test]
fn error_invalid_decode_value() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo "this should not be a valid encoded value" | decode base64 --character-set url-safe
"#
)
);
"#);
assert!(actual
.err

View file

@ -45,8 +45,7 @@ fn headers_handles_missing_values() {
#[test]
fn headers_invalid_column_type_empty_record() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
[[a b]; [{}, 2], [3,4] ]
| headers"#
@ -59,8 +58,7 @@ fn headers_invalid_column_type_empty_record() {
#[test]
fn headers_invalid_column_type_record() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
[[a b]; [1 (scope aliases)] [2 2]]
| headers"#
@ -73,8 +71,7 @@ fn headers_invalid_column_type_record() {
#[test]
fn headers_invalid_column_type_array() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
[[a b]; [[f,g], 2], [3,4] ]
| headers"#
@ -87,8 +84,7 @@ fn headers_invalid_column_type_array() {
#[test]
fn headers_invalid_column_type_range() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
[[a b]; [(1..5), 2], [3,4] ]
| headers"#
@ -101,8 +97,7 @@ fn headers_invalid_column_type_range() {
#[test]
fn headers_invalid_column_type_duration() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
[[a b]; [((date now) - (date now)), 2], [3,4] ]
| headers"#
@ -115,8 +110,7 @@ fn headers_invalid_column_type_duration() {
#[test]
fn headers_invalid_column_type_binary() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
[[a b]; [("aa" | into binary), 2], [3,4] ]
| headers"#

View file

@ -4,12 +4,7 @@ use nu_test_support::{nu, nu_repl_code, pipeline};
#[test]
fn help_commands_length() {
let actual = nu!(
cwd: ".", pipeline(
r#"
help commands | length
"#
));
let actual = nu!("help commands | length");
let output = actual.out;
let output_int: i32 = output.parse().unwrap();
@ -68,7 +63,7 @@ fn help_alias_usage_2() {
"alias SPAM = print 'spam' # line2",
"help aliases | where name == SPAM | get 0.usage",
];
let actual = nu!(cwd: ".", nu_repl_code(code));
let actual = nu!(nu_repl_code(code));
assert_eq!(actual.out, "line2");
}
@ -368,7 +363,7 @@ fn help_modules_main_2() {
"help modules | where name == spam | get 0.commands.0",
];
let actual = nu!(cwd: ".", pipeline(&inp.join("; ")));
let actual = nu!(pipeline(&inp.join("; ")));
assert_eq!(actual.out, "spam");
}
@ -381,7 +376,7 @@ fn help_alias_before_command() {
"def SPAM [] { 'spam' }",
"help SPAM",
];
let actual = nu!(cwd: ".", nu_repl_code(code));
let actual = nu!(nu_repl_code(code));
assert!(actual.out.contains("Alias"));
}

View file

@ -121,8 +121,7 @@ fn count() {
#[test]
fn count_with_normalize_percentage() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
echo [[bit]; [1] [0] [0] [0] [0] [0] [0] [1]]
| histogram bit --percentage-type normalize

View file

@ -16,9 +16,7 @@ fn insert_the_column() {
#[test]
fn doesnt_convert_record_to_table() {
let actual = nu!(
cwd: ".", r#"{a:1} | insert b 2 | to nuon"#
);
let actual = nu!(r#"{a:1} | insert b 2 | to nuon"#);
assert_eq!(actual.out, "{a: 1, b: 2}");
}
@ -40,48 +38,36 @@ fn insert_the_column_conflict() {
#[test]
fn insert_into_list() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
[1, 2, 3] | insert 1 abc | to json -r
"#
));
"#);
assert_eq!(actual.out, r#"[1,"abc",2,3]"#);
}
#[test]
fn insert_into_list_begin() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
[1, 2, 3] | insert 0 abc | to json -r
"#
));
"#);
assert_eq!(actual.out, r#"["abc",1,2,3]"#);
}
#[test]
fn insert_into_list_end() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
[1, 2, 3] | insert 3 abc | to json -r
"#
));
"#);
assert_eq!(actual.out, r#"[1,2,3,"abc"]"#);
}
#[test]
fn insert_past_end_list() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
[1, 2, 3] | insert 5 abc | to json -r
"#
));
"#);
assert_eq!(actual.out, r#"[1,2,3,null,null,"abc"]"#);
}
@ -89,9 +75,8 @@ fn insert_past_end_list() {
#[test]
fn insert_uses_enumerate_index() {
let actual = nu!(
cwd: ".", pipeline(
r#"[[a]; [7] [6]] | enumerate | insert b {|el| $el.index + 1 + $el.item.a } | flatten | to nuon"#
));
);
assert_eq!(actual.out, "[[index, a, b]; [0, 7, 8], [1, 6, 8]]");
}

View file

@ -2,44 +2,34 @@ use nu_test_support::{nu, pipeline};
#[test]
fn into_filesize_int() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
1 | into filesize
"#
));
"#);
assert!(actual.out.contains("1 B"));
}
#[test]
fn into_filesize_decimal() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
1.2 | into filesize
"#
));
"#);
assert!(actual.out.contains("1 B"));
}
#[test]
fn into_filesize_str() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
'2000' | into filesize
"#
));
"#);
assert!(actual.out.contains("2.0 KiB"));
}
#[test]
fn into_filesize_str_newline() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
"2000
" | into filesize
@ -51,8 +41,7 @@ fn into_filesize_str_newline() {
#[test]
fn into_filesize_str_many_newlines() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
"2000
@ -65,24 +54,18 @@ fn into_filesize_str_many_newlines() {
#[test]
fn into_filesize_filesize() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
3kib | into filesize
"#
));
"#);
assert!(actual.out.contains("3.0 KiB"));
}
#[test]
fn into_filesize_negative_filesize() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
-3kib | into filesize
"#
));
"#);
assert!(actual.out.contains("-3.0 KiB"));
}

View file

@ -1,52 +1,40 @@
use chrono::{DateTime, FixedOffset, NaiveDate, TimeZone};
use rstest::rstest;
use nu_test_support::{nu, pipeline};
use nu_test_support::nu;
#[test]
fn into_int_filesize() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo 1kb | into int | each { |it| $it / 1000 }
"#
));
"#);
assert!(actual.out.contains('1'));
}
#[test]
fn into_int_filesize2() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo 1kib | into int | each { |it| $it / 1024 }
"#
));
"#);
assert!(actual.out.contains('1'));
}
#[test]
fn into_int_int() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo 1024 | into int | each { |it| $it / 1024 }
"#
));
"#);
assert!(actual.out.contains('1'));
}
#[test]
fn into_int_binary() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo 0x[01010101] | into int
"#
));
"#);
assert!(actual.out.contains("16843009"));
}
@ -80,9 +68,8 @@ fn into_int_datetime1() {
#[case("2052-04-13T12:09:14.123456789-05:00", "2596640954123456789")] // future date > 2038 epoch
#[case("1902-04-13T12:09:14.123456789-05:00", "-2137042245876543211")] // past date < 1970
fn into_int_datetime(#[case] time_in: &str, #[case] int_out: &str) {
let actual = nu!(
cwd: ".", pipeline(
&format!(r#""{time_in}" | into datetime --format "%+" | into int"#)
let actual = nu!(&format!(
r#""{time_in}" | into datetime --format "%+" | into int"#
));
assert_eq!(int_out, actual.out);

View file

@ -1,25 +1,15 @@
use nu_test_support::{nu, pipeline};
use nu_test_support::nu;
#[test]
fn length_columns_in_cal_table() {
let actual = nu!(
cwd: ".", pipeline(
r#"
cal | length -c
"#
));
let actual = nu!("cal | length -c");
assert_eq!(actual.out, "7");
}
#[test]
fn length_columns_no_rows() {
let actual = nu!(
cwd: ".", pipeline(
r#"
echo [] | length -c
"#
));
let actual = nu!("echo [] | length -c");
assert_eq!(actual.out, "0");
}

View file

@ -2,9 +2,7 @@ use nu_test_support::nu;
#[test]
fn loop_doesnt_auto_print_in_each_iteration() {
let actual = nu!(
cwd: ".",
r#"
let actual = nu!(r#"
mut total = 0;
loop {
if $total == 3 {
@ -13,8 +11,7 @@ fn loop_doesnt_auto_print_in_each_iteration() {
$total += 1;
}
echo 1
}"#
);
}"#);
// Make sure we don't see any of these values in the output
// As we do not auto-print loops anymore
assert!(!actual.out.contains('1'));
@ -22,9 +19,7 @@ fn loop_doesnt_auto_print_in_each_iteration() {
#[test]
fn loop_break_on_external_failed() {
let actual = nu!(
cwd: ".",
r#"
let actual = nu!(r#"
mut total = 0;
loop {
if $total == 3 {
@ -34,8 +29,7 @@ fn loop_break_on_external_failed() {
}
print 1;
nu --testbin fail;
}"#
);
}"#);
// Note: nu! macro auto replace "\n" and "\r\n" with ""
// so our output will be `1`.
assert_eq!(actual.out, "1");
@ -43,9 +37,7 @@ fn loop_break_on_external_failed() {
#[test]
fn failed_loop_should_break_running() {
let actual = nu!(
cwd: ".",
r#"
let actual = nu!(r#"
mut total = 0;
loop {
if $total == 3 {
@ -55,7 +47,6 @@ fn failed_loop_should_break_running() {
}
nu --testbin fail;
}
print 3"#
);
print 3"#);
assert!(!actual.out.contains('3'));
}

View file

@ -558,12 +558,7 @@ fn list_ignores_ansi() {
#[test]
fn list_unknown_flag() {
let actual = nu!(
cwd: ".", pipeline(
r#"
ls -r
"#
));
let actual = nu!("ls -r");
assert!(actual
.err

View file

@ -2,10 +2,7 @@ use nu_test_support::nu;
#[test]
fn match_for_range() {
let actual = nu!(
cwd: ".",
r#"match 3 { 1..10 => { print "success" } }"#
);
let actual = nu!(r#"match 3 { 1..10 => { print "success" } }"#);
// Make sure we don't see any of these values in the output
// As we do not auto-print loops anymore
assert_eq!(actual.out, "success");
@ -13,10 +10,7 @@ fn match_for_range() {
#[test]
fn match_for_range_unmatched() {
let actual = nu!(
cwd: ".",
r#"match 11 { 1..10 => { print "failure" }, _ => { print "success" }}"#
);
let actual = nu!(r#"match 11 { 1..10 => { print "failure" }, _ => { print "success" }}"#);
// Make sure we don't see any of these values in the output
// As we do not auto-print loops anymore
assert_eq!(actual.out, "success");
@ -24,10 +18,7 @@ fn match_for_range_unmatched() {
#[test]
fn match_for_record() {
let actual = nu!(
cwd: ".",
r#"match {a: 11} { {a: $b} => { print $b }}"#
);
let actual = nu!(r#"match {a: 11} { {a: $b} => { print $b }}"#);
// Make sure we don't see any of these values in the output
// As we do not auto-print loops anymore
assert_eq!(actual.out, "11");
@ -35,10 +26,7 @@ fn match_for_record() {
#[test]
fn match_for_record_shorthand() {
let actual = nu!(
cwd: ".",
r#"match {a: 12} { {$a} => { print $a }}"#
);
let actual = nu!(r#"match {a: 12} { {$a} => { print $a }}"#);
// Make sure we don't see any of these values in the output
// As we do not auto-print loops anymore
assert_eq!(actual.out, "12");
@ -47,7 +35,6 @@ fn match_for_record_shorthand() {
#[test]
fn match_list() {
let actual = nu!(
cwd: ".",
r#"match [1, 2] { [$a] => { print $"single: ($a)" }, [$b, $c] => {print $"double: ($b) ($c)"}}"#
);
// Make sure we don't see any of these values in the output
@ -58,7 +45,6 @@ fn match_list() {
#[test]
fn match_list_rest_ignore() {
let actual = nu!(
cwd: ".",
r#"match [1, 2] { [$a, ..] => { print $"single: ($a)" }, [$b, $c] => {print $"double: ($b) ($c)"}}"#
);
// Make sure we don't see any of these values in the output
@ -69,7 +55,6 @@ fn match_list_rest_ignore() {
#[test]
fn match_list_rest() {
let actual = nu!(
cwd: ".",
r#"match [1, 2, 3] { [$a, ..$remainder] => { print $"single: ($a) ($remainder | math sum)" }, [$b, $c] => {print $"double: ($b) ($c)"}}"#
);
// Make sure we don't see any of these values in the output
@ -80,7 +65,6 @@ fn match_list_rest() {
#[test]
fn match_constant_1() {
let actual = nu!(
cwd: ".",
r#"match 2 { 1 => { print "failure"}, 2 => { print "success" }, 3 => { print "failure" }}"#
);
// Make sure we don't see any of these values in the output
@ -91,7 +75,6 @@ fn match_constant_1() {
#[test]
fn match_constant_2() {
let actual = nu!(
cwd: ".",
r#"match 2.3 { 1.4 => { print "failure"}, 2.3 => { print "success" }, 3 => { print "failure" }}"#
);
// Make sure we don't see any of these values in the output
@ -102,7 +85,6 @@ fn match_constant_2() {
#[test]
fn match_constant_3() {
let actual = nu!(
cwd: ".",
r#"match true { false => { print "failure"}, true => { print "success" }, 3 => { print "failure" }}"#
);
// Make sure we don't see any of these values in the output
@ -113,7 +95,6 @@ fn match_constant_3() {
#[test]
fn match_constant_4() {
let actual = nu!(
cwd: ".",
r#"match "def" { "abc" => { print "failure"}, "def" => { print "success" }, "ghi" => { print "failure" }}"#
);
// Make sure we don't see any of these values in the output
@ -124,7 +105,6 @@ fn match_constant_4() {
#[test]
fn match_constant_5() {
let actual = nu!(
cwd: ".",
r#"match 2019-08-23 { 2010-01-01 => { print "failure"}, 2019-08-23 => { print "success" }, 2020-02-02 => { print "failure" }}"#
);
// Make sure we don't see any of these values in the output
@ -135,7 +115,6 @@ fn match_constant_5() {
#[test]
fn match_constant_6() {
let actual = nu!(
cwd: ".",
r#"match 6sec { 2sec => { print "failure"}, 6sec => { print "success" }, 1min => { print "failure" }}"#
);
// Make sure we don't see any of these values in the output
@ -146,7 +125,6 @@ fn match_constant_6() {
#[test]
fn match_constant_7() {
let actual = nu!(
cwd: ".",
r#"match 1kib { 1kb => { print "failure"}, 1kib => { print "success" }, 2kb => { print "failure" }}"#
);
// Make sure we don't see any of these values in the output
@ -157,7 +135,6 @@ fn match_constant_7() {
#[test]
fn match_or_pattern() {
let actual = nu!(
cwd: ".",
r#"match {b: 7} { {a: $a} | {b: $b} => { print $"success: ($b)" }, _ => { print "failure" }}"#
);
// Make sure we don't see any of these values in the output
@ -168,7 +145,6 @@ fn match_or_pattern() {
#[test]
fn match_or_pattern_overlap_1() {
let actual = nu!(
cwd: ".",
r#"match {a: 7} { {a: $b} | {b: $b} => { print $"success: ($b)" }, _ => { print "failure" }}"#
);
// Make sure we don't see any of these values in the output
@ -179,7 +155,6 @@ fn match_or_pattern_overlap_1() {
#[test]
fn match_or_pattern_overlap_2() {
let actual = nu!(
cwd: ".",
r#"match {b: 7} { {a: $b} | {b: $b} => { print $"success: ($b)" }, _ => { print "failure" }}"#
);
// Make sure we don't see any of these values in the output
@ -189,10 +164,7 @@ fn match_or_pattern_overlap_2() {
#[test]
fn match_doesnt_overwrite_variable() {
let actual = nu!(
cwd: ".",
r#"let b = 100; match 55 { $b => {} }; print $b"#
);
let actual = nu!(r#"let b = 100; match 55 { $b => {} }; print $b"#);
// Make sure we don't see any of these values in the output
// As we do not auto-print loops anymore
assert_eq!(actual.out, "100");

View file

@ -16,10 +16,7 @@ fn can_average_numbers() {
#[test]
fn can_average_bytes() {
let actual = nu!(
cwd: "tests/fixtures/formats",
"[100kb, 10b, 100mib] | math avg | to json -r"
);
let actual = nu!("[100kb, 10b, 100mib] | math avg | to json -r");
assert_eq!(actual.out, "34985870");
}

View file

@ -2,8 +2,7 @@ use nu_test_support::{nu, pipeline};
#[test]
fn median_numbers_with_even_rows() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
echo [10 6 19 21 4]
| math median
@ -15,8 +14,7 @@ fn median_numbers_with_even_rows() {
#[test]
fn median_numbers_with_odd_rows() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
echo [3 8 9 12 12 15]
| math median
@ -28,8 +26,7 @@ fn median_numbers_with_odd_rows() {
#[test]
fn median_mixed_numbers() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
echo [-11.5 -13.5 10]
| math median

View file

@ -8,8 +8,7 @@ use nu_test_support::{nu, pipeline};
#[test]
fn one_arg() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1
"#
@ -20,8 +19,7 @@ fn one_arg() {
#[test]
fn add() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1 + 1
"#
@ -32,8 +30,7 @@ fn add() {
#[test]
fn add_compound() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1 + 2 + 2
"#
@ -44,8 +41,7 @@ fn add_compound() {
#[test]
fn precedence_of_operators() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1 + 2 * 2
"#
@ -56,8 +52,7 @@ fn precedence_of_operators() {
#[test]
fn precedence_of_operators2() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1 + 2 * 2 + 1
"#
@ -68,8 +63,7 @@ fn precedence_of_operators2() {
#[test]
fn precedence_of_operators3() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
5 - 5 * 10 + 5
"#
@ -80,8 +74,7 @@ fn precedence_of_operators3() {
#[test]
fn precedence_of_operators4() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
5 - (5 * 10) + 5
"#
@ -92,8 +85,7 @@ fn precedence_of_operators4() {
#[test]
fn division_of_ints() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
4 / 2
"#
@ -104,8 +96,7 @@ fn division_of_ints() {
#[test]
fn division_of_ints2() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1 / 4
"#
@ -116,8 +107,7 @@ fn division_of_ints2() {
#[test]
fn error_zero_division_int_int() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1 / 0
"#
@ -128,8 +118,7 @@ fn error_zero_division_int_int() {
#[test]
fn error_zero_division_decimal_int() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1.0 / 0
"#
@ -140,8 +129,7 @@ fn error_zero_division_decimal_int() {
#[test]
fn error_zero_division_int_decimal() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1 / 0.0
"#
@ -152,8 +140,7 @@ fn error_zero_division_int_decimal() {
#[test]
fn error_zero_division_decimal_decimal() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1.0 / 0.0
"#
@ -164,8 +151,7 @@ fn error_zero_division_decimal_decimal() {
#[test]
fn floor_division_of_ints() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
5 // 2
"#
@ -176,8 +162,7 @@ fn floor_division_of_ints() {
#[test]
fn floor_division_of_ints2() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
-3 // 2
"#
@ -188,8 +173,7 @@ fn floor_division_of_ints2() {
#[test]
fn floor_division_of_floats() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
-3.0 // 2.0
"#
@ -200,8 +184,7 @@ fn floor_division_of_floats() {
#[test]
fn error_zero_floor_division_int_int() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1 // 0
"#
@ -212,8 +195,7 @@ fn error_zero_floor_division_int_int() {
#[test]
fn error_zero_floor_division_decimal_int() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1.0 // 0
"#
@ -224,8 +206,7 @@ fn error_zero_floor_division_decimal_int() {
#[test]
fn error_zero_floor_division_int_decimal() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1 // 0.0
"#
@ -236,8 +217,7 @@ fn error_zero_floor_division_int_decimal() {
#[test]
fn error_zero_floor_division_decimal_decimal() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1.0 // 0.0
"#
@ -247,8 +227,7 @@ fn error_zero_floor_division_decimal_decimal() {
}
#[test]
fn proper_precedence_history() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
2 / 2 / 2 + 1
"#
@ -259,8 +238,7 @@ fn proper_precedence_history() {
#[test]
fn parens_precedence() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
4 * (6 - 3)
"#
@ -271,8 +249,7 @@ fn parens_precedence() {
#[test]
fn modulo() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
9 mod 2
"#
@ -283,8 +260,7 @@ fn modulo() {
#[test]
fn unit_multiplication_math() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1mb * 2
"#
@ -295,8 +271,7 @@ fn unit_multiplication_math() {
#[test]
fn unit_multiplication_float_math() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1mb * 1.2
"#
@ -307,8 +282,7 @@ fn unit_multiplication_float_math() {
#[test]
fn unit_float_floor_division_math() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1mb // 3.0
"#
@ -319,8 +293,7 @@ fn unit_float_floor_division_math() {
#[test]
fn unit_division_math() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1mb / 4
"#
@ -331,8 +304,7 @@ fn unit_division_math() {
#[test]
fn unit_float_division_math() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1mb / 3.1
"#
@ -343,8 +315,7 @@ fn unit_float_division_math() {
#[test]
fn duration_math() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1wk + 1day
"#
@ -355,8 +326,7 @@ fn duration_math() {
#[test]
fn duration_decimal_math() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
5.5day + 0.5day
"#
@ -367,8 +337,7 @@ fn duration_decimal_math() {
#[test]
fn duration_math_with_nanoseconds() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1wk + 10ns
"#
@ -379,8 +348,7 @@ fn duration_math_with_nanoseconds() {
#[test]
fn duration_decimal_math_with_nanoseconds() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1.5wk + 10ns
"#
@ -391,8 +359,7 @@ fn duration_decimal_math_with_nanoseconds() {
#[test]
fn duration_decimal_math_with_all_units() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1wk + 3day + 8hr + 10min + 16sec + 121ms + 11us + 12ns
"#
@ -403,8 +370,7 @@ fn duration_decimal_math_with_all_units() {
#[test]
fn duration_decimal_dans_test() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
3.14sec
"#
@ -415,8 +381,7 @@ fn duration_decimal_dans_test() {
#[test]
fn duration_math_with_negative() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1day - 1wk
"#
@ -427,8 +392,7 @@ fn duration_math_with_negative() {
#[test]
fn compound_comparison() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
4 > 3 and 2 > 1
"#
@ -439,8 +403,7 @@ fn compound_comparison() {
#[test]
fn compound_comparison2() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
4 < 3 or 2 > 1
"#
@ -451,8 +414,7 @@ fn compound_comparison2() {
#[test]
fn compound_where() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
echo '[{"a": 1, "b": 1}, {"a": 2, "b": 1}, {"a": 2, "b": 2}]' | from json | where a == 2 and b == 1 | to json -r
"#
@ -463,8 +425,7 @@ fn compound_where() {
#[test]
fn compound_where_paren() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
echo '[{"a": 1, "b": 1}, {"a": 2, "b": 1}, {"a": 2, "b": 2}]' | from json | where ($it.a == 2 and $it.b == 1) or $it.b == 2 | to json -r
"#
@ -477,8 +438,7 @@ fn compound_where_paren() {
#[test]
fn adding_lists() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
[1 3] ++ [5 6] | to nuon
"#
@ -489,8 +449,7 @@ fn adding_lists() {
#[test]
fn adding_list_and_value() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
[1 3] ++ 5 | to nuon
"#
@ -501,8 +460,7 @@ fn adding_list_and_value() {
#[test]
fn adding_value_and_list() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1 ++ [3 5] | to nuon
"#
@ -513,8 +471,7 @@ fn adding_value_and_list() {
#[test]
fn adding_tables() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
[[a b]; [1 2]] ++ [[c d]; [10 11]] | to nuon
"#
@ -524,8 +481,7 @@ fn adding_tables() {
#[test]
fn append_strings() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
"foo" ++ "bar"
"#
@ -535,8 +491,7 @@ fn append_strings() {
#[test]
fn append_binary_values() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
0x[01 02] ++ 0x[03 04] | to nuon
"#
@ -546,28 +501,16 @@ fn append_binary_values() {
#[test]
fn int_multiple_string() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
r#"3 * "ab""#
));
let actual = nu!(pipeline(r#"3 * "ab""#));
assert_eq!(actual.out, "ababab");
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
r#""ab" * 3"#
));
let actual = nu!(pipeline(r#""ab" * 3"#));
assert_eq!(actual.out, "ababab");
}
#[test]
fn int_multiple_list() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
r#"3 * [1 2] | to nuon"#
));
let actual = nu!(pipeline(r#"3 * [1 2] | to nuon"#));
assert_eq!(actual.out, "[1, 2, 1, 2, 1, 2]");
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
r#"[1 2] * 3 | to nuon"#
));
let actual = nu!(pipeline(r#"[1 2] * 3 | to nuon"#));
assert_eq!(actual.out, "[1, 2, 1, 2, 1, 2]");
}

View file

@ -2,30 +2,21 @@ use nu_test_support::nu;
#[test]
fn can_sqrt_numbers() {
let actual = nu!(
cwd: ".",
"echo [0.25 2 4] | math sqrt | math sum"
);
let actual = nu!("echo [0.25 2 4] | math sqrt | math sum");
assert_eq!(actual.out, "3.914213562373095");
}
#[test]
fn can_sqrt_irrational() {
let actual = nu!(
cwd: ".",
"echo 2 | math sqrt"
);
let actual = nu!("echo 2 | math sqrt");
assert_eq!(actual.out, "1.4142135623730951");
}
#[test]
fn can_sqrt_perfect_square() {
let actual = nu!(
cwd: ".",
"echo 4 | math sqrt"
);
let actual = nu!("echo 4 | math sqrt");
assert_eq!(actual.out, "2");
}

View file

@ -44,12 +44,9 @@ fn row() {
#[test]
fn single_record_no_overwrite() {
assert_eq!(
nu!(
cwd: ".", pipeline(
r#"
nu!(r#"
{a: 1, b: 5} | merge {c: 2} | to nuon
"#
))
"#)
.out,
"{a: 1, b: 5, c: 2}"
);
@ -58,12 +55,9 @@ fn single_record_no_overwrite() {
#[test]
fn single_record_overwrite() {
assert_eq!(
nu!(
cwd: ".", pipeline(
r#"
nu!(r#"
{a: 1, b: 2} | merge {a: 2} | to nuon
"#
))
"#)
.out,
"{a: 2, b: 2}"
);
@ -72,12 +66,9 @@ fn single_record_overwrite() {
#[test]
fn single_row_table_overwrite() {
assert_eq!(
nu!(
cwd: ".", pipeline(
r#"
nu!(r#"
[[a b]; [1 4]] | merge [[a b]; [2 4]] | to nuon
"#
))
"#)
.out,
"[[a, b]; [2, 4]]"
);
@ -86,12 +77,9 @@ fn single_row_table_overwrite() {
#[test]
fn single_row_table_no_overwrite() {
assert_eq!(
nu!(
cwd: ".", pipeline(
r#"
nu!(r#"
[[a b]; [1 4]] | merge [[c d]; [2 4]] | to nuon
"#
))
"#)
.out,
"[[a, b, c, d]; [1, 4, 2, 4]]"
);
@ -100,12 +88,9 @@ fn single_row_table_no_overwrite() {
#[test]
fn multi_row_table_no_overwrite() {
assert_eq!(
nu!(
cwd: ".", pipeline(
r#"
nu!(r#"
[[a b]; [1 4] [8 9] [9 9]] | merge [[c d]; [2 4]] | to nuon
"#
))
"#)
.out,
"[{a: 1, b: 4, c: 2, d: 4}, {a: 8, b: 9}, {a: 9, b: 9}]"
);
@ -114,12 +99,9 @@ fn multi_row_table_no_overwrite() {
#[test]
fn multi_row_table_overwrite() {
assert_eq!(
nu!(
cwd: ".", pipeline(
r#"
nu!(r#"
[[a b]; [1 4] [8 9] [9 9]] | merge [[a b]; [7 7]] | to nuon
"#
))
"#)
.out,
"[[a, b]; [7, 7], [8, 9], [9, 9]]"
);

View file

@ -1,25 +1,19 @@
use nu_test_support::{nu, pipeline};
use nu_test_support::nu;
#[test]
fn mut_variable() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
mut x = 3; $x = $x + 1; $x
"#
));
"#);
assert_eq!(actual.out, "4");
}
#[test]
fn mut_name_builtin_var() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
mut in = 3
"#
));
"#);
assert!(actual
.err
@ -28,12 +22,9 @@ fn mut_name_builtin_var() {
#[test]
fn mut_name_builtin_var_with_dollar() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
mut $env = 3
"#
));
"#);
assert!(actual
.err
@ -42,139 +33,106 @@ fn mut_name_builtin_var_with_dollar() {
#[test]
fn mut_variable_in_loop() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
mut x = 1; for i in 1..10 { $x = $x + $i}; $x
"#
));
"#);
assert_eq!(actual.out, "56");
}
#[test]
fn capture_of_mutable_var() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
mut x = 123; {|| $x }
"#
));
"#);
assert!(actual.err.contains("capture of mutable variable"));
}
#[test]
fn mut_add_assign() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
mut y = 3; $y += 2; $y
"#
));
"#);
assert_eq!(actual.out, "5");
}
#[test]
fn mut_minus_assign() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
mut y = 3; $y -= 2; $y
"#
));
"#);
assert_eq!(actual.out, "1");
}
#[test]
fn mut_multiply_assign() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
mut y = 3; $y *= 2; $y
"#
));
"#);
assert_eq!(actual.out, "6");
}
#[test]
fn mut_divide_assign() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
mut y = 8; $y /= 2; $y
"#
));
"#);
assert_eq!(actual.out, "4");
}
#[test]
fn mut_path_insert() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
mut y = {abc: 123}; $y.abc = 456; $y.abc
"#
));
"#);
assert_eq!(actual.out, "456");
}
#[test]
fn mut_path_insert_list() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
mut a = [0 1 2]; $a.3 = 3; $a | to nuon
"#
));
"#);
assert_eq!(actual.out, "[0, 1, 2, 3]");
}
#[test]
fn mut_path_upsert() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
mut a = {b:[{c:1}]}; $a.b.0.d = 11; $a.b.0.d
"#
));
"#);
assert_eq!(actual.out, "11");
}
#[test]
fn mut_path_upsert_list() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
mut a = [[[3] 2] 1]; $a.0.0.1 = 0; $a.0.2 = 0; $a.2 = 0; $a | to nuon
"#
));
"#);
assert_eq!(actual.out, "[[[3, 0], 2, 0], 1, 0]");
}
#[test]
fn mut_path_operator_assign() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
mut a = {b:1}; $a.b += 3; $a.b -= 2; $a.b *= 10; $a.b /= 4; $a.b
"#
));
"#);
assert_eq!(actual.out, "5");
}
#[test]
fn mut_records_update_properly() {
let actual = nu!(pipeline("mut a = {}; $a.b.c = 100; $a.b.c"));
let actual = nu!("mut a = {}; $a.b.c = 100; $a.b.c");
assert_eq!(actual.out, "100");
}

View file

@ -4,12 +4,7 @@ use std::sync::mpsc;
#[test]
fn port_with_invalid_range() {
let actual = nu!(
cwd: ".", pipeline(
r#"
port 4000 3999
"#
));
let actual = nu!("port 4000 3999");
assert!(actual.err.contains("Invalid range"))
}
@ -29,9 +24,7 @@ fn port_with_already_usage() {
let _listener = TcpListener::bind(format!("127.0.0.1:{free_port}"));
let _ = rx.recv();
});
let actual = nu!(
cwd: ".", pipeline(&format!("port {free_port} {free_port}"))
);
let actual = nu!(pipeline(&format!("port {free_port} {free_port}")));
let _ = tx.send(true);
// make sure that the thread is closed and we release the port.
handler.join().unwrap();
@ -46,12 +39,7 @@ fn port_with_already_usage() {
#[test]
fn port_from_system_given() {
let actual = nu!(
cwd: ".", pipeline(
r#"
port
"#
));
let actual = nu!("port");
// check that we can get an integer port from system.
assert!(actual.out.parse::<u16>().unwrap() > 0)

View file

@ -291,12 +291,9 @@ fn open_ignore_ansi() {
#[test]
fn open_no_parameter() {
let actual = nu!(
cwd: "tests/fixtures/formats",
r#"
let actual = nu!(r#"
open
"#
);
"#);
assert!(actual.err.contains("needs filename"));
}

View file

@ -1,12 +1,9 @@
use nu_test_support::{nu, pipeline};
use nu_test_support::nu;
#[test]
fn par_each_does_not_flatten_nested_structures() {
// This is a regression test for issue #8497
let actual = nu!(
cwd: ".", pipeline(
r#"[1 2 3] | par-each { |it| [$it, $it] } | sort | to json --raw"#
));
let actual = nu!(r#"[1 2 3] | par-each { |it| [$it, $it] } | sort | to json --raw"#);
assert_eq!(actual.out, "[[1,1],[2,2],[3,3]]");
}

View file

@ -192,10 +192,8 @@ mod regex {
#[test]
fn parse_works_with_streaming() {
let actual = nu!(
cwd: ".", pipeline(
r#"seq char a z | each {|c| $c + " a"} | parse '{letter} {a}' | describe"#
));
let actual =
nu!(r#"seq char a z | each {|c| $c + " a"} | parse '{letter} {a}' | describe"#);
assert_eq!(actual.out, "table<letter: string, a: string> (stream)")
}

View file

@ -54,6 +54,6 @@ fn checks_if_double_dot_exists() {
#[test]
fn checks_tilde_relative_path_exists() {
let actual = nu!(cwd: ".", "'~' | path exists");
let actual = nu!("'~' | path exists");
assert_eq!(actual.out, "true");
}

View file

@ -2,8 +2,7 @@ use nu_test_support::{nu, pipeline};
#[test]
fn test_ansi_shows_error_on_escape() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
ansi -e \
"#

View file

@ -1,23 +1,15 @@
use nu_test_support::{nu, pipeline};
use nu_test_support::nu;
#[test]
fn print_to_stdout() {
let actual = nu!(
cwd: ".", pipeline(
"print 'hello world'"
)
);
let actual = nu!("print 'hello world'");
assert!(actual.out.contains("hello world"));
assert!(actual.err.is_empty());
}
#[test]
fn print_to_stderr() {
let actual = nu!(
cwd: ".", pipeline(
"print -e 'hello world'"
)
);
let actual = nu!("print -e 'hello world'");
assert!(actual.out.is_empty());
assert!(actual.err.contains("hello world"));
}

View file

@ -1,13 +1,8 @@
use nu_test_support::{nu, pipeline};
use nu_test_support::nu;
#[test]
fn generates_a_bool() {
let actual = nu!(
cwd: ".", pipeline(
r#"
random bool
"#
));
let actual = nu!("random bool");
let output = actual.out;
let is_boolean_output = output == "true" || output == "false";

View file

@ -1,13 +1,10 @@
use nu_test_support::{nu, pipeline};
use nu_test_support::nu;
#[test]
fn generates_chars_of_specified_length() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
random chars -l 15 | size | get chars
"#
));
"#);
let result = actual.out;
assert_eq!(result, "15");

View file

@ -1,37 +1,22 @@
use nu_test_support::{nu, pipeline};
use nu_test_support::nu;
#[test]
fn generates_a_decimal() {
let actual = nu!(
cwd: ".", pipeline(
r#"
random decimal 42..43
"#
));
let actual = nu!("random decimal 42..43");
assert!(actual.out.contains("42") || actual.out.contains("43"));
}
#[test]
fn generates_55() {
let actual = nu!(
cwd: ".", pipeline(
r#"
random decimal 55..55
"#
));
let actual = nu!("random decimal 55..55");
assert!(actual.out.contains("55"));
}
#[test]
fn generates_0() {
let actual = nu!(
cwd: ".", pipeline(
r#"
random decimal ..<1
"#
));
let actual = nu!(" random decimal ..<1 ");
assert!(actual.out.contains('0'));
}

View file

@ -1,13 +1,10 @@
use nu_test_support::{nu, pipeline};
use nu_test_support::nu;
#[test]
fn rolls_4_roll() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
random dice -d 4 -s 10 | length
"#
));
"#);
assert_eq!(actual.out, "4");
}

View file

@ -1,37 +1,22 @@
use nu_test_support::{nu, pipeline};
use nu_test_support::nu;
#[test]
fn generates_an_integer() {
let actual = nu!(
cwd: ".", pipeline(
r#"
random integer 42..43
"#
));
let actual = nu!("random integer 42..43");
assert!(actual.out.contains("42") || actual.out.contains("43"));
}
#[test]
fn generates_55() {
let actual = nu!(
cwd: ".", pipeline(
r#"
random integer 55..55
"#
));
let actual = nu!("random integer 55..55");
assert!(actual.out.contains("55"));
}
#[test]
fn generates_0() {
let actual = nu!(
cwd: ".", pipeline(
r#"
random integer ..<1
"#
));
let actual = nu!("random integer ..<1");
assert!(actual.out.contains('0'));
}

View file

@ -3,12 +3,7 @@ use uuid_crate::Uuid;
#[test]
fn generates_valid_uuid4() {
let actual = nu!(
cwd: ".", pipeline(
r#"
random uuid
"#
));
let actual = nu!("random uuid");
let result = Uuid::parse_str(actual.out.as_str());

View file

@ -2,8 +2,7 @@ use nu_test_support::{nu, pipeline};
#[test]
fn reduce_table_column() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
echo "[{month:2,total:30}, {month:3,total:10}, {month:4,total:3}, {month:5,total:60}]"
| from json
@ -11,45 +10,39 @@ fn reduce_table_column() {
| reduce -f 20 { |it, acc| $it + $acc ** 1.05}
| into string -d 1
"#
)
);
));
assert_eq!(actual.out, "180.6");
}
#[test]
fn reduce_table_column_with_path() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
[{month:2,total:30}, {month:3,total:10}, {month:4,total:3}, {month:5,total:60}]
| reduce -f 20 { |it, acc| $it.total + $acc ** 1.05}
| into string -d 1
"#
)
);
));
assert_eq!(actual.out, "180.6");
}
#[test]
fn reduce_rows_example() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
[[a,b]; [1,2] [3,4]]
| reduce -f 1.6 { |it, acc| $acc * ($it.a | into int) + ($it.b | into int) }
"#
)
);
));
assert_eq!(actual.out, "14.8");
}
#[test]
fn reduce_with_return_in_closure() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
[1, 2] | reduce --fold null { |it, state|
if $it == 1 {
@ -58,8 +51,7 @@ fn reduce_with_return_in_closure() {
return ($it * $state)
}
"#
)
);
));
assert_eq!(actual.out, "20");
assert!(actual.err.is_empty());
@ -67,39 +59,34 @@ fn reduce_with_return_in_closure() {
#[test]
fn reduce_enumerate_example() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
echo one longest three bar | enumerate
| reduce { |it, acc| if ($it.item | str length) > ($acc.item | str length) {echo $it} else {echo $acc}}
| get index
"#
)
);
));
assert_eq!(actual.out, "1");
}
#[test]
fn reduce_enumerate_integer_addition_example() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
echo [1 2 3 4]
| enumerate
| reduce { |it, acc| { index: ($it.index) item: ($acc.item + $it.item)} }
| get item
"#
)
);
));
assert_eq!(actual.out, "10");
}
#[test]
fn folding_with_tables() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
echo [10 20 30 40]
| reduce -f [] { |it, acc|
@ -109,47 +96,40 @@ fn folding_with_tables() {
}
| math sum
"#
)
);
));
assert_eq!(actual.out, "1000");
}
#[test]
fn error_reduce_fold_type_mismatch() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
echo a b c | reduce -f 0 { |it, acc| $acc + $it }
"#
)
);
));
assert!(actual.err.contains("mismatch"));
}
#[test]
fn error_reduce_empty() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
reduce { |it, acc| $acc + $it }
"#
)
);
));
assert!(actual.err.contains("needs input"));
}
#[test]
fn enumerate_reduce_example() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
[one longest three bar] | enumerate | reduce {|it, acc| if ($it.item | str length) > ($acc.item | str length) { $it } else { $acc }} | get index
"#
)
);
));
assert_eq!(actual.out, "1");
}

View file

@ -2,24 +2,18 @@ use nu_test_support::{nu, pipeline};
#[test]
fn early_return_if_true() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
def foo [x] { if true { return 2 }; $x }; foo 100
"#
));
"#);
assert_eq!(actual.out, r#"2"#);
}
#[test]
fn early_return_if_false() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
def foo [x] { if false { return 2 }; $x }; foo 100
"#
));
"#);
assert_eq!(actual.out, r#"100"#);
}

View file

@ -1,4 +1,4 @@
use nu_test_support::{nu, pipeline};
use nu_test_support::nu;
#[test]
fn can_get_reverse_first() {
@ -12,7 +12,7 @@ fn can_get_reverse_first() {
#[test]
fn fail_on_non_iterator() {
let actual = nu!(cwd: ".", pipeline("1 | reverse"));
let actual = nu!("1 | reverse");
assert!(actual.err.contains("command doesn't support"));
}

View file

@ -19,26 +19,34 @@ mod rows {
#[test]
fn can_roll_down() {
let actual = nu!(
cwd: ".",
format!("{} | {}", table(), pipeline(r#"
let actual = nu!(format!(
"{} | {}",
table(),
pipeline(
r#"
roll down
| first
| get status
"#)));
"#
)
));
assert_eq!(actual.out, "HERE");
}
#[test]
fn can_roll_up() {
let actual = nu!(
cwd: ".",
format!("{} | {}", table(), pipeline(r#"
let actual = nu!(format!(
"{} | {}",
table(),
pipeline(
r#"
roll up --by 3
| first
| get status
"#)));
"#
)
));
assert_eq!(actual.out, "HERE");
}
@ -64,26 +72,34 @@ mod columns {
#[test]
fn can_roll_left() {
let actual = nu!(
cwd: ".",
format!("{} | {}", table(), pipeline(r#"
let actual = nu!(format!(
"{} | {}",
table(),
pipeline(
r#"
roll left
| columns
| str join "-"
"#)));
"#
)
));
assert_eq!(actual.out, "origin-stars-commit_author");
}
#[test]
fn can_roll_right() {
let actual = nu!(
cwd: ".",
format!("{} | {}", table(), pipeline(r#"
let actual = nu!(format!(
"{} | {}",
table(),
pipeline(
r#"
roll right --by 2
| columns
| str join "-"
"#)));
"#
)
));
assert_eq!(actual.out, "origin-stars-commit_author");
}
@ -95,10 +111,9 @@ mod columns {
let four_bitstring = bitstring_to_nu_row_pipeline("00000100");
let expected_value = ThirtyTwo(32, "bit1-bit2-bit3-bit4-bit5-bit6-bit7-bit8");
let actual = nu!(
cwd: ".",
format!("{four_bitstring} | roll right --by 3 --cells-only | columns | str join '-' ")
);
let actual = nu!(format!(
"{four_bitstring} | roll right --by 3 --cells-only | columns | str join '-' "
));
assert_eq!(actual.out, expected_value.1);
}
@ -146,7 +161,6 @@ mod columns {
"{bitstring_as_nu_row_pipeline} | roll left --by 3 | {nu_row_literal_bitstring_to_decimal_value_pipeline}"
);
nu!(
cwd: ".",
format!("{bitstring_as_nu_row_pipeline} | roll left --by 3 | {nu_row_literal_bitstring_to_decimal_value_pipeline}")
).out
}

View file

@ -14,7 +14,7 @@ fn counter_clockwise() {
"#,
);
let expected = nu!(cwd: ".", pipeline(
let expected = nu!(pipeline(
r#"
echo [
[ column0, column1, column2, column3];
@ -29,14 +29,18 @@ fn counter_clockwise() {
"#,
));
let actual = nu!(
cwd: ".",
format!("{} | {}", table, pipeline(r#"
let actual = nu!(format!(
"{} | {}",
table,
pipeline(
r#"
rotate --ccw
| where column0 == EXPECTED
| get column1 column2 column3
| str join "-"
"#)));
"#
)
));
assert_eq!(actual.out, expected.out);
}
@ -55,7 +59,7 @@ fn clockwise() {
"#,
);
let expected = nu!(cwd: ".", pipeline(
let expected = nu!(pipeline(
r#"
echo [
[ column0, column1, column2, column3];
@ -70,14 +74,18 @@ fn clockwise() {
"#,
));
let actual = nu!(
cwd: ".",
format!("{} | {}", table, pipeline(r#"
let actual = nu!(format!(
"{} | {}",
table,
pipeline(
r#"
rotate
| where column3 == EXPECTED
| get column0 column1 column2
| str join "-"
"#)));
"#
)
));
assert_eq!(actual.out, expected.out);
}

View file

@ -312,7 +312,7 @@ fn can_run_batch_files_without_bat_extension() {
#[test]
fn quotes_trimmed_when_shelling_out() {
// regression test for a bug where we weren't trimming quotes around string args before shelling out to cmd.exe
let actual = nu!(cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
^echo "foo"
"#

View file

@ -17,7 +17,7 @@ fn binary_skip() {
#[test]
fn fail_on_non_iterator() {
let actual = nu!(cwd: ".", pipeline("1 | skip 2"));
let actual = nu!("1 | skip 2");
assert!(actual.err.contains("command doesn't support"));
}

View file

@ -52,7 +52,7 @@ fn condition_is_met() {
#[test]
fn fail_on_non_iterator() {
let actual = nu!(cwd: ".", pipeline("1 | skip until {|row| $row == 2}"));
let actual = nu!("1 | skip until {|row| $row == 2}");
assert!(actual.err.contains("command doesn't support"));
}

View file

@ -52,7 +52,7 @@ fn condition_is_met() {
#[test]
fn fail_on_non_iterator() {
let actual = nu!(cwd: ".", pipeline("1 | skip while {|row| $row == 2}"));
let actual = nu!("1 | skip while {|row| $row == 2}");
assert!(actual.err.contains("command doesn't support"));
}

View file

@ -2,39 +2,33 @@ use nu_test_support::{nu, pipeline};
#[test]
fn test_1() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
echo 1..5 | into string | str join
"#
)
);
));
assert_eq!(actual.out, "12345");
}
#[test]
fn test_2() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
echo [a b c d] | str join "<sep>"
"#
)
);
));
assert_eq!(actual.out, "a<sep>b<sep>c<sep>d");
}
#[test]
fn construct_a_path() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
echo [sample txt] | str join "."
"#
)
);
));
assert_eq!(actual.out, "sample.txt");
}

View file

@ -4,65 +4,45 @@ use nu_test_support::{nu, pipeline};
#[test]
fn from_range() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo 1..5 | into string | to json -r
"#
)
);
"#);
assert_eq!(actual.out, "[\"1\",\"2\",\"3\",\"4\",\"5\"]");
}
#[test]
fn from_number() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo 5 | into string
"#
)
);
"#);
assert_eq!(actual.out, "5");
}
#[test]
fn from_decimal() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo 1.5 | into string
"#
)
);
"#);
assert_eq!(actual.out, "1.5");
}
#[test]
fn from_boolean() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo true | into string
"#
)
);
"#);
assert_eq!(actual.out, "true");
}
#[test]
fn from_string() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo "one" | into string
"#
)
);
"#);
assert_eq!(actual.out, "one");
}
@ -111,44 +91,34 @@ fn from_filesize() {
#[test]
fn from_decimal_correct_trailing_zeros() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
1.23000 | into string -d 3
"#
));
"#);
assert!(actual.out.contains("1.230"));
}
#[test]
fn from_int_decimal_correct_trailing_zeros() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
1.00000 | into string -d 3
"#
));
"#);
assert!(actual.out.contains("1.000"));
}
#[test]
fn from_int_decimal_trim_trailing_zeros() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
1.00000 | into string | $"($in) flat"
"#
));
"#);
assert!(actual.out.contains("1 flat")); // "1" would match "1.0"
}
#[test]
fn from_table() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
echo '[{"name": "foo", "weight": 32.377}, {"name": "bar", "weight": 15.2}]'
| from json
@ -162,24 +132,18 @@ fn from_table() {
#[test]
fn from_nothing() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
null | into string
"#
));
"#);
assert_eq!(actual.out, "");
}
#[test]
fn int_into_string() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
10 | into string
"#
));
"#);
assert_eq!(actual.out, "10");
}

View file

@ -27,13 +27,11 @@ fn trims() {
#[test]
fn error_trim_multiple_chars() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
echo "does it work now?!" | str trim -c "?!"
"#
)
);
));
assert!(actual.err.contains("char"));
}
@ -120,8 +118,7 @@ fn camelcases() {
#[test]
fn converts_to_int() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
echo '[{number_as_string: "1"}]'
| from json
@ -138,8 +135,7 @@ fn converts_to_int() {
#[test]
fn converts_to_decimal() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
echo "3.1, 0.0415"
| split row ","
@ -366,24 +362,18 @@ fn substrings_the_input_and_treats_end_index_as_length_if_blank_end_index_given(
#[test]
fn str_reverse() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo "nushell" | str reverse
"#
));
"#);
assert!(actual.out.contains("llehsun"));
}
#[test]
fn test_redirection_trim() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
let x = (nu --testbin cococo niceone); $x | str trim | str length
"#
));
"#);
assert_eq!(actual.out, "7");
}

View file

@ -32,24 +32,14 @@ fn rows() {
#[test]
fn rows_with_no_arguments_should_lead_to_error() {
Playground::setup("take_test_2", |dirs, _sandbox| {
let actual = nu!(
cwd: dirs.test(), pipeline(
r#"[1 2 3] | take"#
));
let actual = nu!("[1 2 3] | take");
assert!(actual.err.contains("missing_positional"));
})
assert!(actual.err.contains("missing_positional"));
}
#[test]
fn fails_on_string() {
let actual = nu!(
cwd: ".", pipeline(
r#"
"foo bar" | take 2
"#
));
let actual = nu!(r#""foo bar" | take 2"#);
assert!(actual.err.contains("command doesn't support"));
}
@ -57,12 +47,9 @@ fn fails_on_string() {
#[test]
// covers a situation where `take` used to behave strangely on list<binary> input
fn works_with_binary_list() {
let actual = nu!(
cwd: ".", pipeline(
r#"
([0x[01 11]] | take 1 | get 0) == 0x[01 11]
"#
));
let actual = nu!(r#"
([0x[01 11]] | take 1 | get 0) == 0x[01 11]
"#);
assert_eq!(actual.out, "true");
}

View file

@ -53,7 +53,7 @@ fn condition_is_met() {
#[test]
fn fail_on_non_iterator() {
let actual = nu!(cwd: ".", pipeline("1 | take until {|row| $row == 2}"));
let actual = nu!("1 | take until {|row| $row == 2}");
assert!(actual.err.contains("command doesn't support"));
}

View file

@ -52,7 +52,7 @@ fn condition_is_met() {
#[test]
fn fail_on_non_iterator() {
let actual = nu!(cwd: ".", pipeline("1 | take while {|row| $row == 2}"));
let actual = nu!("1 | take while {|row| $row == 2}");
assert!(actual.err.contains("command doesn't support"));
}

View file

@ -2,83 +2,61 @@ use nu_test_support::nu;
#[test]
fn try_succeed() {
let output = nu!(
cwd: ".",
"try { 345 } catch { echo 'hello' }"
);
let output = nu!("try { 345 } catch { echo 'hello' }");
assert!(output.out.contains("345"));
}
#[test]
fn try_catch() {
let output = nu!(
cwd: ".",
"try { foobarbaz } catch { echo 'hello' }"
);
let output = nu!("try { foobarbaz } catch { echo 'hello' }");
assert!(output.out.contains("hello"));
}
#[test]
fn catch_can_access_error() {
let output = nu!(
cwd: ".",
"try { foobarbaz } catch { |err| $err | get raw }"
);
let output = nu!("try { foobarbaz } catch { |err| $err | get raw }");
assert!(output.err.contains("External command failed"));
}
#[test]
fn catch_can_access_error_as_dollar_in() {
let output = nu!(
cwd: ".",
"try { foobarbaz } catch { $in | get raw }"
);
let output = nu!("try { foobarbaz } catch { $in | get raw }");
assert!(output.err.contains("External command failed"));
}
#[test]
fn external_failed_should_be_caught() {
let output = nu!(
cwd: ".",
"try { nu --testbin fail; echo 'success' } catch { echo 'fail' }"
);
let output = nu!("try { nu --testbin fail; echo 'success' } catch { echo 'fail' }");
assert!(output.out.contains("fail"));
}
#[test]
fn loop_try_break_should_be_successful() {
let output = nu!(
cwd: ".",
"loop { try { print 'successful'; break } catch { print 'failed'; continue } }"
);
let output =
nu!("loop { try { print 'successful'; break } catch { print 'failed'; continue } }");
assert_eq!(output.out, "successful");
}
#[test]
fn loop_catch_break_should_show_failed() {
let output = nu!(
cwd: ".",
"loop {
let output = nu!("loop {
try { invalid 1;
continue; } catch { print 'failed'; break }
}
"
);
");
assert_eq!(output.out, "failed");
}
#[test]
fn loop_try_ignores_continue() {
let output = nu!(
cwd: ".",
"mut total = 0;
let output = nu!("mut total = 0;
for i in 0..10 {
try { if ($i mod 2) == 0 {
continue;}
@ -86,27 +64,20 @@ fn loop_try_ignores_continue() {
} catch { echo 'failed'; break }
}
echo $total
"
);
");
assert_eq!(output.out, "5");
}
#[test]
fn loop_try_break_on_command_should_show_successful() {
let output = nu!(
cwd: ".",
"loop { try { ls; break } catch { echo 'failed';continue }}"
);
let output = nu!("loop { try { ls; break } catch { echo 'failed';continue }}");
assert!(!output.out.contains("failed"));
}
#[test]
fn catch_block_can_use_error_object() {
let output = nu!(
cwd: ".",
"try {1 / 0} catch {|err| print ($err | get msg)}"
);
let output = nu!("try {1 / 0} catch {|err| print ($err | get msg)}");
assert_eq!(output.out, "Division by zero.")
}

View file

@ -68,9 +68,8 @@ fn sets_the_column_from_a_subexpression() {
#[test]
fn upsert_uses_enumerate_index_inserting() {
let actual = nu!(
cwd: ".", pipeline(
r#"[[a]; [7] [6]] | enumerate | upsert b {|el| $el.index + 1 + $el.item.a } | flatten | to nuon"#
));
);
assert_eq!(actual.out, "[[index, a, b]; [0, 7, 8], [1, 6, 8]]");
}

View file

@ -2,9 +2,8 @@ use nu_test_support::{nu, pipeline};
#[test]
fn url_join_simple() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
{
"scheme": "http",
"username": "",
@ -13,17 +12,15 @@ fn url_join_simple() {
"port": "",
} | url join
"#
)
);
));
assert_eq!(actual.out, "http://localhost");
}
#[test]
fn url_join_with_only_user() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
{
"scheme": "http",
"username": "usr",
@ -32,17 +29,15 @@ fn url_join_with_only_user() {
"port": "",
} | url join
"#
)
);
));
assert_eq!(actual.out, "http://localhost");
}
#[test]
fn url_join_with_only_pwd() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
{
"scheme": "http",
"username": "",
@ -51,17 +46,15 @@ fn url_join_with_only_pwd() {
"port": "",
} | url join
"#
)
);
));
assert_eq!(actual.out, "http://localhost");
}
#[test]
fn url_join_with_user_and_pwd() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
{
"scheme": "http",
"username": "usr",
@ -70,17 +63,15 @@ fn url_join_with_user_and_pwd() {
"port": "",
} | url join
"#
)
);
));
assert_eq!(actual.out, "http://usr:pwd@localhost");
}
#[test]
fn url_join_with_query() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
{
"scheme": "http",
"username": "usr",
@ -90,17 +81,15 @@ fn url_join_with_query() {
"port": "",
} | url join
"#
)
);
));
assert_eq!(actual.out, "http://usr:pwd@localhost?par_1=aaa&par_2=bbb");
}
#[test]
fn url_join_with_params() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
{
"scheme": "http",
"username": "usr",
@ -113,8 +102,7 @@ fn url_join_with_params() {
"port": "1234",
} | url join
"#
)
);
));
assert_eq!(
actual.out,
@ -124,9 +112,8 @@ fn url_join_with_params() {
#[test]
fn url_join_with_same_query_and_params() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
{
"scheme": "http",
"username": "usr",
@ -140,8 +127,7 @@ fn url_join_with_same_query_and_params() {
"port": "1234",
} | url join
"#
)
);
));
assert_eq!(
actual.out,
@ -151,9 +137,8 @@ fn url_join_with_same_query_and_params() {
#[test]
fn url_join_with_different_query_and_params() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
{
"scheme": "http",
"username": "usr",
@ -167,8 +152,7 @@ fn url_join_with_different_query_and_params() {
"port": "1234",
} | url join
"#
)
);
));
assert!(actual
.err
@ -177,9 +161,8 @@ fn url_join_with_different_query_and_params() {
.err
.contains("instead query is: ?par_1=aaa&par_2=bbb"));
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
{
"scheme": "http",
"username": "usr",
@ -193,8 +176,7 @@ fn url_join_with_different_query_and_params() {
"port": "1234",
} | url join
"#
)
);
));
assert!(actual
.err
@ -206,9 +188,8 @@ fn url_join_with_different_query_and_params() {
#[test]
fn url_join_with_invalid_params() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
{
"scheme": "http",
"username": "usr",
@ -218,72 +199,63 @@ fn url_join_with_invalid_params() {
"port": "1234",
} | url join
"#
)
);
));
assert!(actual.err.contains("Key params has to be a record"));
}
#[test]
fn url_join_with_port() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
{
"scheme": "http",
"host": "localhost",
"port": "1234",
} | url join
"#
)
);
));
assert_eq!(actual.out, "http://localhost:1234");
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
{
"scheme": "http",
"host": "localhost",
"port": 1234,
} | url join
"#
)
);
));
assert_eq!(actual.out, "http://localhost:1234");
}
#[test]
fn url_join_with_invalid_port() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
{
"scheme": "http",
"host": "localhost",
"port": "aaaa",
} | url join
"#
)
);
));
assert!(actual
.err
.contains("Port parameter should represent an unsigned integer"));
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
{
"scheme": "http",
"host": "localhost",
"port": [],
} | url join
"#
)
);
));
assert!(actual
.err
@ -292,39 +264,34 @@ fn url_join_with_invalid_port() {
#[test]
fn url_join_with_missing_scheme() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
{
"host": "localhost"
} | url join
"#
)
);
));
assert!(actual.err.contains("missing parameter: scheme"));
}
#[test]
fn url_join_with_missing_host() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
{
"scheme": "https"
} | url join
"#
)
);
));
assert!(actual.err.contains("missing parameter: host"));
}
#[test]
fn url_join_with_fragment() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
{
"scheme": "http",
"username": "usr",
@ -334,17 +301,15 @@ fn url_join_with_fragment() {
"port": "1234",
} | url join
"#
)
);
));
assert_eq!(actual.out, "http://usr:pwd@localhost:1234#frag");
}
#[test]
fn url_join_with_fragment_and_params() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
{
"scheme": "http",
"username": "usr",
@ -358,8 +323,7 @@ fn url_join_with_fragment_and_params() {
"fragment": "frag"
} | url join
"#
)
);
));
assert_eq!(
actual.out,
@ -369,9 +333,8 @@ fn url_join_with_fragment_and_params() {
#[test]
fn url_join_with_empty_params() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
{
"scheme": "https",
"host": "localhost",
@ -379,8 +342,7 @@ fn url_join_with_empty_params() {
"params": {}
} | url join
"#
)
);
));
assert_eq!(actual.out, "https://localhost/foo");
}

View file

@ -2,9 +2,8 @@ use nu_test_support::{nu, pipeline};
#[test]
fn url_parse_simple() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
("https://www.abc.com"
| url parse)
== {
@ -25,9 +24,8 @@ fn url_parse_simple() {
#[test]
fn url_parse_with_port() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
("https://www.abc.com:8011"
| url parse)
== {
@ -49,9 +47,8 @@ fn url_parse_with_port() {
#[test]
fn url_parse_with_path() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
("http://www.abc.com:8811/def/ghj"
| url parse)
== {
@ -73,9 +70,8 @@ fn url_parse_with_path() {
#[test]
fn url_parse_with_params() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
("http://www.abc.com:8811/def/ghj?param1=11&param2="
| url parse)
== {
@ -97,9 +93,8 @@ fn url_parse_with_params() {
#[test]
fn url_parse_with_fragment() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
("http://www.abc.com:8811/def/ghj?param1=11&param2=#hello-fragment"
| url parse)
== {
@ -121,9 +116,8 @@ fn url_parse_with_fragment() {
#[test]
fn url_parse_with_username_and_password() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(pipeline(
r#"
("http://user123:password567@www.abc.com:8811/def/ghj?param1=11&param2=#hello-fragment"
| url parse)
== {
@ -145,13 +139,7 @@ fn url_parse_with_username_and_password() {
#[test]
fn url_parse_error_empty_url() {
let actual = nu!(
cwd: ".", pipeline(
r#"
""
| url parse
"#
));
let actual = nu!(r#""" | url parse"#);
assert!(actual.err.contains(
"Incomplete or incorrect URL. Expected a full URL, e.g., https://www.example.com"

View file

@ -186,13 +186,9 @@ fn use_export_env_combined() {
#[test]
fn use_module_creates_accurate_did_you_mean_1() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
module spam { export def foo [] { "foo" } }; use spam; foo
"#
)
);
"#);
assert!(actual.err.contains(
"command 'foo' was not found but it was imported from module 'spam'; try using `spam foo`"
));
@ -200,13 +196,9 @@ fn use_module_creates_accurate_did_you_mean_1() {
#[test]
fn use_module_creates_accurate_did_you_mean_2() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
module spam { export def foo [] { "foo" } }; foo
"#
)
);
"#);
assert!(actual.err.contains(
"command 'foo' was not found but it exists in module 'spam'; try importing it with `use`"
));
@ -220,7 +212,7 @@ fn use_main_1() {
r#"spam"#,
];
let actual = nu!(cwd: ".", pipeline(&inp.join("; ")));
let actual = nu!(&inp.join("; "));
assert_eq!(actual.out, "spam");
}
@ -233,7 +225,7 @@ fn use_main_2() {
r#"spam"#,
];
let actual = nu!(cwd: ".", pipeline(&inp.join("; ")));
let actual = nu!(&inp.join("; "));
assert_eq!(actual.out, "spam");
}
@ -246,7 +238,7 @@ fn use_main_3() {
r#"spam"#,
];
let actual = nu!(cwd: ".", pipeline(&inp.join("; ")));
let actual = nu!(&inp.join("; "));
assert_eq!(actual.out, "spam");
}
@ -259,7 +251,7 @@ fn use_main_4() {
r#"spam"#,
];
let actual = nu!(cwd: ".", pipeline(&inp.join("; ")));
let actual = nu!(&inp.join("; "));
assert_eq!(actual.out, "spam");
}
@ -273,7 +265,7 @@ fn use_main_def_env() {
r#"$env.SPAM"#,
];
let actual = nu!(cwd: ".", pipeline(&inp.join("; ")));
let actual = nu!(&inp.join("; "));
assert_eq!(actual.out, "spam");
}
@ -287,7 +279,7 @@ fn use_main_def_known_external() {
r#"cargo --version"#,
];
let actual = nu!(cwd: ".", pipeline(&inp.join("; ")));
let actual = nu!(&inp.join("; "));
assert!(actual.out.contains("cargo"));
}
@ -300,7 +292,7 @@ fn use_main_not_exported() {
r#"spam"#,
];
let actual = nu!(cwd: ".", pipeline(&inp.join("; ")));
let actual = nu!(&inp.join("; "));
assert!(actual.err.contains("external_command"));
}

View file

@ -22,10 +22,7 @@ fn filters_with_nothing_comparison() {
#[test]
fn where_inside_block_works() {
let actual = nu!(
cwd: ".",
"{|x| ls | where $it =~ 'foo' } | describe"
);
let actual = nu!("{|x| ls | where $it =~ 'foo' } | describe");
assert_eq!(actual.out, "closure");
}
@ -178,7 +175,7 @@ fn contains_operator() {
#[test]
fn fail_on_non_iterator() {
let actual = nu!(cwd: ".", pipeline(r#"{"name": "foo", "size": 3} | where name == "foo""#));
let actual = nu!(r#"{"name": "foo", "size": 3} | where name == "foo""#);
assert!(actual.err.contains("command doesn't support"));
}

View file

@ -2,10 +2,7 @@ use nu_test_support::nu;
#[test]
fn which_ls() {
let actual = nu!(
cwd: ".",
"which ls | get path.0 | str trim"
);
let actual = nu!("which ls | get path.0 | str trim");
assert_eq!(actual.out, "Nushell built-in command");
}
@ -13,20 +10,14 @@ fn which_ls() {
#[ignore = "TODO: Can't have alias recursion"]
#[test]
fn which_alias_ls() {
let actual = nu!(
cwd: ".",
"alias ls = ls -a; which ls | get path.0 | str trim"
);
let actual = nu!("alias ls = ls -a; which ls | get path.0 | str trim");
assert_eq!(actual.out, "Nushell alias: ls -a");
}
#[test]
fn which_custom_alias() {
let actual = nu!(
cwd: ".",
r#"alias foo = print "foo!"; which foo | to nuon"#
);
let actual = nu!(r#"alias foo = print "foo!"; which foo | to nuon"#);
assert_eq!(
actual.out,
@ -36,10 +27,7 @@ fn which_custom_alias() {
#[test]
fn which_def_ls() {
let actual = nu!(
cwd: ".",
"def ls [] {echo def}; which ls | get path.0 | str trim"
);
let actual = nu!("def ls [] {echo def}; which ls | get path.0 | str trim");
assert_eq!(actual.out, "Nushell custom command");
}
@ -47,10 +35,8 @@ fn which_def_ls() {
#[ignore = "TODO: Can't have alias with the same name as command"]
#[test]
fn correct_precedence_alias_def_custom() {
let actual = nu!(
cwd: ".",
"def ls [] {echo def}; alias ls = echo alias; which ls | get path.0 | str trim"
);
let actual =
nu!("def ls [] {echo def}; alias ls = echo alias; which ls | get path.0 | str trim");
assert_eq!(actual.out, "Nushell alias: echo alias");
}
@ -58,10 +44,7 @@ fn correct_precedence_alias_def_custom() {
#[ignore = "TODO: Can't have alias with the same name as command"]
#[test]
fn multiple_reports_for_alias_def_custom() {
let actual = nu!(
cwd: ".",
"def ls [] {echo def}; alias ls = echo alias; which -a ls | length"
);
let actual = nu!("def ls [] {echo def}; alias ls = echo alias; which -a ls | length");
let length: i32 = actual.out.parse().unwrap();
assert!(length >= 2);
@ -75,30 +58,24 @@ fn multiple_reports_for_alias_def_custom() {
#[ignore]
#[test]
fn correctly_report_of_shadowed_alias() {
let actual = nu!(
cwd: ".",
r#"alias xaz = echo alias1
let actual = nu!(r#"alias xaz = echo alias1
def helper [] {
alias xaz = echo alias2
which -a xaz
}
helper | get path | str contains alias2"#
);
helper | get path | str contains alias2"#);
assert_eq!(actual.out, "true");
}
#[test]
fn one_report_of_multiple_defs() {
let actual = nu!(
cwd: ".",
r#"def xaz [] { echo def1 }
let actual = nu!(r#"def xaz [] { echo def1 }
def helper [] {
def xaz [] { echo def2 }
which -a xaz
}
helper | length"#
);
helper | length"#);
let length: i32 = actual.out.parse().unwrap();
assert_eq!(length, 1);
@ -106,10 +83,7 @@ fn one_report_of_multiple_defs() {
#[test]
fn def_only_seen_once() {
let actual = nu!(
cwd: ".",
"def xaz [] {echo def1}; which -a xaz | length"
);
let actual = nu!("def xaz [] {echo def1}; which -a xaz | length");
let length: i32 = actual.out.parse().unwrap();
assert_eq!(length, 1);
@ -117,12 +91,9 @@ fn def_only_seen_once() {
#[test]
fn do_not_show_hidden_aliases() {
let actual = nu!(
cwd: ".",
r#"alias foo = echo foo
let actual = nu!(r#"alias foo = echo foo
hide foo
which foo | length"#
);
which foo | length"#);
let length: i32 = actual.out.parse().unwrap();
assert_eq!(length, 0);
@ -130,12 +101,9 @@ fn do_not_show_hidden_aliases() {
#[test]
fn do_not_show_hidden_commands() {
let actual = nu!(
cwd: ".",
r#"def foo [] { echo foo }
let actual = nu!(r#"def foo [] { echo foo }
hide foo
which foo | length"#
);
which foo | length"#);
let length: i32 = actual.out.parse().unwrap();
assert_eq!(length, 0);

View file

@ -3,7 +3,6 @@ use nu_test_support::nu;
#[test]
fn while_sum() {
let actual = nu!(
cwd: ".",
"mut total = 0; mut x = 0; while $x <= 10 { $total = $total + $x; $x = $x + 1 }; $total"
);
@ -12,10 +11,7 @@ fn while_sum() {
#[test]
fn while_doesnt_auto_print_in_each_iteration() {
let actual = nu!(
cwd: ".",
"mut total = 0; while $total < 2 { $total = $total + 1; echo 1 }"
);
let actual = nu!("mut total = 0; while $total < 2 { $total = $total + 1; echo 1 }");
// Make sure we don't see any of these values in the output
// As we do not auto-print loops anymore
assert!(!actual.out.contains('1'));
@ -23,10 +19,8 @@ fn while_doesnt_auto_print_in_each_iteration() {
#[test]
fn while_break_on_external_failed() {
let actual = nu!(
cwd: ".",
"mut total = 0; while $total < 2 { $total = $total + 1; print 1; nu --testbin fail }"
);
let actual =
nu!("mut total = 0; while $total < 2 { $total = $total + 1; print 1; nu --testbin fail }");
// Note: nu! macro auto replace "\n" and "\r\n" with ""
// so our output will be `1`
assert_eq!(actual.out, "1");
@ -34,9 +28,7 @@ fn while_break_on_external_failed() {
#[test]
fn failed_while_should_break_running() {
let actual = nu!(
cwd: ".",
"mut total = 0; while $total < 2 { $total = $total + 1; nu --testbin fail }; print 3"
);
let actual =
nu!("mut total = 0; while $total < 2 { $total = $total + 1; nu --testbin fail }; print 3");
assert!(!actual.out.contains('3'));
}

View file

@ -2,97 +2,71 @@ use nu_test_support::nu;
#[test]
fn with_env_extends_environment() {
let actual = nu!(
cwd: "tests/fixtures/formats",
"with-env [FOO BARRRR] {echo $env} | get FOO"
);
let actual = nu!("with-env [FOO BARRRR] {echo $env} | get FOO");
assert_eq!(actual.out, "BARRRR");
}
#[test]
fn with_env_shorthand() {
let actual = nu!(
cwd: "tests/fixtures/formats",
"FOO=BARRRR echo $env | get FOO"
);
let actual = nu!("FOO=BARRRR echo $env | get FOO");
assert_eq!(actual.out, "BARRRR");
}
#[test]
fn shorthand_doesnt_reorder_arguments() {
let actual = nu!(
cwd: "tests/fixtures/formats",
"FOO=BARRRR nu --testbin cococo first second"
);
let actual = nu!("FOO=BARRRR nu --testbin cococo first second");
assert_eq!(actual.out, "first second");
}
#[test]
fn with_env_shorthand_trims_quotes() {
let actual = nu!(
cwd: "tests/fixtures/formats",
"FOO='BARRRR' echo $env | get FOO"
);
let actual = nu!("FOO='BARRRR' echo $env | get FOO");
assert_eq!(actual.out, "BARRRR");
}
#[test]
fn with_env_and_shorthand_same_result() {
let actual_shorthand = nu!(
cwd: "tests/fixtures/formats",
"FOO='BARRRR' echo $env | get FOO"
);
let actual_shorthand = nu!("FOO='BARRRR' echo $env | get FOO");
let actual_normal = nu!(
cwd: "tests/fixtures/formats",
"with-env [FOO BARRRR] {echo $env} | get FOO"
);
let actual_normal = nu!("with-env [FOO BARRRR] {echo $env} | get FOO");
assert_eq!(actual_shorthand.out, actual_normal.out);
}
#[test]
fn test_redirection2() {
let actual = nu!(
cwd: "tests/fixtures/formats",
"let x = (FOO=BAR nu --testbin cococo niceenvvar); $x | str trim | str length"
);
let actual =
nu!("let x = (FOO=BAR nu --testbin cococo niceenvvar); $x | str trim | str length");
assert_eq!(actual.out, "10");
}
#[test]
fn with_env_hides_variables_in_parent_scope() {
let actual = nu!(
cwd: "tests/fixtures/formats",
r#"
let actual = nu!(r#"
$env.FOO = "1"
print $env.FOO
with-env [FOO null] {
echo $env.FOO
}
print $env.FOO
"#
);
"#);
assert_eq!(actual.out, "11");
}
#[test]
fn with_env_shorthand_can_not_hide_variables() {
let actual = nu!(
cwd: "tests/fixtures/formats",
r#"
let actual = nu!(r#"
$env.FOO = "1"
print $env.FOO
FOO=null print $env.FOO
print $env.FOO
"#
);
"#);
assert_eq!(actual.out, "1null1");
}

View file

@ -22,10 +22,8 @@ fn zips_two_tables() {
&format!("{ZIP_POWERED_TEST_ASSERTION_SCRIPT}\n"),
)]);
let actual = nu!(
cwd: ".", pipeline(
&format!(
r#"
let actual = nu!(pipeline(&format!(
r#"
use {} expect ;
let contributors = ([
@ -38,9 +36,8 @@ fn zips_two_tables() {
expect $actual --to-eq [[name, commits]; [andres, 20] [jt, 30]]
"#,
dirs.test().join("zip_test.nu").display()
)
));
dirs.test().join("zip_test.nu").display()
)));
assert_eq!(actual.out, "true");
})
@ -48,12 +45,9 @@ fn zips_two_tables() {
#[test]
fn zips_two_lists() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo [0 2 4 6 8] | zip [1 3 5 7 9] | flatten | into string | str join '-'
"#
));
"#);
assert_eq!(actual.out, "0-1-2-3-4-5-6-7-8-9");
}

View file

@ -372,8 +372,7 @@ fn from_csv_text_with_wrong_type_separator() {
#[test]
fn table_with_record_error() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
[[a b]; [1 2] [3 {a: 1 b: 2}]]
| to csv
@ -385,8 +384,7 @@ fn table_with_record_error() {
#[test]
fn list_not_table_error() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
[{a: 1 b: 2} {a: 3 b: 4} 1]
| to csv
@ -398,8 +396,7 @@ fn list_not_table_error() {
#[test]
fn string_to_csv_error() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
'qwe' | to csv
"#

View file

@ -2,8 +2,7 @@ use nu_test_support::{nu, pipeline};
#[test]
fn out_html_simple() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
echo 3 | to html
"#
@ -17,12 +16,9 @@ fn out_html_simple() {
#[test]
fn out_html_partial() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo 3 | to html -p
"#
));
"#);
assert_eq!(
actual.out,
@ -32,12 +28,9 @@ fn out_html_partial() {
#[test]
fn out_html_table() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo '{"name": "darren"}' | from json | to html
"#
));
"#);
assert_eq!(
actual.out,
@ -48,13 +41,9 @@ fn out_html_table() {
#[test]
#[ignore]
fn test_cd_html_color_flag_dark_false() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
cd --help | to html --html-color
"#
)
);
"#);
assert_eq!(
actual.out,
r"<html><style>body { background-color:white;color:black; }</style><body>Change directory.<br><br><span style='color:green;'>Usage<span style='color:black;font-weight:normal;'>:<br> &gt; cd (path) <br><br></span></span><span style='color:green;'>Flags<span style='color:black;font-weight:normal;'>:<br> </span></span><span style='color:#037979;'>-h</span>,<span style='color:black;font-weight:normal;'> </span><span style='color:#037979;'>--help<span style='color:black;font-weight:normal;'> - Display the help message for this command<br><br></span><span style='color:green;'>Signatures<span style='color:black;font-weight:normal;'>:<br> &lt;nothing&gt; | cd &lt;string?&gt; -&gt; &lt;nothing&gt;<br> &lt;string&gt; | cd &lt;string?&gt; -&gt; &lt;nothing&gt;<br><br></span></span><span style='color:green;'>Parameters<span style='color:black;font-weight:normal;'>:<br> (optional) </span></span></span><span style='color:#037979;'>path<span style='color:black;font-weight:normal;'> &lt;</span><span style='color:blue;font-weight:bold;'>directory<span style='color:black;font-weight:normal;'>&gt;: the path to change to<br><br></span></span><span style='color:green;'>Examples<span style='color:black;font-weight:normal;'>:<br> Change to your home directory<br> &gt; </span><span style='color:#037979;font-weight:bold;'>cd<span style='color:black;font-weight:normal;'> </span></span></span></span><span style='color:#037979;'>~<span style='color:black;font-weight:normal;'><br><br> Change to a directory via abbreviations<br> &gt; </span><span style='color:#037979;font-weight:bold;'>cd<span style='color:black;font-weight:normal;'> </span></span></span><span style='color:#037979;'>d/s/9<span style='color:black;font-weight:normal;'><br><br> Change to the previous working directory ($OLDPWD)<br> &gt; </span><span style='color:#037979;font-weight:bold;'>cd<span style='color:black;font-weight:normal;'> </span></span></span><span style='color:#037979;'>-<span style='color:black;font-weight:normal;'><br><br></body></html></span></span>"
@ -63,13 +52,9 @@ fn test_cd_html_color_flag_dark_false() {
#[test]
fn test_no_color_flag() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
cd --help | to html --no-color
"#
)
);
"#);
assert_eq!(
actual.out,
r"<html><style>body { background-color:white;color:black; }</style><body>Change directory.<br><br>Usage:<br> &gt; cd (path) <br><br>Flags:<br> -h, --help - Display the help message for this command<br><br>Signatures:<br> &lt;nothing&gt; | cd &lt;string?&gt; -&gt; &lt;nothing&gt;<br> &lt;string&gt; | cd &lt;string?&gt; -&gt; &lt;nothing&gt;<br><br>Parameters:<br> path &lt;directory&gt;: the path to change to (optional)<br><br>Examples:<br> Change to your home directory<br> &gt; cd ~<br><br> Change to a directory via abbreviations<br> &gt; cd d/s/9<br><br> Change to the previous working directory ($OLDPWD)<br> &gt; cd -<br><br></body></html>"
@ -78,10 +63,7 @@ fn test_no_color_flag() {
#[test]
fn test_list() {
let actual = nu!(
cwd: ".",
r#"to html --list | where name == C64 | get 0 | to nuon"#
);
let actual = nu!(r#"to html --list | where name == C64 | get 0 | to nuon"#);
assert_eq!(
actual.out,
r##"{name: "C64", black: "#090300", red: "#883932", green: "#55a049", yellow: "#bfce72", blue: "#40318d", purple: "#8b3f96", cyan: "#67b6bd", white: "#ffffff", brightBlack: "#000000", brightRed: "#883932", brightGreen: "#55a049", brightYellow: "#bfce72", brightBlue: "#40318d", brightPurple: "#8b3f96", brightCyan: "#67b6bd", brightWhite: "#f7f7f7", background: "#40318d", foreground: "#7869c4"}"##

View file

@ -2,80 +2,61 @@ use nu_test_support::{nu, pipeline};
#[test]
fn md_empty() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo [[]; []] | from json | to md
"#
));
"#);
assert_eq!(actual.out, "");
}
#[test]
fn md_empty_pretty() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo "{}" | from json | to md -p
"#
));
"#);
assert_eq!(actual.out, "");
}
#[test]
fn md_simple() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo 3 | to md
"#
));
"#);
assert_eq!(actual.out, "3");
}
#[test]
fn md_simple_pretty() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo 3 | to md -p
"#
));
"#);
assert_eq!(actual.out, "3");
}
#[test]
fn md_table() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo [[name]; [jason]] | to md
"#
));
"#);
assert_eq!(actual.out, "|name||-||jason|");
}
#[test]
fn md_table_pretty() {
let actual = nu!(
cwd: ".", pipeline(
r#"
let actual = nu!(r#"
echo [[name]; [joseph]] | to md -p
"#
));
"#);
assert_eq!(actual.out, "| name || ------ || joseph |");
}
#[test]
fn md_combined() {
let actual = nu!(
cwd: ".", pipeline(
let actual = nu!(pipeline(
r#"
def title [] {
echo [[H1]; ["Nu top meals"]]

View file

@ -17,8 +17,7 @@ fn to_nuon_correct_compaction() {
#[test]
fn to_nuon_list_of_numbers() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
[1, 2, 3, 4]
| to nuon
@ -32,8 +31,7 @@ fn to_nuon_list_of_numbers() {
#[test]
fn to_nuon_list_of_strings() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
[abc, xyz, def]
| to nuon
@ -47,8 +45,7 @@ fn to_nuon_list_of_strings() {
#[test]
fn to_nuon_table() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
[[my, columns]; [abc, xyz], [def, ijk]]
| to nuon
@ -62,8 +59,7 @@ fn to_nuon_table() {
#[test]
fn to_nuon_bool() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
false
| to nuon
@ -76,8 +72,7 @@ fn to_nuon_bool() {
#[test]
fn to_nuon_escaping() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
"hello\"world"
| to nuon
@ -90,8 +85,7 @@ fn to_nuon_escaping() {
#[test]
fn to_nuon_escaping2() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
"hello\\world"
| to nuon
@ -104,8 +98,7 @@ fn to_nuon_escaping2() {
#[test]
fn to_nuon_escaping3() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
["hello\\world"]
| to nuon
@ -119,8 +112,7 @@ fn to_nuon_escaping3() {
#[test]
fn to_nuon_escaping4() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
["hello\"world"]
| to nuon
@ -134,8 +126,7 @@ fn to_nuon_escaping4() {
#[test]
fn to_nuon_escaping5() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
{s: "hello\"world"}
| to nuon
@ -149,8 +140,7 @@ fn to_nuon_escaping5() {
#[test]
fn to_nuon_negative_int() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
-1
| to nuon
@ -163,8 +153,7 @@ fn to_nuon_negative_int() {
#[test]
fn to_nuon_records() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
{name: "foo bar", age: 100, height: 10}
| to nuon
@ -178,8 +167,7 @@ fn to_nuon_records() {
#[test]
fn to_nuon_range() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1..42
| to nuon
@ -191,8 +179,7 @@ fn to_nuon_range() {
#[test]
fn from_nuon_range() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
"1..42"
| from nuon
@ -205,8 +192,7 @@ fn from_nuon_range() {
#[test]
fn to_nuon_filesize() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1kib
| to nuon
@ -218,8 +204,7 @@ fn to_nuon_filesize() {
#[test]
fn from_nuon_filesize() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
"1024b"
| from nuon
@ -232,8 +217,7 @@ fn from_nuon_filesize() {
#[test]
fn to_nuon_duration() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1min
| to nuon
@ -245,8 +229,7 @@ fn to_nuon_duration() {
#[test]
fn from_nuon_duration() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
"60000000000ns"
| from nuon
@ -259,8 +242,7 @@ fn from_nuon_duration() {
#[test]
fn to_nuon_datetime() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
2019-05-10
| to nuon
@ -272,8 +254,7 @@ fn to_nuon_datetime() {
#[test]
fn from_nuon_datetime() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
"2019-05-10T00:00:00+00:00"
| from nuon
@ -286,8 +267,7 @@ fn from_nuon_datetime() {
#[test]
fn to_nuon_errs_on_closure() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
{|| to nuon}
| to nuon
@ -299,8 +279,7 @@ fn to_nuon_errs_on_closure() {
#[test]
fn binary_to() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
0x[ab cd ef] | to nuon
"#
@ -311,8 +290,7 @@ fn binary_to() {
#[test]
fn binary_roundtrip() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
"0x[1f ff]" | from nuon | to nuon
"#
@ -359,8 +337,7 @@ fn read_bool() {
#[test]
fn float_doesnt_become_int() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
1.0 | to nuon
"#
@ -371,8 +348,7 @@ fn float_doesnt_become_int() {
#[test]
fn float_inf_parsed_properly() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
inf | to nuon
"#
@ -383,8 +359,7 @@ fn float_inf_parsed_properly() {
#[test]
fn float_neg_inf_parsed_properly() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
-inf | to nuon
"#
@ -395,8 +370,7 @@ fn float_neg_inf_parsed_properly() {
#[test]
fn float_nan_parsed_properly() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
NaN | to nuon
"#
@ -407,9 +381,8 @@ fn float_nan_parsed_properly() {
#[test]
fn to_nuon_converts_columns_with_spaces() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
r#"
let actual = nu!(pipeline(
r#"
let test = [[a, b, "c d"]; [1 2 3] [4 5 6]]; $test | to nuon | from nuon
"#
));
@ -418,9 +391,8 @@ fn to_nuon_converts_columns_with_spaces() {
#[test]
fn to_nuon_quotes_empty_string() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
r#"
let actual = nu!(pipeline(
r#"
let test = ""; $test | to nuon
"#
));
@ -430,9 +402,8 @@ fn to_nuon_quotes_empty_string() {
#[test]
fn to_nuon_quotes_empty_string_in_list() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
r#"
let actual = nu!(pipeline(
r#"
let test = [""]; $test | to nuon | from nuon | $in == [""]
"#
));
@ -442,9 +413,8 @@ fn to_nuon_quotes_empty_string_in_list() {
#[test]
fn to_nuon_quotes_empty_string_in_table() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
r#"
let actual = nu!(pipeline(
r#"
let test = [[a, b]; ['', la] [le lu]]; $test | to nuon | from nuon
"#
));
@ -453,16 +423,14 @@ fn to_nuon_quotes_empty_string_in_table() {
#[test]
fn does_not_quote_strings_unnecessarily() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
r#"
let actual = nu!(pipeline(
r#"
let test = [["a", "b", "c d"]; [1 2 3] [4 5 6]]; $test | to nuon
"#
));
assert_eq!(actual.out, "[[a, b, \"c d\"]; [1, 2, 3], [4, 5, 6]]");
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
r#"
let actual = nu!(pipeline(
r#"
let a = {"ro name": "sam" rank: 10}; $a | to nuon
"#
));
@ -471,8 +439,7 @@ fn does_not_quote_strings_unnecessarily() {
#[test]
fn quotes_some_strings_necessarily() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
['true','false','null',
'NaN','NAN','nan','+nan','-nan',

View file

@ -2,8 +2,7 @@ use nu_test_support::{nu, pipeline};
#[test]
fn record_map_to_toml() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
{a: 1 b: 2 c: 'qwe'}
| to toml
@ -17,8 +16,7 @@ fn record_map_to_toml() {
#[test]
fn nested_records_to_toml() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
{a: {a: a b: b} c: 1}
| to toml
@ -32,8 +30,7 @@ fn nested_records_to_toml() {
#[test]
fn records_with_tables_to_toml() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
{a: [[a b]; [1 2] [3 4]] b: [[c d e]; [1 2 3]]}
| to toml
@ -47,8 +44,7 @@ fn records_with_tables_to_toml() {
#[test]
fn nested_tables_to_toml() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
{c: [[f g]; [[[h k]; [1 2] [3 4]] 1]]}
| to toml
@ -63,8 +59,7 @@ fn nested_tables_to_toml() {
#[test]
fn table_to_toml_fails() {
// Tables can't be represented in toml
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
try { [[a b]; [1 2] [5 6]] | to toml | false } catch { true }
"#
@ -76,8 +71,7 @@ fn table_to_toml_fails() {
#[test]
fn string_to_toml_fails() {
// Strings are not a top-level toml structure
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
try { 'not a valid toml' | to toml | false } catch { true }
"#

View file

@ -17,8 +17,7 @@ fn table_to_yaml_text_and_from_yaml_text_back_into_table() {
#[test]
fn convert_dict_to_yaml_with_boolean_key() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
"true: BooleanKey " | from yaml
"#
@ -29,8 +28,7 @@ fn convert_dict_to_yaml_with_boolean_key() {
#[test]
fn convert_dict_to_yaml_with_integer_key() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
"200: [] " | from yaml
"#
@ -42,8 +40,7 @@ fn convert_dict_to_yaml_with_integer_key() {
#[test]
fn convert_dict_to_yaml_with_integer_floats_key() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
let actual = nu!(pipeline(
r#"
"2.11: "1" " | from yaml
"#

View file

@ -2,27 +2,33 @@ use nu_test_support::{nu, nu_repl_code};
#[test]
fn config_is_mutable() {
let actual = nu!(cwd: ".", nu_repl_code(&[r"$env.config = { ls: { clickable_links: true } }",
let actual = nu!(nu_repl_code(&[
r"$env.config = { ls: { clickable_links: true } }",
"$env.config.ls.clickable_links = false;",
"$env.config.ls.clickable_links"]));
"$env.config.ls.clickable_links"
]));
assert_eq!(actual.out, "false");
}
#[test]
fn config_preserved_after_do() {
let actual = nu!(cwd: ".", nu_repl_code(&[r"$env.config = { ls: { clickable_links: true } }",
let actual = nu!(nu_repl_code(&[
r"$env.config = { ls: { clickable_links: true } }",
"do -i { $env.config.ls.clickable_links = false }",
"$env.config.ls.clickable_links"]));
"$env.config.ls.clickable_links"
]));
assert_eq!(actual.out, "true");
}
#[test]
fn config_affected_when_mutated() {
let actual = nu!(cwd: ".", nu_repl_code(&[r#"$env.config = { filesize: { metric: false, format:"auto" } }"#,
let actual = nu!(nu_repl_code(&[
r#"$env.config = { filesize: { metric: false, format:"auto" } }"#,
r#"$env.config = { filesize: { metric: true, format:"auto" } }"#,
"20mib | into string"]));
"20mib | into string"
]));
assert_eq!(actual.out, "21.0 MB");
}

View file

@ -6,7 +6,7 @@ fn filesize_metric_true() {
r#"$env.config = { filesize: { metric: true, format:"mb" } }"#,
r#"20mib | into string"#,
];
let actual = nu!(cwd: ".", nu_repl_code( code ));
let actual = nu!(nu_repl_code(code));
assert_eq!(actual.out, "21.0 MB");
}
@ -16,7 +16,7 @@ fn filesize_metric_false() {
r#"$env.config = { filesize: { metric: false, format:"mib" } }"#,
r#"20mib | into string"#,
];
let actual = nu!(cwd: ".", nu_repl_code( code ));
let actual = nu!(nu_repl_code(code));
assert_eq!(actual.out, "20.0 MiB");
}
@ -26,7 +26,7 @@ fn filesize_metric_overrides_format() {
r#"$env.config = { filesize: { metric: false, format:"mb" } }"#,
r#"20mib | into string"#,
];
let actual = nu!(cwd: ".", nu_repl_code( code ));
let actual = nu!(nu_repl_code(code));
assert_eq!(actual.out, "20.0 MiB");
}
@ -36,7 +36,7 @@ fn filesize_format_auto_metric_true() {
r#"$env.config = { filesize: { metric: true, format:"auto" } }"#,
r#"[2mb 2gb 2tb] | into string | to nuon"#,
];
let actual = nu!(cwd: ".", nu_repl_code( code ));
let actual = nu!(nu_repl_code(code));
assert_eq!(actual.out, r#"["2.0 MB", "2.0 GB", "2.0 TB"]"#);
}
@ -46,6 +46,6 @@ fn filesize_format_auto_metric_false() {
r#"$env.config = { filesize: { metric: false, format:"auto" } }"#,
r#"[2mb 2gb 2tb] | into string | to nuon"#,
];
let actual = nu!(cwd: ".", nu_repl_code( code ));
let actual = nu!(nu_repl_code(code));
assert_eq!(actual.out, r#"["1.9 MiB", "1.9 GiB", "1.8 TiB"]"#);
}

View file

@ -143,7 +143,7 @@ fn override_table() -> TestResult {
#[test]
fn override_table_eval_file() {
let actual = nu!(cwd: ".", r#"def table [] { "hi" }; table"#);
let actual = nu!(r#"def table [] { "hi" }; table"#);
assert_eq!(actual.out, "hi");
}
@ -153,11 +153,8 @@ fn override_table_eval_file() {
#[cfg(not(target_os = "windows"))]
#[test]
fn infinite_recursion_does_not_panic() {
let actual = nu!(
cwd: ".",
r#"
let actual = nu!(r#"
def bang [] { bang }; bang
"#
);
"#);
assert!(actual.err.contains("Recursion limit (50) reached"));
}