@feathersjs/adapter-tests 5.0.0-pre.9 → 5.0.1

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.
package/src/syntax.ts CHANGED
@@ -1,50 +1,51 @@
1
- import assert from 'assert';
1
+ import assert from 'assert'
2
+ import { AdapterSyntaxTest } from './declarations'
2
3
 
3
- export default (test: any, app: any, _errors: any, serviceName: string, idProp: string) => {
4
+ export default (test: AdapterSyntaxTest, app: any, _errors: any, serviceName: string, idProp: string) => {
4
5
  describe('Query Syntax', () => {
5
- let bob: any;
6
- let alice: any;
7
- let doug: any;
8
- let service: any;
6
+ let bob: any
7
+ let alice: any
8
+ let doug: any
9
+ let service: any
9
10
 
10
11
  beforeEach(async () => {
11
- service = app.service(serviceName);
12
+ service = app.service(serviceName)
12
13
  bob = await app.service(serviceName).create({
13
14
  name: 'Bob',
14
15
  age: 25
15
- });
16
+ })
16
17
  doug = await app.service(serviceName).create({
17
18
  name: 'Doug',
18
19
  age: 32
19
- });
20
+ })
20
21
  alice = await app.service(serviceName).create({
21
22
  name: 'Alice',
22
23
  age: 19
23
- });
24
- });
24
+ })
25
+ })
25
26
 
26
27
  afterEach(async () => {
27
- await service.remove(bob[idProp]);
28
- await service.remove(alice[idProp]);
29
- await service.remove(doug[idProp]);
30
- });
28
+ await service.remove(bob[idProp])
29
+ await service.remove(alice[idProp])
30
+ await service.remove(doug[idProp])
31
+ })
31
32
 
32
33
  test('.find + equal', async () => {
33
- const params = { query: { name: 'Alice' } };
34
- const data = await service.find(params);
34
+ const params = { query: { name: 'Alice' } }
35
+ const data = await service.find(params)
35
36
 
36
- assert.ok(Array.isArray(data));
37
- assert.strictEqual(data.length, 1);
38
- assert.strictEqual(data[0].name, 'Alice');
39
- });
37
+ assert.ok(Array.isArray(data))
38
+ assert.strictEqual(data.length, 1)
39
+ assert.strictEqual(data[0].name, 'Alice')
40
+ })
40
41
 
41
42
  test('.find + equal multiple', async () => {
42
43
  const data = await service.find({
43
44
  query: { name: 'Alice', age: 20 }
44
- });
45
+ })
45
46
 
46
- assert.strictEqual(data.length, 0);
47
- });
47
+ assert.strictEqual(data.length, 0)
48
+ })
48
49
 
49
50
  describe('special filters', () => {
50
51
  test('.find + $sort', async () => {
@@ -52,57 +53,57 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
52
53
  query: {
53
54
  $sort: { name: 1 }
54
55
  }
55
- });
56
+ })
56
57
 
57
- assert.strictEqual(data.length, 3);
58
- assert.strictEqual(data[0].name, 'Alice');
59
- assert.strictEqual(data[1].name, 'Bob');
60
- assert.strictEqual(data[2].name, 'Doug');
58
+ assert.strictEqual(data.length, 3)
59
+ assert.strictEqual(data[0].name, 'Alice')
60
+ assert.strictEqual(data[1].name, 'Bob')
61
+ assert.strictEqual(data[2].name, 'Doug')
61
62
 
62
63
  data = await service.find({
63
64
  query: {
64
65
  $sort: { name: -1 }
65
66
  }
66
- });
67
+ })
67
68
 
68
- assert.strictEqual(data.length, 3);
69
- assert.strictEqual(data[0].name, 'Doug');
70
- assert.strictEqual(data[1].name, 'Bob');
71
- assert.strictEqual(data[2].name, 'Alice');
72
- });
69
+ assert.strictEqual(data.length, 3)
70
+ assert.strictEqual(data[0].name, 'Doug')
71
+ assert.strictEqual(data[1].name, 'Bob')
72
+ assert.strictEqual(data[2].name, 'Alice')
73
+ })
73
74
 
74
75
  test('.find + $sort + string', async () => {
75
76
  const data = await service.find({
76
77
  query: {
77
78
  $sort: { name: '1' }
78
79
  }
79
- });
80
+ })
80
81
 
81
- assert.strictEqual(data.length, 3);
82
- assert.strictEqual(data[0].name, 'Alice');
83
- assert.strictEqual(data[1].name, 'Bob');
84
- assert.strictEqual(data[2].name, 'Doug');
85
- });
82
+ assert.strictEqual(data.length, 3)
83
+ assert.strictEqual(data[0].name, 'Alice')
84
+ assert.strictEqual(data[1].name, 'Bob')
85
+ assert.strictEqual(data[2].name, 'Doug')
86
+ })
86
87
 
87
88
  test('.find + $limit', async () => {
88
89
  const data = await service.find({
89
90
  query: {
90
91
  $limit: 2
91
92
  }
92
- });
93
+ })
93
94
 
94
- assert.strictEqual(data.length, 2);
95
- });
95
+ assert.strictEqual(data.length, 2)
96
+ })
96
97
 
97
98
  test('.find + $limit 0', async () => {
98
99
  const data = await service.find({
99
100
  query: {
100
101
  $limit: 0
101
102
  }
102
- });
103
+ })
103
104
 
104
- assert.strictEqual(data.length, 0);
105
- });
105
+ assert.strictEqual(data.length, 0)
106
+ })
106
107
 
107
108
  test('.find + $skip', async () => {
108
109
  const data = await service.find({
@@ -110,12 +111,12 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
110
111
  $sort: { name: 1 },
111
112
  $skip: 1
112
113
  }
113
- });
114
+ })
114
115
 
115
- assert.strictEqual(data.length, 2);
116
- assert.strictEqual(data[0].name, 'Bob');
117
- assert.strictEqual(data[1].name, 'Doug');
118
- });
116
+ assert.strictEqual(data.length, 2)
117
+ assert.strictEqual(data[0].name, 'Bob')
118
+ assert.strictEqual(data[1].name, 'Doug')
119
+ })
119
120
 
120
121
  test('.find + $select', async () => {
121
122
  const data = await service.find({
@@ -123,28 +124,26 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
123
124
  name: 'Alice',
124
125
  $select: ['name']
125
126
  }
126
- });
127
+ })
127
128
 
128
- assert.strictEqual(data.length, 1);
129
- assert.strictEqual(data[0].name, 'Alice');
130
- assert.strictEqual(data[0].age, undefined);
131
- });
129
+ assert.strictEqual(data.length, 1)
130
+ assert.ok(idProp in data[0], 'data has id')
131
+ assert.strictEqual(data[0].name, 'Alice')
132
+ assert.strictEqual(data[0].age, undefined)
133
+ })
132
134
 
133
135
  test('.find + $or', async () => {
134
136
  const data = await service.find({
135
137
  query: {
136
- $or: [
137
- { name: 'Alice' },
138
- { name: 'Bob' }
139
- ],
138
+ $or: [{ name: 'Alice' }, { name: 'Bob' }],
140
139
  $sort: { name: 1 }
141
140
  }
142
- });
141
+ })
143
142
 
144
- assert.strictEqual(data.length, 2);
145
- assert.strictEqual(data[0].name, 'Alice');
146
- assert.strictEqual(data[1].name, 'Bob');
147
- });
143
+ assert.strictEqual(data.length, 2)
144
+ assert.strictEqual(data[0].name, 'Alice')
145
+ assert.strictEqual(data[1].name, 'Bob')
146
+ })
148
147
 
149
148
  test('.find + $in', async () => {
150
149
  const data = await service.find({
@@ -154,25 +153,25 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
154
153
  },
155
154
  $sort: { name: 1 }
156
155
  }
157
- });
156
+ })
158
157
 
159
- assert.strictEqual(data.length, 2);
160
- assert.strictEqual(data[0].name, 'Alice');
161
- assert.strictEqual(data[1].name, 'Bob');
162
- });
158
+ assert.strictEqual(data.length, 2)
159
+ assert.strictEqual(data[0].name, 'Alice')
160
+ assert.strictEqual(data[1].name, 'Bob')
161
+ })
163
162
 
164
163
  test('.find + $nin', async () => {
165
164
  const data = await service.find({
166
165
  query: {
167
166
  name: {
168
- $nin: [ 'Alice', 'Bob' ]
167
+ $nin: ['Alice', 'Bob']
169
168
  }
170
169
  }
171
- });
170
+ })
172
171
 
173
- assert.strictEqual(data.length, 1);
174
- assert.strictEqual(data[0].name, 'Doug');
175
- });
172
+ assert.strictEqual(data.length, 1)
173
+ assert.strictEqual(data[0].name, 'Doug')
174
+ })
176
175
 
177
176
  test('.find + $lt', async () => {
178
177
  const data = await service.find({
@@ -181,10 +180,10 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
181
180
  $lt: 30
182
181
  }
183
182
  }
184
- });
183
+ })
185
184
 
186
- assert.strictEqual(data.length, 2);
187
- });
185
+ assert.strictEqual(data.length, 2)
186
+ })
188
187
 
189
188
  test('.find + $lte', async () => {
190
189
  const data = await service.find({
@@ -193,10 +192,10 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
193
192
  $lte: 25
194
193
  }
195
194
  }
196
- });
195
+ })
197
196
 
198
- assert.strictEqual(data.length, 2);
199
- });
197
+ assert.strictEqual(data.length, 2)
198
+ })
200
199
 
201
200
  test('.find + $gt', async () => {
202
201
  const data = await service.find({
@@ -205,10 +204,10 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
205
204
  $gt: 30
206
205
  }
207
206
  }
208
- });
207
+ })
209
208
 
210
- assert.strictEqual(data.length, 1);
211
- });
209
+ assert.strictEqual(data.length, 1)
210
+ })
212
211
 
213
212
  test('.find + $gte', async () => {
214
213
  const data = await service.find({
@@ -217,10 +216,10 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
217
216
  $gte: 25
218
217
  }
219
218
  }
220
- });
219
+ })
221
220
 
222
- assert.strictEqual(data.length, 2);
223
- });
221
+ assert.strictEqual(data.length, 2)
222
+ })
224
223
 
225
224
  test('.find + $ne', async () => {
226
225
  const data = await service.find({
@@ -229,11 +228,11 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
229
228
  $ne: 25
230
229
  }
231
230
  }
232
- });
231
+ })
233
232
 
234
- assert.strictEqual(data.length, 2);
235
- });
236
- });
233
+ assert.strictEqual(data.length, 2)
234
+ })
235
+ })
237
236
 
238
237
  test('.find + $gt + $lt + $sort', async () => {
239
238
  const params = {
@@ -244,14 +243,14 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
244
243
  },
245
244
  $sort: { name: 1 }
246
245
  }
247
- };
246
+ }
248
247
 
249
- const data = await service.find(params);
248
+ const data = await service.find(params)
250
249
 
251
- assert.strictEqual(data.length, 2);
252
- assert.strictEqual(data[0].name, 'Alice');
253
- assert.strictEqual(data[1].name, 'Bob');
254
- });
250
+ assert.strictEqual(data.length, 2)
251
+ assert.strictEqual(data[0].name, 'Alice')
252
+ assert.strictEqual(data[1].name, 'Bob')
253
+ })
255
254
 
256
255
  test('.find + $or nested + $sort', async () => {
257
256
  const params = {
@@ -267,14 +266,42 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
267
266
  ],
268
267
  $sort: { name: 1 }
269
268
  }
270
- };
269
+ }
271
270
 
272
- const data = await service.find(params);
271
+ const data = await service.find(params)
273
272
 
274
- assert.strictEqual(data.length, 2);
275
- assert.strictEqual(data[0].name, 'Alice');
276
- assert.strictEqual(data[1].name, 'Doug');
277
- });
273
+ assert.strictEqual(data.length, 2)
274
+ assert.strictEqual(data[0].name, 'Alice')
275
+ assert.strictEqual(data[1].name, 'Doug')
276
+ })
277
+
278
+ test('.find + $and', async () => {
279
+ const params = {
280
+ query: {
281
+ $and: [{ age: 19 }],
282
+ $sort: { name: 1 }
283
+ }
284
+ }
285
+
286
+ const data = await service.find(params)
287
+
288
+ assert.strictEqual(data.length, 1)
289
+ assert.strictEqual(data[0].name, 'Alice')
290
+ })
291
+
292
+ test('.find + $and + $or', async () => {
293
+ const params = {
294
+ query: {
295
+ $and: [{ $or: [{ name: 'Alice' }] }],
296
+ $sort: { name: 1 }
297
+ }
298
+ }
299
+
300
+ const data = await service.find(params)
301
+
302
+ assert.strictEqual(data.length, 1)
303
+ assert.strictEqual(data[0].name, 'Alice')
304
+ })
278
305
 
279
306
  describe('params.adapter', () => {
280
307
  test('params.adapter + paginate', async () => {
@@ -282,11 +309,11 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
282
309
  adapter: {
283
310
  paginate: { default: 3 }
284
311
  }
285
- });
286
-
287
- assert.strictEqual(page.limit, 3);
288
- assert.strictEqual(page.skip, 0);
289
- });
312
+ })
313
+
314
+ assert.strictEqual(page.limit, 3)
315
+ assert.strictEqual(page.skip, 0)
316
+ })
290
317
 
291
318
  test('params.adapter + multi', async () => {
292
319
  const items = [
@@ -298,46 +325,46 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
298
325
  name: 'Harald',
299
326
  age: 24
300
327
  }
301
- ];
328
+ ]
302
329
  const multiParams = {
303
330
  adapter: {
304
331
  multi: ['create']
305
332
  }
306
- };
307
- const users = await service.create(items, multiParams);
333
+ }
334
+ const users = await service.create(items, multiParams)
335
+
336
+ assert.strictEqual(users.length, 2)
308
337
 
309
- assert.strictEqual(users.length, 2);
310
-
311
- await service.remove(users[0][idProp]);
312
- await service.remove(users[1][idProp]);
338
+ await service.remove(users[0][idProp])
339
+ await service.remove(users[1][idProp])
313
340
  await assert.rejects(() => service.patch(null, { age: 2 }, multiParams), {
314
341
  message: 'Can not patch multiple entries'
315
- });
316
- });
317
- });
342
+ })
343
+ })
344
+ })
318
345
 
319
346
  describe('paginate', function () {
320
347
  beforeEach(() => {
321
348
  service.options.paginate = {
322
349
  default: 1,
323
350
  max: 2
324
- };
325
- });
351
+ }
352
+ })
326
353
 
327
354
  afterEach(() => {
328
- service.options.paginate = {};
329
- });
355
+ service.options.paginate = {}
356
+ })
330
357
 
331
358
  test('.find + paginate', async () => {
332
359
  const page = await service.find({
333
360
  query: { $sort: { name: -1 } }
334
- });
361
+ })
335
362
 
336
- assert.strictEqual(page.total, 3);
337
- assert.strictEqual(page.limit, 1);
338
- assert.strictEqual(page.skip, 0);
339
- assert.strictEqual(page.data[0].name, 'Doug');
340
- });
363
+ assert.strictEqual(page.total, 3)
364
+ assert.strictEqual(page.limit, 1)
365
+ assert.strictEqual(page.skip, 0)
366
+ assert.strictEqual(page.data[0].name, 'Doug')
367
+ })
341
368
 
342
369
  test('.find + paginate + query', async () => {
343
370
  const page = await service.find({
@@ -345,13 +372,13 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
345
372
  $sort: { name: -1 },
346
373
  name: 'Doug'
347
374
  }
348
- });
375
+ })
349
376
 
350
- assert.strictEqual(page.total, 1);
351
- assert.strictEqual(page.limit, 1);
352
- assert.strictEqual(page.skip, 0);
353
- assert.strictEqual(page.data[0].name, 'Doug');
354
- });
377
+ assert.strictEqual(page.total, 1)
378
+ assert.strictEqual(page.limit, 1)
379
+ assert.strictEqual(page.skip, 0)
380
+ assert.strictEqual(page.data[0].name, 'Doug')
381
+ })
355
382
 
356
383
  test('.find + paginate + $limit + $skip', async () => {
357
384
  const params = {
@@ -360,37 +387,37 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
360
387
  $limit: 4,
361
388
  $sort: { name: -1 }
362
389
  }
363
- };
390
+ }
364
391
 
365
- const page = await service.find(params);
392
+ const page = await service.find(params)
366
393
 
367
- assert.strictEqual(page.total, 3);
368
- assert.strictEqual(page.limit, 2);
369
- assert.strictEqual(page.skip, 1);
370
- assert.strictEqual(page.data[0].name, 'Bob');
371
- assert.strictEqual(page.data[1].name, 'Alice');
372
- });
394
+ assert.strictEqual(page.total, 3)
395
+ assert.strictEqual(page.limit, 2)
396
+ assert.strictEqual(page.skip, 1)
397
+ assert.strictEqual(page.data[0].name, 'Bob')
398
+ assert.strictEqual(page.data[1].name, 'Alice')
399
+ })
373
400
 
374
401
  test('.find + paginate + $limit 0', async () => {
375
402
  const page = await service.find({
376
403
  query: { $limit: 0 }
377
- });
404
+ })
378
405
 
379
- assert.strictEqual(page.total, 3);
380
- assert.strictEqual(page.data.length, 0);
381
- });
406
+ assert.strictEqual(page.total, 3)
407
+ assert.strictEqual(page.data.length, 0)
408
+ })
382
409
 
383
410
  test('.find + paginate + params', async () => {
384
- const page = await service.find({ paginate: { default: 3 } });
411
+ const page = await service.find({ paginate: { default: 3 } })
385
412
 
386
- assert.strictEqual(page.limit, 3);
387
- assert.strictEqual(page.skip, 0);
413
+ assert.strictEqual(page.limit, 3)
414
+ assert.strictEqual(page.skip, 0)
388
415
 
389
- const results = await service.find({ paginate: false });
416
+ const results = await service.find({ paginate: false })
390
417
 
391
- assert.ok(Array.isArray(results));
392
- assert.strictEqual(results.length, 3);
393
- });
394
- });
395
- });
396
- };
418
+ assert.ok(Array.isArray(results))
419
+ assert.strictEqual(results.length, 3)
420
+ })
421
+ })
422
+ })
423
+ }