mirror of
https://github.com/fluencelabs/jsonpath
synced 2025-03-16 15:30:50 +00:00
Results do not match other implementations #6
This commit is contained in:
parent
1a5e8cc025
commit
b41b9f3aa6
@ -263,6 +263,13 @@ mod parser_tests {
|
||||
ParseToken::ArrayEof
|
||||
]));
|
||||
|
||||
assert_eq!(run("$[:]"), Ok(vec![
|
||||
ParseToken::Absolute,
|
||||
ParseToken::Array,
|
||||
ParseToken::Range(None, None),
|
||||
ParseToken::ArrayEof
|
||||
]));
|
||||
|
||||
match run("$[") {
|
||||
Ok(_) => panic!(),
|
||||
_ => {}
|
||||
@ -520,5 +527,12 @@ mod tokenizer_tests {
|
||||
]
|
||||
, Some(TokenError::Eof)
|
||||
));
|
||||
|
||||
run("$[:]", (vec![
|
||||
Token::Absolute(0),
|
||||
Token::OpenArray(1),
|
||||
Token::Split(2),
|
||||
Token::CloseArray(3)
|
||||
], Some(TokenError::Eof)));
|
||||
}
|
||||
}
|
@ -375,6 +375,13 @@ impl Parser {
|
||||
|
||||
fn range_to(tokenizer: &mut TokenReader) -> ParseResult<Node> {
|
||||
debug!("#range_to");
|
||||
match tokenizer.peek_token() {
|
||||
Ok(Token::CloseArray(_)) => {
|
||||
return Ok(Self::node(ParseToken::Range(None, None)))
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
|
||||
match tokenizer.next_token() {
|
||||
Ok(Token::Key(pos, ref val)) => {
|
||||
let digit = utils::string_to_isize(val, || tokenizer.err_msg_with_pos(pos))?;
|
||||
|
@ -349,4 +349,11 @@ fn filer_same_obj() {
|
||||
{"a": 1},
|
||||
{"a": 1}
|
||||
]));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn empty_range() {
|
||||
setup();
|
||||
|
||||
select_and_then_compare("$[:]", json!(["first", "second"]), json!(["first", "second"]));
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user