2019-12-17 19:54:39 +01:00
|
|
|
use nu_test_support::{nu, pipeline};
|
2019-12-15 17:15:06 +01:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn lines() {
|
|
|
|
let actual = nu!(
|
|
|
|
cwd: "tests/fixtures/formats", pipeline(
|
|
|
|
r#"
|
2020-02-12 03:24:31 +01:00
|
|
|
open cargo_sample.toml -r
|
2019-12-15 17:15:06 +01:00
|
|
|
| lines
|
2022-12-10 18:24:06 +01:00
|
|
|
| skip while {|it| $it != "[dependencies]" }
|
2019-12-15 17:15:06 +01:00
|
|
|
| skip 1
|
2022-09-29 00:08:17 +02:00
|
|
|
| first
|
2020-05-24 08:41:30 +02:00
|
|
|
| split column "="
|
2022-02-20 01:26:47 +01:00
|
|
|
| get column1.0
|
2020-09-16 21:59:32 +02:00
|
|
|
| str trim
|
2019-12-15 17:15:06 +01:00
|
|
|
"#
|
|
|
|
));
|
|
|
|
|
2020-05-07 13:03:43 +02:00
|
|
|
assert_eq!(actual.out, "rustyline");
|
2019-12-15 17:15:06 +01:00
|
|
|
}
|
2020-07-05 02:20:58 +02:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn lines_proper_buffering() {
|
|
|
|
let actual = nu!(
|
|
|
|
cwd: "tests/fixtures/formats", pipeline(
|
2023-07-21 17:32:37 +02:00
|
|
|
"
|
2020-07-05 02:20:58 +02:00
|
|
|
open lines_test.txt -r
|
|
|
|
| lines
|
|
|
|
| str length
|
2022-02-04 18:34:01 +01:00
|
|
|
| to json -r
|
2023-07-21 17:32:37 +02:00
|
|
|
"
|
2020-07-05 02:20:58 +02:00
|
|
|
));
|
|
|
|
|
2021-01-08 02:45:25 +01:00
|
|
|
assert_eq!(actual.out, "[8193,3]");
|
2020-07-05 02:20:58 +02:00
|
|
|
}
|
2020-10-10 07:30:48 +02:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn lines_multi_value_split() {
|
|
|
|
let actual = nu!(
|
|
|
|
cwd: "tests/fixtures/formats", pipeline(
|
2023-07-21 17:32:37 +02:00
|
|
|
"
|
2020-10-10 07:30:48 +02:00
|
|
|
open sample-simple.json
|
|
|
|
| get first second
|
|
|
|
| lines
|
2021-03-13 22:46:40 +01:00
|
|
|
| length
|
2023-07-21 17:32:37 +02:00
|
|
|
"
|
2020-10-10 07:30:48 +02:00
|
|
|
));
|
|
|
|
|
2022-02-04 18:34:01 +01:00
|
|
|
assert_eq!(actual.out, "6");
|
2020-10-10 07:30:48 +02:00
|
|
|
}
|
2022-12-02 17:30:26 +01:00
|
|
|
|
|
|
|
/// test whether this handles CRLF and LF in the same input
|
|
|
|
#[test]
|
|
|
|
fn lines_mixed_line_endings() {
|
|
|
|
let actual = nu!(
|
|
|
|
cwd: "tests/fixtures/formats", pipeline(
|
|
|
|
r#"
|
|
|
|
"foo\nbar\r\nquux" | lines | length
|
|
|
|
"#
|
|
|
|
));
|
|
|
|
|
|
|
|
assert_eq!(actual.out, "3");
|
|
|
|
}
|
2023-08-09 14:12:58 +02:00
|
|
|
|
|
|
|
#[cfg(not(windows))]
|
|
|
|
#[test]
|
|
|
|
fn lines_on_error() {
|
|
|
|
let actual = nu!("open . | lines");
|
|
|
|
|
|
|
|
assert!(actual.err.contains("Is a directory"));
|
|
|
|
}
|