|
4 | 4 | "patch": [ { "op": "add", "path": "/1", "value": 2 } ], |
5 | 5 | "expected": { "foo": 1, "1": 2 } }, |
6 | 6 |
|
7 | | - { "comment": "missing 'value' parameter to add", |
8 | | - "doc": [ 1 ], |
9 | | - "patch": [ { "op": "add", "path": "/-" } ], |
10 | | - "error": "missing 'value' parameter" }, |
11 | | - |
12 | | - { "comment": "missing 'value' parameter to replace", |
13 | | - "doc": [ 1 ], |
14 | | - "patch": [ { "op": "replace", "path": "/0" } ], |
15 | | - "error": "missing 'value' parameter" }, |
16 | | - |
17 | | - { "comment": "missing 'value' parameter to test", |
18 | | - "doc": [ null ], |
19 | | - "patch": [ { "op": "test", "path": "/0" } ], |
20 | | - "error": "missing 'value' parameter" }, |
21 | | - |
22 | | - { "comment": "missing value parameter to test - where undef is falsy", |
23 | | - "doc": [ false ], |
24 | | - "patch": [ { "op": "test", "path": "/0" } ], |
25 | | - "error": "missing 'value' parameter" }, |
26 | | - |
27 | | - { "comment": "missing from parameter to copy", |
28 | | - "doc": [ 1 ], |
29 | | - "patch": [ { "op": "copy", "path": "/-" } ], |
30 | | - "error": "missing 'from' parameter" }, |
31 | | - |
32 | | - { "comment": "missing from parameter to move", |
33 | | - "doc": { "foo": 1 }, |
34 | | - "patch": [ { "op": "move", "path": "" } ], |
35 | | - "error": "missing 'from' parameter" }, |
36 | | - |
37 | | - { "comment": "duplicate ops", |
38 | | - "doc": { "foo": "bar" }, |
39 | | - "patch": [ { "op": "add", "path": "/baz", "value": "qux", |
40 | | - "op": "move", "from":"/foo" } ], |
41 | | - "error": "patch has two 'op' members", |
42 | | - "disabled": true }, |
43 | | - |
44 | 7 | { "comment": "Adding to \"/-\" adds to the end of the array", |
45 | 8 | "doc": [ 1, 2 ], |
46 | 9 | "patch": [ { "op": "add", "path": "/-", "value": 3 } ], |
|
86 | 49 | "patch": [{"op": "remove", "path": ""}], |
87 | 50 | "error": "Can't remove whole document" }, |
88 | 51 |
|
89 | | - { "comment": "unrecognized op should fail", |
90 | | - "doc": {"foo": 1}, |
91 | | - "patch": [{"op": "spam", "path": "/foo", "value": 1}], |
92 | | - "error": "Unrecognized op 'spam'" }, |
93 | | - |
94 | 52 | { "comment": "Ok to have doc as toplevel string?", |
95 | 53 | "doc": 1, |
96 | 54 | "patch": [{"op": "replace", "path": "", "value": "bar"}], |
|
156 | 114 | "patch": [{"op": "test", "path":"", "value": ""}], |
157 | 115 | "error": "test target value different - expected \"\", found false" }, |
158 | 116 |
|
159 | | - { "comment": "numeric literal with underscore", |
160 | | - "doc": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], |
161 | | - "patch": [{"op":"test", "path": "/1_1", "value":11}], |
162 | | - "error": "path '/1_1' not found" }, |
163 | | - |
164 | | - { "comment": "numeric literal with hex", |
165 | | - "doc": [0, 1], |
166 | | - "patch": [{"op":"test", "path": "/0x1", "value":1}], |
167 | | - "error": "path '/0x1' not found" }, |
168 | | - |
169 | | - { "comment": "numeric literal, long integer", |
170 | | - "doc": [0, 1], |
171 | | - "patch": [{"op":"test", "path": "/1L", "value":1}], |
172 | | - "error": "path '/1L' not found" }, |
173 | | - |
174 | | - { "comment": "bad number (in intermediate path location)", |
175 | | - "doc": [[0,[1]]], |
176 | | - "patch": [{"op": "test", "path": "/0/1e0/0", "value": 1}], |
177 | | - "error": "path '/0/1e0/0' not found" }, |
178 | | - |
179 | | - { "comment": "bad number (in intermediate path location)", |
180 | | - "doc": [[0,[1]]], |
181 | | - "patch": [{"op": "test", "path": "/0/01/0", "value": 1}], |
182 | | - "error": "path '/0/01/0' not found" }, |
183 | | - |
184 | | - { "comment": "Don't convert number representation for object lookup", |
185 | | - "doc": { "1e0": 1 }, |
186 | | - "patch": [{"op": "test", "path": "/1", "value": 1}], |
187 | | - "error": "path '/1' not found" }, |
188 | | - |
189 | | - { "comment": "Don't convert number representation for object lookup", |
190 | | - "doc": { "1e0": 1 }, |
191 | | - "patch": [{"op": "test", "path": "/1e0", "value": 1}] }, |
192 | | - |
193 | | - { "comment": "test remove with bad number should fail", |
194 | | - "doc": {"foo": 1, "baz": [{"qux": "hello"}]}, |
195 | | - "patch": [{"op": "remove", "path": "/baz/1e0/qux"}], |
196 | | - "error": "Path '/baz/1e0/qux' not found" }, |
197 | | - |
198 | | - { "comment": "test replace with bad number should fail", |
199 | | - "doc": [1, 2], |
200 | | - "patch": [{"op": "replace", "path": "/1e0", "value": false}], |
201 | | - "error": "non-array key '1e0' used on array" }, |
202 | | - |
203 | | - { "comment": "test copy with bad number should fail", |
204 | | - "doc": {"baz": [1,2,3], "bar": 1}, |
205 | | - "patch": [{"op": "copy", "from": "/baz/1e0", "path": "/boo"}], |
206 | | - "error": "path '/baz/1e0' not found" }, |
207 | | - |
208 | | - { "comment": "test move with bad number should fail", |
209 | | - "doc": {"foo": 1, "baz": [1,2,3,4]}, |
210 | | - "patch": [{"op": "move", "from": "/baz/1e0", "path": "/foo"}], |
211 | | - "error": "path '/baz/1e0' not found" }, |
212 | | - |
213 | 117 | { "comment": "null within string", |
214 | 118 | "doc": [ "foo\u0000foo" ], |
215 | 119 | "patch": [{"op":"test", "path":"/0", "value":"foo\u0000foo"}] }, |
|
292 | 196 | "patch": {"op":"add", "path":"/1b", "value":"b"}, |
293 | 197 | "expected": {"0a":"a", "1b":"b", "2c": "c"} }, |
294 | 198 |
|
| 199 | + { "comment": "Numerically equal must test equal", |
| 200 | + "doc": [1.00], |
| 201 | + "patch": [{"op": "test", "path":"/0", "value":1}]}, |
| 202 | + |
| 203 | + { "comment": "Numerically equal must test equal", |
| 204 | + "doc": [1], |
| 205 | + "patch": [{"op": "test", "path":"/0", "value":1.00}]}, |
| 206 | + |
| 207 | + { "comment": "Numerically equal must test equal", |
| 208 | + "doc": [1e0], |
| 209 | + "patch": [{"op": "test", "path":"/0", "value":1.00}]}, |
| 210 | + |
| 211 | + { "comment": "append", |
| 212 | + "doc": [1, 2, 3, 4], |
| 213 | + "patch": [{"op": "append", "path": "/-", "value":[5, 6, 7, 8]}], |
| 214 | + "expected": [1, 2, 3, 4, 5, 6, 7, 8] }, |
| 215 | + |
295 | 216 | { "comment": "last" } |
296 | 217 | ] |
0 commit comments