nushell/crates/nu-cli/tests/commands/xpath.rs
Darren Schroeder 2573441e28
xpath command for nushell (#2656)
* xpath prototype

* new xpath engine is finally working

* nearly there

* closer

* working with list, started to add test, code cleanup

* broken again

* working again - time for some cleanup

* cleaned up code, added error handling and test

* update example, fix clippy

* removed commented char
2020-10-12 08:03:00 -05:00

42 lines
1022 B
Rust

use nu_test_support::fs::Stub::FileWithContentToBeTrimmed;
use nu_test_support::playground::Playground;
use nu_test_support::{nu, pipeline};
#[test]
fn position_function_in_predicate() {
let actual = nu!(
cwd: ".", pipeline(
r#"
echo "<?xml version="1.0" encoding="UTF-8"?><a><b/><b/></a>" | from xml | to xml | xpath "count(//a/*[position() = 2])"
"#
));
assert_eq!(actual.out, "1.0000");
}
#[test]
fn functions_implicitly_coerce_argument_types() {
let actual = nu!(
cwd: ".", pipeline(
r#"
echo "<?xml version="1.0" encoding="UTF-8"?><a>true</a>" | from xml | to xml | xpath "count(//*[contains(., true)])"
"#
));
assert_eq!(actual.out, "1.0000");
}
#[test]
fn find_guid_permilink_is_true() {
let actual = nu!(
cwd: "tests/fixtures/formats", pipeline(
r#"
open jonathan.xml
| to xml
| xpath '//guid/@isPermaLink'
"#
));
assert_eq!(actual.out, "true");
}