mirror of
https://github.com/Orange-OpenSource/hurl.git
synced 2024-09-21 18:57:33 +03:00
Improve jsonpath parser coverage with integ tests
This commit is contained in:
parent
b41f17be2b
commit
7ed25baac9
@ -1,7 +1,42 @@
|
||||
error: Invalid JSONPath
|
||||
--> tests_failed/invalid_jsonpath.hurl:4:10
|
||||
--> tests_failed/invalid_jsonpath.hurl:5:10
|
||||
|
|
||||
4 | jsonpath "" == false
|
||||
5 | jsonpath "" == false
|
||||
| ^^ the JSONPath expression '' is not valid
|
||||
|
|
||||
|
||||
error: Invalid JSONPath
|
||||
--> tests_failed/invalid_jsonpath.hurl:6:10
|
||||
|
|
||||
6 | jsonpath "$.tags[0]x" == false
|
||||
| ^^^^^^^^^^^^ the JSONPath expression '$.tags[0]x' is not valid
|
||||
|
|
||||
|
||||
error: Invalid JSONPath
|
||||
--> tests_failed/invalid_jsonpath.hurl:7:10
|
||||
|
|
||||
7 | jsonpath "$.tags[0,A]" == false
|
||||
| ^^^^^^^^^^^^^ the JSONPath expression '$.tags[0,A]' is not valid
|
||||
|
|
||||
|
||||
error: Invalid JSONPath
|
||||
--> tests_failed/invalid_jsonpath.hurl:8:10
|
||||
|
|
||||
8 | jsonpath "$.tags[0:A]" == false
|
||||
| ^^^^^^^^^^^^^ the JSONPath expression '$.tags[0:A]' is not valid
|
||||
|
|
||||
|
||||
error: Invalid JSONPath
|
||||
--> tests_failed/invalid_jsonpath.hurl:9:10
|
||||
|
|
||||
9 | jsonpath "$.tags[]" == false
|
||||
| ^^^^^^^^^^ the JSONPath expression '$.tags[]' is not valid
|
||||
|
|
||||
|
||||
error: Invalid JSONPath
|
||||
--> tests_failed/invalid_jsonpath.hurl:10:10
|
||||
|
|
||||
10 | jsonpath "$." == false
|
||||
| ^^^^ the JSONPath expression '$.' is not valid
|
||||
|
|
||||
|
||||
|
@ -1,5 +0,0 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">GET</span> <span class="url">http://localhost:8000/error-invalid-jsonpath</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
<span class="line"><span class="section-header">[Asserts]</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">""</span> <span class="predicate-type">==</span> <span class="boolean">false</span></span>
|
||||
</span></span></code></pre>
|
@ -1,4 +1,10 @@
|
||||
# Testing invalid jsonpath expression
|
||||
GET http://localhost:8000/error-invalid-jsonpath
|
||||
HTTP 200
|
||||
[Asserts]
|
||||
jsonpath "" == false
|
||||
jsonpath "$.tags[0]x" == false
|
||||
jsonpath "$.tags[0,A]" == false
|
||||
jsonpath "$.tags[0:A]" == false
|
||||
jsonpath "$.tags[]" == false
|
||||
jsonpath "$." == false
|
||||
|
@ -1 +0,0 @@
|
||||
{"entries":[{"request":{"method":"GET","url":"http://localhost:8000/error-invalid-jsonpath"},"response":{"status":200,"asserts":[{"query":{"type":"jsonpath","expr":""},"predicate":{"type":"equal","value":false}}]}}]}
|
@ -39,6 +39,10 @@
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors[0].id"</span> <span class="predicate-type">isString</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors[0]['id']"</span> <span class="predicate-type">==</span> <span class="string">"error1"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors[*].id"</span> <span class="predicate-type">includes</span> <span class="string">"error1"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors[0,1].id"</span> <span class="predicate-type">includes</span> <span class="string">"error1"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors[:2].id"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">2</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors[0:].id"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">2</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors[?(@.id)].id"</span> <span class="filter-type">nth</span> <span class="number">0</span> <span class="predicate-type">==</span> <span class="string">"error1"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors[?(@.id=='error1')].id"</span> <span class="filter-type">nth</span> <span class="number">0</span> <span class="predicate-type">==</span> <span class="string">"error1"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.failures[*].id"</span> <span class="predicate-type">includes</span> <span class="string">"failure1"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.duration"</span> <span class="predicate-type">==</span> <span class="number">1.5</span></span>
|
||||
@ -57,6 +61,10 @@
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$['profile-id']"</span> <span class="predicate-type">==</span> <span class="string">"123abc"</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors[0]"</span> <span class="not">not</span> <span class="predicate-type">isEmpty</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.empty"</span> <span class="predicate-type">isEmpty</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.*"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">10</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$.errors..*"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">4</span></span>
|
||||
<span class="line"><span class="query-type">jsonpath</span> <span class="string">"$..id"</span> <span class="filter-type">count</span> <span class="predicate-type">==</span> <span class="number">3</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"></span><span class="comment"># FIXME do we accept count filter on object?</span>
|
||||
<span class="line"></span><span class="comment"># jsonpath "$.empty" count == 0</span>
|
||||
<span class="json"><span class="line">{</span>
|
||||
|
@ -39,6 +39,10 @@ jsonpath "$.errors[0].id" == "error1"
|
||||
jsonpath "$.errors[0].id" isString
|
||||
jsonpath "$.errors[0]['id']" == "error1"
|
||||
jsonpath "$.errors[*].id" includes "error1"
|
||||
jsonpath "$.errors[0,1].id" includes "error1"
|
||||
jsonpath "$.errors[:2].id" count == 2
|
||||
jsonpath "$.errors[0:].id" count == 2
|
||||
jsonpath "$.errors[?(@.id)].id" nth 0 == "error1"
|
||||
jsonpath "$.errors[?(@.id=='error1')].id" nth 0 == "error1"
|
||||
jsonpath "$.failures[*].id" includes "failure1"
|
||||
jsonpath "$.duration" == 1.5
|
||||
@ -57,6 +61,10 @@ jsonpath "$.profile-id" == "123abc"
|
||||
jsonpath "$['profile-id']" == "123abc"
|
||||
jsonpath "$.errors[0]" not isEmpty
|
||||
jsonpath "$.empty" isEmpty
|
||||
jsonpath "$.*" count == 10
|
||||
jsonpath "$.errors..*" count == 4
|
||||
jsonpath "$..id" count == 3
|
||||
|
||||
# FIXME do we accept count filter on object?
|
||||
# jsonpath "$.empty" count == 0
|
||||
{
|
||||
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user