nushell/crates/nu-command/tests/commands/any.rs
Andrés N. Robalino e278ca61d1
commands: any? all? (#3252)
* commands: any? all?

We can check if `any` (or `all`) rows of tables match predicates.

Small `all?` example: Given the following table with `services` running:

```
> echo [[status]; [UP] [UP]]
───┬────────
 # │ status
───┼────────
 0 │ UP
 1 │ UP
───┴────────
```

We can ask if all services are UP, like so:

```
> echo [[status]; [UP] [UP]] | all? status == UP
true
```

* Fix any? signature.
2021-04-03 13:40:54 -05:00

42 lines
1.2 KiB
Rust

use nu_test_support::pipeline as input;
use nu_test_support::playground::{says, Playground};
use hamcrest2::assert_that;
use hamcrest2::prelude::*;
#[test]
fn checks_any_row_is_true() {
Playground::setup("any_test_1", |_, nu| {
assert_that!(
nu.pipeline(&input(
r#"
echo [ "Ecuador", "USA", "New Zealand" ]
| any? $it == "New Zealand"
"#
)),
says().to_stdout("true")
);
})
}
#[test]
fn checks_any_column_of_a_table_is_true() {
Playground::setup("any_test_1", |_, nu| {
assert_that!(
nu.pipeline(&input(
r#"
echo [
[ first_name, last_name, rusty_at, likes ];
[ Andrés, Robalino, 10/11/2013, 1 ]
[ Jonathan, Turner, 10/12/2013, 1 ]
[ Darren, Schroeder, 10/11/2013, 1 ]
[ Yehuda, Katz, 10/11/2013, 1 ]
]
| any? rusty_at == 10/12/2013
"#
)),
says().to_stdout("true")
);
})
}