mirror of
https://github.com/nushell/nushell.git
synced 2024-12-26 00:50:03 +01:00
ee5a387300
This closes #4989. Previously `lines` was unable to handle text input with CRLF line breaks _and_ LF line breaks. ### Before: ![image](https://user-images.githubusercontent.com/26268125/205207685-b25da9e1-19fa-4abb-8ab2-0dd216c63fc0.png) ### After: ![image](https://user-images.githubusercontent.com/26268125/205207808-9f687242-a8c2-4b79-a12c-38b0583d8d52.png)
64 lines
1.3 KiB
Rust
64 lines
1.3 KiB
Rust
use nu_test_support::{nu, pipeline};
|
|
|
|
#[test]
|
|
fn lines() {
|
|
let actual = nu!(
|
|
cwd: "tests/fixtures/formats", pipeline(
|
|
r#"
|
|
open cargo_sample.toml -r
|
|
| lines
|
|
| skip while $it != "[dependencies]"
|
|
| skip 1
|
|
| first
|
|
| split column "="
|
|
| get column1.0
|
|
| str trim
|
|
"#
|
|
));
|
|
|
|
assert_eq!(actual.out, "rustyline");
|
|
}
|
|
|
|
#[test]
|
|
fn lines_proper_buffering() {
|
|
let actual = nu!(
|
|
cwd: "tests/fixtures/formats", pipeline(
|
|
r#"
|
|
open lines_test.txt -r
|
|
| lines
|
|
| str length
|
|
| to json -r
|
|
"#
|
|
));
|
|
|
|
assert_eq!(actual.out, "[8193,3]");
|
|
}
|
|
|
|
#[test]
|
|
fn lines_multi_value_split() {
|
|
let actual = nu!(
|
|
cwd: "tests/fixtures/formats", pipeline(
|
|
r#"
|
|
open sample-simple.json
|
|
| get first second
|
|
| lines
|
|
| length
|
|
"#
|
|
));
|
|
|
|
assert_eq!(actual.out, "6");
|
|
}
|
|
|
|
/// 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");
|
|
}
|