Skip to content

Commit 492f8d0

Browse files
committed
Update tests to remove hash key order
1 parent 79357f3 commit 492f8d0

File tree

4 files changed

+98
-54
lines changed

4 files changed

+98
-54
lines changed

tests/filters.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,10 @@
275275
"expression": "reservations[].instances[?bar==`1`]",
276276
"result": [[{"foo": 2, "bar": 1}]]
277277
},
278+
{
279+
"expression": "reservations[*].instances[?bar==`1`]",
280+
"result": [[{"foo": 2, "bar": 1}]]
281+
},
278282
{
279283
"expression": "reservations[].instances[?bar==`1`][]",
280284
"result": [{"foo": 2, "bar": 1}]

tests/functions.json

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -324,8 +324,8 @@
324324
"result": "object"
325325
},
326326
{
327-
"expression": "keys(objects)",
328-
"result": ["foo", "bar"]
327+
"expression": "sort(keys(objects))",
328+
"result": ["bar", "foo"]
329329
},
330330
{
331331
"expression": "keys(foo)",
@@ -340,7 +340,7 @@
340340
"error": "invalid-type"
341341
},
342342
{
343-
"expression": "values(objects)",
343+
"expression": "sort(values(objects))",
344344
"result": ["bar", "baz"]
345345
},
346346
{
@@ -619,6 +619,16 @@
619619
{"age": 50, "age_str": "50", "bool": false, "name": "d"}
620620
]
621621
},
622+
{
623+
"expression": "sort_by(people, &age_str)",
624+
"result": [
625+
{"age": 10, "age_str": "10", "bool": true, "name": 3},
626+
{"age": 20, "age_str": "20", "bool": true, "name": "a", "extra": "foo"},
627+
{"age": 30, "age_str": "30", "bool": true, "name": "c"},
628+
{"age": 40, "age_str": "40", "bool": false, "name": "b", "extra": "bar"},
629+
{"age": 50, "age_str": "50", "bool": false, "name": "d"}
630+
]
631+
},
622632
{
623633
"description": "sort by function expression",
624634
"expression": "sort_by(people, &to_number(age_str))",

tests/pipe.json

Lines changed: 35 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,43 +2,69 @@
22
"given": {
33
"foo": {
44
"bar": {
5-
"baz": "one"
5+
"baz": "subkey"
66
},
77
"other": {
8-
"baz": "two"
8+
"baz": "subkey"
99
},
1010
"other2": {
11-
"baz": "three"
11+
"baz": "subkey"
1212
},
1313
"other3": {
1414
"notbaz": ["a", "b", "c"]
1515
},
1616
"other4": {
17-
"notbaz": ["d", "e", "f"]
17+
"notbaz": ["a", "b", "c"]
1818
}
1919
}
2020
},
2121
"cases": [
2222
{
2323
"expression": "foo.*.baz | [0]",
24-
"result": "one"
24+
"result": "subkey"
2525
},
2626
{
2727
"expression": "foo.*.baz | [1]",
28-
"result": "two"
28+
"result": "subkey"
2929
},
3030
{
3131
"expression": "foo.*.baz | [2]",
32-
"result": "three"
32+
"result": "subkey"
3333
},
3434
{
3535
"expression": "foo.bar.* | [0]",
36-
"result": "one"
36+
"result": "subkey"
3737
},
3838
{
3939
"expression": "foo.*.notbaz | [*]",
40-
"result": [["a", "b", "c"], ["d", "e", "f"]]
40+
"result": [["a", "b", "c"], ["a", "b", "c"]]
4141
},
42+
{
43+
"expression": "{\"a\": foo.bar, \"b\": foo.other} | *.baz",
44+
"result": ["subkey", "subkey"]
45+
}
46+
]
47+
}, {
48+
"given": {
49+
"foo": {
50+
"bar": {
51+
"baz": "one"
52+
},
53+
"other": {
54+
"baz": "two"
55+
},
56+
"other2": {
57+
"baz": "three"
58+
},
59+
"other3": {
60+
"notbaz": ["a", "b", "c"]
61+
},
62+
"other4": {
63+
"notbaz": ["d", "e", "f"]
64+
}
65+
}
66+
},
67+
"cases": [
4268
{
4369
"expression": "foo | bar",
4470
"result": {"baz": "one"}
@@ -71,10 +97,6 @@
7197
"expression": "{\"a\": foo.bar, \"b\": foo.other} | b",
7298
"result": {"baz": "two"}
7399
},
74-
{
75-
"expression": "{\"a\": foo.bar, \"b\": foo.other} | *.baz",
76-
"result": ["one", "two"]
77-
},
78100
{
79101
"expression": "foo.bam || foo.bar | baz",
80102
"result": "one"

tests/wildcard.json

Lines changed: 46 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -2,69 +2,82 @@
22
"given": {
33
"foo": {
44
"bar": {
5-
"baz": "one"
5+
"baz": "val"
66
},
77
"other": {
8-
"baz": "two"
8+
"baz": "val"
99
},
1010
"other2": {
11-
"baz": "three"
11+
"baz": "val"
1212
},
1313
"other3": {
1414
"notbaz": ["a", "b", "c"]
1515
},
1616
"other4": {
17-
"notbaz": ["d", "e", "f"]
17+
"notbaz": ["a", "b", "c"]
1818
},
1919
"other5": {
2020
"other": {
2121
"a": 1,
22-
"b": 2,
23-
"c": 3
22+
"b": 1,
23+
"c": 1
2424
}
2525
}
2626
}
2727
},
2828
"cases": [
2929
{
3030
"expression": "foo.*.baz",
31-
"result": ["one", "two", "three"]
31+
"result": ["val", "val", "val"]
3232
},
3333
{
3434
"expression": "foo.bar.*",
35-
"result": ["one"]
35+
"result": ["val"]
3636
},
3737
{
3838
"expression": "foo.*.notbaz",
39-
"result": [["a", "b", "c"], ["d", "e", "f"]]
39+
"result": [["a", "b", "c"], ["a", "b", "c"]]
4040
},
4141
{
4242
"expression": "foo.*.notbaz[0]",
43-
"result": ["a", "d"]
43+
"result": ["a", "a"]
4444
},
4545
{
4646
"expression": "foo.*.notbaz[-1]",
47-
"result": ["c", "f"]
48-
},
47+
"result": ["c", "c"]
48+
}
49+
]
50+
}, {
51+
"given": {
52+
"foo": {
53+
"first-1": {
54+
"second-1": "val"
55+
},
56+
"first-2": {
57+
"second-1": "val"
58+
},
59+
"first-3": {
60+
"second-1": "val"
61+
}
62+
}
63+
},
64+
"cases": [
4965
{
5066
"expression": "foo.*",
51-
"result": [{"baz": "one"}, {"baz": "two"}, {"baz": "three"},
52-
{"notbaz": ["a", "b", "c"]}, {"notbaz": ["d", "e", "f"]},
53-
{"other": {"a": 1, "b": 2, "c": 3}}]
67+
"result": [{"second-1": "val"}, {"second-1": "val"},
68+
{"second-1": "val"}]
5469
},
5570
{
5671
"expression": "foo.*.*",
57-
"result": [["one"], ["two"], ["three"],
58-
[["a", "b", "c"]], [["d", "e", "f"]],
59-
[{"a": 1, "b": 2, "c": 3}]]
72+
"result": [["val"], ["val"], ["val"]]
6073
},
6174
{
6275
"expression": "foo.*.*.*",
63-
"result": [[], [], [], [], [], [[1, 2, 3]]]
76+
"result": [[], [], []]
6477
},
6578
{
6679
"expression": "foo.*.*.*.*",
67-
"result": [[], [], [], [], [], [[]]]
80+
"result": [[], [], []]
6881
}
6982
]
7083
}, {
@@ -73,7 +86,7 @@
7386
"bar": "one"
7487
},
7588
"other": {
76-
"bar": "two"
89+
"bar": "one"
7790
},
7891
"nomatch": {
7992
"notbar": "three"
@@ -82,7 +95,7 @@
8295
"cases": [
8396
{
8497
"expression": "*.bar",
85-
"result": ["one", "two"]
98+
"result": ["one", "one"]
8699
}
87100
]
88101
}, {
@@ -91,37 +104,32 @@
91104
"sub1": {"foo": "one"}
92105
},
93106
"top2": {
94-
"sub1": {"foo": "two"}
95-
},
96-
"top3": {
97-
"sub3": {"notfoo": "notfoo"}
107+
"sub1": {"foo": "one"}
98108
}
99109
},
100110
"cases": [
101111
{
102112
"expression": "*",
103113
"result": [{"sub1": {"foo": "one"}},
104-
{"sub1": {"foo": "two"}},
105-
{ "sub3": {"notfoo": "notfoo"}}]
114+
{"sub1": {"foo": "one"}}]
106115
},
107116
{
108117
"expression": "*.sub1",
109118
"result": [{"foo": "one"},
110-
{"foo": "two"}]
119+
{"foo": "one"}]
111120
},
112121
{
113122
"expression": "*.*",
114123
"result": [[{"foo": "one"}],
115-
[{"foo": "two"}],
116-
[{"notfoo": "notfoo"}]]
124+
[{"foo": "one"}]]
117125
},
118126
{
119-
"expression": "*.*.foo",
120-
"result": [["one"], ["two"], []]
127+
"expression": "*.*.foo[]",
128+
"result": ["one", "one"]
121129
},
122130
{
123131
"expression": "*.sub1.foo",
124-
"result": ["one", "two"]
132+
"result": ["one", "one"]
125133
}
126134
]
127135
},
@@ -409,7 +417,7 @@
409417
{
410418
"given": {
411419
"string": "string",
412-
"hash": {"foo": "bar", "bar": "baz"},
420+
"hash": {"foo": "val", "bar": "val"},
413421
"number": 23,
414422
"array": [1, 2, 3],
415423
"nullvalue": null
@@ -421,7 +429,7 @@
421429
},
422430
{
423431
"expression": "hash.*",
424-
"result": ["bar", "baz"]
432+
"result": ["val", "val"]
425433
},
426434
{
427435
"expression": "number.*",
@@ -440,12 +448,12 @@
440448
{
441449
"given": {
442450
"a": [0, 1, 2],
443-
"b": [3, 4, 5]
451+
"b": [0, 1, 2]
444452
},
445453
"cases": [
446454
{
447455
"expression": "*[0]",
448-
"result": [0, 3]
456+
"result": [0, 0]
449457
}
450458
]
451459
}

0 commit comments

Comments
 (0)