Skip to content

Commit 3570bae

Browse files
committed
Adds several missing test cases
This commit adds test cases found when running code coverage on JMESPath.rs. I've also removed a few duplicate test cases.
1 parent 05c8fc2 commit 3570bae

File tree

1 file changed

+56
-18
lines changed

1 file changed

+56
-18
lines changed

tests/syntax.json

Lines changed: 56 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,6 @@
1414
"expression": "foo.-11",
1515
"error": "syntax"
1616
},
17-
{
18-
"expression": "foo",
19-
"result": null
20-
},
21-
{
22-
"expression": "foo.",
23-
"error": "syntax"
24-
},
2517
{
2618
"expression": "foo.",
2719
"error": "syntax"
@@ -116,6 +108,17 @@
116108
}
117109
]
118110
},
111+
{
112+
"comment": "Paren syntax errors",
113+
"given": {},
114+
"cases": [
115+
{
116+
"comment": "missing closing paren",
117+
"expression": "(@",
118+
"error": "syntax"
119+
}
120+
]
121+
},
119122
{
120123
"comment": "Wildcard syntax",
121124
"given": {"type": "object"},
@@ -199,6 +202,37 @@
199202
{
200203
"expression": "foo[#]",
201204
"error": "syntax"
205+
},
206+
{
207+
"comment": "missing rbracket for led wildcard index",
208+
"expression": "led[*",
209+
"error": "syntax"
210+
}
211+
]
212+
},
213+
{
214+
"comment": "slice syntax",
215+
"given": {},
216+
"cases": [
217+
{
218+
"comment": "slice expected colon or rbracket",
219+
"expression": "[:@]",
220+
"error": "syntax"
221+
},
222+
{
223+
"comment": "slice has too many colons",
224+
"expression": "[:::]",
225+
"error": "syntax"
226+
},
227+
{
228+
"comment": "slice expected number",
229+
"expression": "[:@:]",
230+
"error": "syntax"
231+
},
232+
{
233+
"comment": "slice expected number of colon",
234+
"expression": "[:1@]",
235+
"error": "syntax"
202236
}
203237
]
204238
},
@@ -358,16 +392,6 @@
358392
"expression": "a.{foo}",
359393
"error": "syntax"
360394
},
361-
{
362-
"comment": "Missing value",
363-
"expression": "a.{foo:}",
364-
"error": "syntax"
365-
},
366-
{
367-
"comment": "Missing value with trailing comma",
368-
"expression": "a.{foo: ,}",
369-
"error": "syntax"
370-
},
371395
{
372396
"comment": "Valid multi-select hash extraction",
373397
"expression": "a.{foo: bar}",
@@ -402,6 +426,11 @@
402426
"comment": "Nested multi select",
403427
"expression": "{\"\\\\\":{\" \":*}}",
404428
"result": {"\\": {" ": ["object"]}}
429+
},
430+
{
431+
"comment": "Missing closing } after a valid nud",
432+
"expression": "{a: @",
433+
"error": "syntax"
405434
}
406435
]
407436
},
@@ -574,6 +603,11 @@
574603
"comment": "Two level flattened projection of a literal",
575604
"expression": "twolen[].threelen[].`\"bar\"`",
576605
"error": "syntax"
606+
},
607+
{
608+
"comment": "expects closing ]",
609+
"expression": "foo[? @ | @",
610+
"error": "syntax"
577611
}
578612
]
579613
},
@@ -592,6 +626,10 @@
592626
{
593627
"expression": "\"\\\\\"",
594628
"result": null
629+
},
630+
{
631+
"expression": "\"\\u\"",
632+
"error": "syntax"
595633
}
596634
]
597635
},

0 commit comments

Comments
 (0)