@based/schema 2.0.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/dist/display/dateString copy.d.ts +3 -0
  2. package/dist/display/dateString copy.js +127 -0
  3. package/dist/display/dateString copy.js.map +1 -0
  4. package/dist/display/dateString.d.ts +3 -0
  5. package/dist/display/dateString.js +127 -0
  6. package/dist/display/dateString.js.map +1 -0
  7. package/dist/display/display.d.ts +1 -0
  8. package/dist/display/display.js +8 -0
  9. package/dist/display/display.js.map +1 -0
  10. package/dist/display/index.d.ts +2 -0
  11. package/dist/display/index.js +26 -0
  12. package/dist/display/index.js.map +1 -0
  13. package/dist/display/number copy.d.ts +3 -0
  14. package/dist/display/number copy.js +81 -0
  15. package/dist/display/number copy.js.map +1 -0
  16. package/dist/display/number.d.ts +3 -0
  17. package/dist/display/number.js +89 -0
  18. package/dist/display/number.js.map +1 -0
  19. package/dist/display/string.d.ts +3 -0
  20. package/dist/display/string.js +23 -0
  21. package/dist/display/string.js.map +1 -0
  22. package/dist/display/timestamp.d.ts +3 -0
  23. package/dist/display/timestamp.js +127 -0
  24. package/dist/display/timestamp.js.map +1 -0
  25. package/dist/display.d.ts +2 -0
  26. package/dist/display.js +8 -0
  27. package/dist/display.js.map +1 -0
  28. package/dist/error.d.ts +0 -1
  29. package/dist/error.js +1 -1
  30. package/dist/error.js.map +1 -1
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.js +1 -0
  33. package/dist/index.js.map +1 -1
  34. package/dist/languages.d.ts +0 -1
  35. package/dist/set/fields/array.d.ts +0 -1
  36. package/dist/set/fields/index.d.ts +0 -1
  37. package/dist/set/fields/number.d.ts +0 -1
  38. package/dist/set/fields/object.d.ts +0 -1
  39. package/dist/set/fields/references.d.ts +0 -1
  40. package/dist/set/fields/set.d.ts +0 -1
  41. package/dist/set/fields/string.d.ts +0 -1
  42. package/dist/set/index.d.ts +0 -1
  43. package/dist/set/isValidId.d.ts +0 -1
  44. package/dist/set/types.d.ts +0 -1
  45. package/dist/types.d.ts +15 -5
  46. package/dist/types.js +19 -1
  47. package/dist/types.js.map +1 -1
  48. package/dist/updateSchema.d.ts +0 -1
  49. package/dist/validateSchema.d.ts +0 -1
  50. package/dist/walker/args.d.ts +0 -1
  51. package/dist/walker/index.d.ts +0 -1
  52. package/dist/walker/parse.d.ts +0 -1
  53. package/dist/walker/types.d.ts +0 -1
  54. package/dist/walker/types.js +1 -1
  55. package/dist/walker/types.js.map +1 -1
  56. package/package.json +4 -3
  57. package/dist/error.d.ts.map +0 -1
  58. package/dist/index.d.ts.map +0 -1
  59. package/dist/languages.d.ts.map +0 -1
  60. package/dist/set/fields/array.d.ts.map +0 -1
  61. package/dist/set/fields/index.d.ts.map +0 -1
  62. package/dist/set/fields/number.d.ts.map +0 -1
  63. package/dist/set/fields/object.d.ts.map +0 -1
  64. package/dist/set/fields/references.d.ts.map +0 -1
  65. package/dist/set/fields/set.d.ts.map +0 -1
  66. package/dist/set/fields/string.d.ts.map +0 -1
  67. package/dist/set/index.d.ts.map +0 -1
  68. package/dist/set/isValidId.d.ts.map +0 -1
  69. package/dist/set/types.d.ts.map +0 -1
  70. package/dist/types.d.ts.map +0 -1
  71. package/dist/updateSchema.d.ts.map +0 -1
  72. package/dist/validateSchema.d.ts.map +0 -1
  73. package/dist/walker/args.d.ts.map +0 -1
  74. package/dist/walker/index.d.ts.map +0 -1
  75. package/dist/walker/parse.d.ts.map +0 -1
  76. package/dist/walker/types.d.ts.map +0 -1
  77. package/src/error.ts +0 -19
  78. package/src/index.ts +0 -7
  79. package/src/languages.ts +0 -188
  80. package/src/set/fields/array.ts +0 -155
  81. package/src/set/fields/index.ts +0 -70
  82. package/src/set/fields/number.ts +0 -144
  83. package/src/set/fields/object.ts +0 -31
  84. package/src/set/fields/references.ts +0 -140
  85. package/src/set/fields/set.ts +0 -63
  86. package/src/set/fields/string.ts +0 -291
  87. package/src/set/index.ts +0 -186
  88. package/src/set/isValidId.ts +0 -23
  89. package/src/set/types.ts +0 -0
  90. package/src/types.ts +0 -365
  91. package/src/updateSchema.ts +0 -18
  92. package/src/validateSchema.ts +0 -64
  93. package/src/walker/args.ts +0 -209
  94. package/src/walker/index.ts +0 -48
  95. package/src/walker/parse.ts +0 -233
  96. package/src/walker/types.ts +0 -81
  97. package/test/array.ts +0 -388
  98. package/test/number.ts +0 -435
  99. package/test/reference.ts +0 -219
  100. package/test/rest.ts +0 -185
  101. package/test/set.ts +0 -104
  102. package/test/string.ts +0 -118
  103. package/test/text.ts +0 -348
  104. package/test/utils/index.ts +0 -23
  105. package/test/validateSchema.ts +0 -41
  106. package/test/walker.ts +0 -319
  107. package/tsconfig.json +0 -9
package/test/number.ts DELETED
@@ -1,435 +0,0 @@
1
- import test from 'ava'
2
- import {
3
- ArgsClass,
4
- BasedSchema,
5
- BasedSchemaCollectProps,
6
- BasedSetTarget,
7
- setWalker,
8
- } from '../src/index'
9
- import { ParseError } from '../src/error'
10
- import { resultCollect, errorCollect } from './utils'
11
- type NumberTypes = 'number' | 'timestamp' | 'integer'
12
-
13
- const schema: BasedSchema = {
14
- types: {
15
- bla: {
16
- prefix: 'bl',
17
- fields: {
18
- number: {
19
- type: 'number',
20
- maximum: 6,
21
- minimum: 3,
22
- },
23
- infiniteNum: {
24
- type: 'number',
25
- },
26
- infiniteInt: {
27
- type: 'integer',
28
- },
29
- exclusiveminmax: {
30
- type: 'number',
31
- minimum: 3,
32
- exclusiveMinimum: true,
33
- maximum: 6,
34
- exclusiveMaximum: true,
35
- },
36
- integer: {
37
- type: 'integer',
38
- },
39
- multipleOf: {
40
- type: 'integer',
41
- multipleOf: 3,
42
- },
43
- set: {
44
- type: 'set',
45
- items: { type: 'number', minimum: 3, maximum: 6 },
46
- },
47
- },
48
- },
49
- },
50
- $defs: {},
51
- language: 'en',
52
- root: {
53
- fields: {},
54
- },
55
- prefixToTypeMapping: {
56
- bl: 'bla',
57
- },
58
- }
59
-
60
- //todo need help typing this maybe
61
-
62
- test('min-max', async (t) => {
63
- const e1 = await setWalker(schema, {
64
- $id: 'bl1',
65
- number: 1,
66
- })
67
-
68
- const e2 = await setWalker(schema, {
69
- $id: 'bl1',
70
- number: 10,
71
- })
72
-
73
- const res1 = await setWalker(schema, {
74
- $id: 'bl1',
75
- number: 3,
76
- })
77
-
78
- const res2 = await setWalker(schema, {
79
- $id: 'bl1',
80
- number: 6,
81
- })
82
-
83
- t.true(errorCollect(e1, e2).length > 0)
84
-
85
- t.deepEqual(resultCollect(res1, res2), [
86
- { path: ['number'], value: 3 },
87
- { path: ['number'], value: 6 },
88
- ])
89
- })
90
-
91
- test('min-max exclusive', async (t) => {
92
- const e1 = await setWalker(schema, {
93
- $id: 'bl1',
94
- exclusiveminmax: 3,
95
- })
96
-
97
- const e2 = await setWalker(schema, {
98
- $id: 'bl1',
99
- exclusiveminmax: 6,
100
- })
101
-
102
- const res1 = await setWalker(schema, {
103
- $id: 'bl1',
104
- exclusiveminmax: 4,
105
- })
106
-
107
- const res2 = await setWalker(schema, {
108
- $id: 'bl1',
109
- exclusiveminmax: 5,
110
- })
111
-
112
- t.assert(errorCollect(e1, e2).length > 0)
113
-
114
- t.deepEqual(resultCollect(res1, res2), [
115
- { path: ['exclusiveminmax'], value: 4 },
116
- { path: ['exclusiveminmax'], value: 5 },
117
- ])
118
- })
119
-
120
- test('isInteger', async (t) => {
121
- const e1 = await setWalker(schema, {
122
- $id: 'bl1',
123
- integer: 6.5,
124
- })
125
-
126
- const res1 = await setWalker(schema, {
127
- $id: 'bl1',
128
- integer: 5,
129
- })
130
-
131
- t.assert(errorCollect(e1).length > 0)
132
- t.deepEqual(resultCollect(res1), [{ path: ['integer'], value: 5 }])
133
- })
134
-
135
- test('isMultiple', async (t) => {
136
- const e1 = await setWalker(schema, {
137
- $id: 'bl1',
138
- multipleOf: 7,
139
- })
140
-
141
- const res1 = await setWalker(schema, {
142
- $id: 'bl1',
143
- multipleOf: 9,
144
- })
145
-
146
- t.assert(errorCollect(e1).length > 0)
147
- t.deepEqual(resultCollect(res1), [{ path: ['multipleOf'], value: 9 }])
148
- })
149
-
150
- //TODO fix
151
- test('numbers in a set', async (t) => {
152
- const e1 = await setWalker(schema, {
153
- $id: 'bl1',
154
- set: [9, 4, 5, 2],
155
- })
156
- const res1 = await setWalker(schema, { $id: 'bl1', set: [3, 3, 3, 3] })
157
-
158
- t.assert(errorCollect(e1).length > 0)
159
- t.deepEqual(resultCollect(res1), [
160
- { path: ['set'], value: { $value: [3, 3, 3, 3] } },
161
- ])
162
- })
163
- //TODO fix
164
- test('value', async (t) => {
165
- const e1 = await setWalker(schema, {
166
- $id: 'bl1',
167
- number: { $value: 7 },
168
- })
169
- const e2 = await setWalker(schema, {
170
- $id: 'bl1',
171
- exclusiveminmax: { $value: 3 },
172
- })
173
- const e3 = await setWalker(schema, {
174
- $id: 'bl1',
175
- integer: { value: 3.5 },
176
- })
177
-
178
- const e4 = await setWalker(schema, {
179
- $id: 'bl1',
180
- set: { $value: [1, 3, 3, 4] },
181
- })
182
-
183
- const e5 = await setWalker(schema, {
184
- $id: 'bl1',
185
- multipleOf: { $value: 2 },
186
- })
187
-
188
- const res1 = await setWalker(schema, {
189
- $id: 'bl1',
190
- number: { $value: 4 },
191
- })
192
- const res2 = await setWalker(schema, {
193
- $id: 'bl1',
194
- integer: { $value: 4 },
195
- })
196
- const res3 = await setWalker(schema, {
197
- $id: 'bl1',
198
- exclusiveminmax: { $value: 4 },
199
- })
200
- const res4 = await setWalker(schema, {
201
- $id: 'bl1',
202
- multipleOf: { $value: 6 },
203
- })
204
-
205
- const res5 = await setWalker(schema, {
206
- $id: 'bl1',
207
- set: { $value: [3, 3, 3, 4] },
208
- })
209
-
210
- t.assert(errorCollect(e1, e2, e3, e4, e5).length > 0)
211
- t.deepEqual(resultCollect(res1, res2, res3, res4), [
212
- { path: ['number'], value: 4 },
213
- { path: ['integer'], value: 4 },
214
- { path: ['exclusiveminmax'], value: 4 },
215
- { path: ['multipleOf'], value: 6 },
216
- ])
217
- })
218
-
219
- test('default', async (t) => {
220
- const e1 = await setWalker(schema, {
221
- $id: 'bl1',
222
- number: { $default: 7 },
223
- })
224
- const e2 = await setWalker(schema, {
225
- $id: 'bl1',
226
- exclusiveminmax: { $default: 3 },
227
- })
228
- const e3 = await setWalker(schema, {
229
- $id: 'bl1',
230
- integer: { default: 3.5 },
231
- })
232
-
233
- const e4 = await setWalker(schema, {
234
- $id: 'bl1',
235
- set: { $default: [1, 3, 3, 4] },
236
- })
237
-
238
- const e5 = await setWalker(schema, {
239
- $id: 'bl1',
240
- multipleOf: { $default: 2 },
241
- })
242
-
243
- const res1 = await setWalker(schema, {
244
- $id: 'bl1',
245
- number: { $default: 4 },
246
- })
247
- const res2 = await setWalker(schema, {
248
- $id: 'bl1',
249
- integer: { $default: 4 },
250
- })
251
- const res3 = await setWalker(schema, {
252
- $id: 'bl1',
253
- exclusiveminmax: { $default: 4 },
254
- })
255
- const res4 = await setWalker(schema, {
256
- $id: 'bl1',
257
- multipleOf: { $default: 6 },
258
- })
259
-
260
- const res5 = await setWalker(schema, {
261
- $id: 'bl1',
262
- set: { $default: [3, 3, 3, 4] },
263
- })
264
-
265
- t.assert(errorCollect(e1, e2, e3, e4, e5).length > 0)
266
- t.deepEqual(resultCollect(res1, res2, res3, res4, res5), [
267
- { path: ['number'], value: { $default: 4 } },
268
- { path: ['integer'], value: { $default: 4 } },
269
- { path: ['exclusiveminmax'], value: { $default: 4 } },
270
- { path: ['multipleOf'], value: { $default: 6 } },
271
- { path: ['set'], value: { $default: { $value: [3, 3, 3, 4] } } },
272
- ])
273
- })
274
-
275
- test('decrement', async (t) => {
276
- //maxmin
277
- const e1 = await setWalker(schema, {
278
- $id: 'bl1',
279
- number: { $decrement: 2 },
280
- })
281
- const e2 = await setWalker(schema, {
282
- $id: 'bl1',
283
- number: { $decrement: 7 },
284
- })
285
-
286
- const res1 = await setWalker(schema, {
287
- $id: 'bl1',
288
- number: { $decrement: 3 },
289
- })
290
- //exclusiveminmax
291
- const e3 = await setWalker(schema, {
292
- $id: 'bl1',
293
- exclusiveminmax: { $decrement: 3 },
294
- })
295
- const e4 = await setWalker(schema, {
296
- $id: 'bl1',
297
- exclusiveminmax: { $decrement: 6 },
298
- })
299
-
300
- const res2 = await setWalker(schema, {
301
- $id: 'bl1',
302
- exclusiveminmax: { $decrement: 4 },
303
- })
304
-
305
- //integer
306
- const e5 = await setWalker(schema, {
307
- $id: 'bl1',
308
- integer: { $decrement: 3.5 },
309
- })
310
-
311
- const res3 = await setWalker(schema, {
312
- $id: 'bl1',
313
- integer: { $decrement: 3 },
314
- })
315
- //multiple of
316
-
317
- const e6 = await setWalker(schema, {
318
- $id: 'bl1',
319
- multipleOf: { $decrement: 7 },
320
- })
321
-
322
- const res4 = await setWalker(schema, {
323
- $id: 'bl1',
324
- multipleOf: { $decrement: 9 },
325
- })
326
-
327
- t.assert(errorCollect(e1, e2, e3, e4, e5, e6).length > 0)
328
- t.deepEqual(resultCollect(res1, res2, res3, res4), [
329
- { path: ['number'], value: { $decrement: 3 } },
330
- { path: ['exclusiveminmax'], value: { $decrement: 4 } },
331
- { path: ['integer'], value: { $decrement: 3 } },
332
- { path: ['multipleOf'], value: { $decrement: 9 } },
333
- ])
334
- })
335
-
336
- test('increment', async (t) => {
337
- //maxmin
338
- const e1 = await setWalker(schema, {
339
- $id: 'bl1',
340
- number: { $increment: 2 },
341
- })
342
- const e2 = await setWalker(schema, {
343
- $id: 'bl1',
344
- number: { $increment: 7 },
345
- })
346
-
347
- const res1 = await setWalker(schema, {
348
- $id: 'bl1',
349
- number: { $increment: 3 },
350
- })
351
- //exclusiveminmax
352
- const e3 = await setWalker(schema, {
353
- $id: 'bl1',
354
- exclusiveminmax: { $increment: 3 },
355
- })
356
- const e4 = await setWalker(schema, {
357
- $id: 'bl1',
358
- exclusiveminmax: { $increment: 6 },
359
- })
360
-
361
- const res2 = await setWalker(schema, {
362
- $id: 'bl1',
363
- exclusiveminmax: { $increment: 4 },
364
- })
365
-
366
- //integer
367
- const e5 = await setWalker(schema, {
368
- $id: 'bl1',
369
- integer: { $increment: 3.5 },
370
- })
371
-
372
- const res3 = await setWalker(schema, {
373
- $id: 'bl1',
374
- integer: { $increment: 3 },
375
- })
376
- //multiple of
377
-
378
- const e6 = await setWalker(schema, {
379
- $id: 'bl1',
380
- multipleOf: { $increment: 7 },
381
- })
382
-
383
- const res4 = await setWalker(schema, {
384
- $id: 'bl1',
385
- multipleOf: { $increment: 9 },
386
- })
387
-
388
- t.assert(errorCollect(e1, e2, e3, e4, e5, e6).length > 0)
389
- t.deepEqual(resultCollect(res1, res2, res3, res4), [
390
- { path: ['number'], value: { $increment: 3 } },
391
- { path: ['exclusiveminmax'], value: { $increment: 4 } },
392
- { path: ['integer'], value: { $increment: 3 } },
393
- { path: ['multipleOf'], value: { $increment: 9 } },
394
- ])
395
- })
396
-
397
- test('NaN', async (t) => {
398
- const r = await setWalker(schema, {
399
- $id: 'bl120',
400
- integer: NaN,
401
- })
402
- t.is(r.errors.length, 1)
403
- })
404
-
405
- test('Infinity (integer)', async (t) => {
406
- const r = await setWalker(schema, {
407
- $id: 'bl120',
408
- integer: Infinity,
409
- })
410
- t.is(r.errors.length, 1)
411
- })
412
-
413
- test('Infinity (number)', async (t) => {
414
- const r = await setWalker(schema, {
415
- $id: 'bl120',
416
- infiniteNum: Infinity,
417
- })
418
- t.is(r.errors.length, 1)
419
- })
420
-
421
- test('number -infinity', async (t) => {
422
- const r = await setWalker(schema, {
423
- $id: 'bl120',
424
- infiniteNum: -Infinity,
425
- })
426
- t.is(r.errors.length, 1)
427
- })
428
-
429
- test('number with max infinity', async (t) => {
430
- const r = await setWalker(schema, {
431
- $id: 'bl120',
432
- number: Infinity,
433
- })
434
- t.is(r.errors.length, 1)
435
- })
package/test/reference.ts DELETED
@@ -1,219 +0,0 @@
1
- import test from 'ava'
2
- import { BasedSchema, setWalker } from '../src/index'
3
- import { resultCollect } from './utils'
4
-
5
- const schema: BasedSchema = {
6
- types: {
7
- thing: {
8
- prefix: 'ti',
9
- fields: {
10
- priority: { type: 'number' },
11
- something: { type: 'string', format: 'strongPassword' },
12
- },
13
- },
14
- bla: {
15
- prefix: 'bl',
16
- fields: {
17
- ref: {
18
- type: 'reference',
19
- },
20
- children: {
21
- type: 'references',
22
- },
23
- referencesToThings: {
24
- type: 'references',
25
- allowedTypes: ['thing'],
26
- },
27
- referenceToThing: {
28
- type: 'reference',
29
- allowedTypes: ['thing'],
30
- },
31
- },
32
- },
33
- },
34
- $defs: {},
35
- language: 'en',
36
- translations: ['de', 'nl', 'ro', 'za', 'ae'],
37
- root: {
38
- fields: {},
39
- },
40
- prefixToTypeMapping: {
41
- bl: 'bla',
42
- ti: 'thing',
43
- },
44
- }
45
-
46
- let r
47
-
48
- test('simple error', async (t) => {
49
- r = await setWalker(schema, {
50
- $id: 'bl120',
51
- referenceToThing: 'sdfefewfewfewewffwe',
52
- })
53
-
54
- t.true(r.errors.length === 1)
55
- })
56
-
57
- test('simple case ', async (t) => {
58
- r = await setWalker(schema, {
59
- $id: 'bl120',
60
- referenceToThing: 'tibla',
61
- })
62
-
63
- t.deepEqual(resultCollect(r), [
64
- { path: ['referenceToThing'], value: 'tibla' },
65
- ])
66
- })
67
-
68
- test('reference to wrong type', async (t) => {
69
- r = await setWalker(schema, {
70
- $id: 'bl120',
71
- referenceToThing: 'blbla',
72
- })
73
- t.true(r.errors.length === 1)
74
- })
75
-
76
- test('references with wrongly formatted ids and incorrect types ', async (t) => {
77
- r = await setWalker(schema, {
78
- $id: 'bl120',
79
- referencesToThings: ['blbla', 'ti123', 'ewiohfdoweihfw'],
80
- })
81
-
82
- t.true(r.errors.length === 2)
83
- })
84
-
85
- test('references to empty array (clear)', async (t) => {
86
- r = await setWalker(schema, {
87
- $id: 'bl120',
88
- referencesToThings: [],
89
- })
90
- t.deepEqual(resultCollect(r), [
91
- { path: ['referencesToThings'], value: { $value: [] } },
92
- ])
93
- t.is(r.errors.length, 0)
94
- })
95
-
96
- test('$remove references', async (t) => {
97
- r = await setWalker(schema, {
98
- $id: 'bl120',
99
- referencesToThings: { $remove: ['ti123'] },
100
- })
101
-
102
- t.deepEqual(resultCollect(r), [
103
- { path: ['referencesToThings'], value: { $remove: ['ti123'] } },
104
- ])
105
- })
106
-
107
- test('$add 0 2 wrong', async (t) => {
108
- r = await setWalker(schema, {
109
- $id: 'bl120',
110
- referencesToThings: { $add: ['blbla', 'ti123', 'ewiohfdoweihfw'] },
111
- })
112
-
113
- t.true(r.errors.length === 2)
114
- })
115
-
116
- test('$add correct ', async (t) => {
117
- r = await setWalker(schema, {
118
- $id: 'bl120',
119
- referencesToThings: { $add: 'ti123' },
120
- })
121
-
122
- t.deepEqual(resultCollect(r), [
123
- { path: ['referencesToThings'], value: { $add: ['ti123'] } },
124
- ])
125
- })
126
-
127
- test('$remove $value not allowed', async (t) => {
128
- r = await setWalker(schema, {
129
- $id: 'bl120',
130
- referencesToThings: { $remove: { $value: 'ti123' } },
131
- })
132
-
133
- t.true(r.errors.length > 0)
134
- })
135
-
136
- test('reference to an object', async (t) => {
137
- r = await setWalker(
138
- schema,
139
- {
140
- $id: 'bl120',
141
- referenceToThing: {
142
- type: 'thing',
143
- priority: 9000,
144
- },
145
- },
146
- async (args) => {
147
- if (args.value.type === 'thing') {
148
- return 'tilil'
149
- } else {
150
- return 'bl1221'
151
- }
152
- }
153
- )
154
-
155
- t.is(r.errors.length, 0)
156
-
157
- t.deepEqual(resultCollect(r), [
158
- { path: ['referenceToThing'], value: 'tilil' },
159
- ])
160
-
161
- t.true(true)
162
- })
163
-
164
- test('nested references + $add (deep)', async (t) => {
165
- r = await setWalker(
166
- schema,
167
- {
168
- $id: 'bl1221',
169
- children: {
170
- $add: [
171
- {
172
- type: 'bla',
173
- },
174
- ],
175
- },
176
- },
177
- async (args) => {
178
- if (args.value.type === 'thing') {
179
- return 'tilil'
180
- } else {
181
- return 'bl1221'
182
- }
183
- }
184
- )
185
- t.is(r.errors.length, 0)
186
- t.deepEqual(resultCollect(r), [
187
- { path: ['children'], value: { $add: ['bl1221'] } },
188
- ])
189
- })
190
-
191
- test('nested ref + references', async (t) => {
192
- r = await setWalker(
193
- schema,
194
- {
195
- $id: 'bl1221',
196
- ref: {
197
- $id: 'bl1221',
198
- },
199
- children: [
200
- {
201
- $id: 'bl1221',
202
- },
203
- ],
204
- },
205
- async (args) => {
206
- if (args.value.type === 'thing') {
207
- return 'tilil'
208
- } else {
209
- return 'bl1221'
210
- }
211
- }
212
- )
213
- t.is(r.errors.length, 0)
214
-
215
- t.deepEqual(resultCollect(r), [
216
- { path: ['ref'], value: 'bl1221' },
217
- { path: ['children'], value: { $value: ['bl1221'] } },
218
- ])
219
- })