mirror of
https://github.com/nushell/nushell.git
synced 2024-12-26 17:09:06 +01:00
656f707a0b
# 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
222 lines
4.3 KiB
Rust
222 lines
4.3 KiB
Rust
use nu_test_support::fs::Stub::FileWithContentToBeTrimmed;
|
|
use nu_test_support::playground::Playground;
|
|
use nu_test_support::{nu, pipeline};
|
|
|
|
#[test]
|
|
fn from_range() {
|
|
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!(r#"
|
|
echo 5 | into string
|
|
"#);
|
|
|
|
assert_eq!(actual.out, "5");
|
|
}
|
|
|
|
#[test]
|
|
fn from_decimal() {
|
|
let actual = nu!(r#"
|
|
echo 1.5 | into string
|
|
"#);
|
|
|
|
assert_eq!(actual.out, "1.5");
|
|
}
|
|
|
|
#[test]
|
|
fn from_boolean() {
|
|
let actual = nu!(r#"
|
|
echo true | into string
|
|
"#);
|
|
|
|
assert_eq!(actual.out, "true");
|
|
}
|
|
|
|
#[test]
|
|
fn from_string() {
|
|
let actual = nu!(r#"
|
|
echo "one" | into string
|
|
"#);
|
|
|
|
assert_eq!(actual.out, "one");
|
|
}
|
|
|
|
#[test]
|
|
fn from_filename() {
|
|
Playground::setup("from_filename", |dirs, sandbox| {
|
|
sandbox.with_files(vec![FileWithContentToBeTrimmed(
|
|
"sample.toml",
|
|
r#"
|
|
[dependency]
|
|
name = "nu"
|
|
"#,
|
|
)]);
|
|
|
|
let actual = nu!(
|
|
cwd: dirs.test(),
|
|
"ls sample.toml | get name | into string | get 0"
|
|
);
|
|
|
|
assert_eq!(actual.out, "sample.toml");
|
|
})
|
|
}
|
|
|
|
#[test]
|
|
fn from_filesize() {
|
|
Playground::setup("from_filesize", |dirs, sandbox| {
|
|
sandbox.with_files(vec![FileWithContentToBeTrimmed(
|
|
"sample.toml",
|
|
r#"
|
|
[dependency]
|
|
name = "nu"
|
|
"#,
|
|
)]);
|
|
|
|
let actual = nu!(
|
|
cwd: dirs.test(),
|
|
"ls sample.toml | get size | into string | get 0"
|
|
);
|
|
|
|
let expected = if cfg!(windows) { "27 B" } else { "25 B" };
|
|
|
|
assert_eq!(actual.out, expected);
|
|
})
|
|
}
|
|
|
|
#[test]
|
|
fn from_decimal_correct_trailing_zeros() {
|
|
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!(r#"
|
|
1.00000 | into string -d 3
|
|
"#);
|
|
|
|
assert!(actual.out.contains("1.000"));
|
|
}
|
|
|
|
#[test]
|
|
fn from_int_decimal_trim_trailing_zeros() {
|
|
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!(pipeline(
|
|
r#"
|
|
echo '[{"name": "foo", "weight": 32.377}, {"name": "bar", "weight": 15.2}]'
|
|
| from json
|
|
| into string weight -d 2
|
|
"#
|
|
));
|
|
|
|
assert!(actual.out.contains("32.38"));
|
|
assert!(actual.out.contains("15.20"));
|
|
}
|
|
|
|
#[test]
|
|
fn from_nothing() {
|
|
let actual = nu!(r#"
|
|
null | into string
|
|
"#);
|
|
|
|
assert_eq!(actual.out, "");
|
|
}
|
|
|
|
#[test]
|
|
fn int_into_string() {
|
|
let actual = nu!(r#"
|
|
10 | into string
|
|
"#);
|
|
|
|
assert_eq!(actual.out, "10");
|
|
}
|
|
|
|
#[test]
|
|
fn int_into_string_decimals_0() {
|
|
let actual = nu!(
|
|
locale: "en_US.UTF-8",
|
|
pipeline(
|
|
r#"
|
|
10 | into string --decimals 0
|
|
"#
|
|
)
|
|
);
|
|
|
|
assert_eq!(actual.out, "10");
|
|
}
|
|
|
|
#[test]
|
|
fn int_into_string_decimals_1() {
|
|
let actual = nu!(
|
|
locale: "en_US.UTF-8",
|
|
pipeline(
|
|
r#"
|
|
10 | into string --decimals 1
|
|
"#
|
|
)
|
|
);
|
|
|
|
assert_eq!(actual.out, "10.0");
|
|
}
|
|
|
|
#[test]
|
|
fn int_into_string_decimals_10() {
|
|
let actual = nu!(
|
|
locale: "en_US.UTF-8",
|
|
pipeline(
|
|
r#"
|
|
10 | into string --decimals 10
|
|
"#
|
|
)
|
|
);
|
|
|
|
assert_eq!(actual.out, "10.0000000000");
|
|
}
|
|
|
|
#[test]
|
|
fn int_into_string_decimals_respects_system_locale_de() {
|
|
// Set locale to `de_DE`, which uses `,` (comma) as decimal separator
|
|
let actual = nu!(
|
|
locale: "de_DE.UTF-8",
|
|
pipeline(
|
|
r#"
|
|
10 | into string --decimals 1
|
|
"#
|
|
)
|
|
);
|
|
|
|
assert_eq!(actual.out, "10,0");
|
|
}
|
|
|
|
#[test]
|
|
fn int_into_string_decimals_respects_system_locale_en() {
|
|
// Set locale to `en_US`, which uses `.` (period) as decimal separator
|
|
let actual = nu!(
|
|
locale: "en_US.UTF-8",
|
|
pipeline(
|
|
r#"
|
|
10 | into string --decimals 1
|
|
"#
|
|
)
|
|
);
|
|
|
|
assert_eq!(actual.out, "10.0");
|
|
}
|