@feathersjs/adapter-tests 5.0.0-pre.3 → 5.0.0-pre.30

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,25 @@ 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.strictEqual(data[0].name, 'Alice')
131
+ assert.strictEqual(data[0].age, undefined)
132
+ })
132
133
 
133
134
  test('.find + $or', async () => {
134
135
  const data = await service.find({
135
136
  query: {
136
- $or: [
137
- { name: 'Alice' },
138
- { name: 'Bob' }
139
- ],
137
+ $or: [{ name: 'Alice' }, { name: 'Bob' }],
140
138
  $sort: { name: 1 }
141
139
  }
142
- });
140
+ })
143
141
 
144
- assert.strictEqual(data.length, 2);
145
- assert.strictEqual(data[0].name, 'Alice');
146
- assert.strictEqual(data[1].name, 'Bob');
147
- });
142
+ assert.strictEqual(data.length, 2)
143
+ assert.strictEqual(data[0].name, 'Alice')
144
+ assert.strictEqual(data[1].name, 'Bob')
145
+ })
148
146
 
149
147
  test('.find + $in', async () => {
150
148
  const data = await service.find({
@@ -154,25 +152,25 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
154
152
  },
155
153
  $sort: { name: 1 }
156
154
  }
157
- });
155
+ })
158
156
 
159
- assert.strictEqual(data.length, 2);
160
- assert.strictEqual(data[0].name, 'Alice');
161
- assert.strictEqual(data[1].name, 'Bob');
162
- });
157
+ assert.strictEqual(data.length, 2)
158
+ assert.strictEqual(data[0].name, 'Alice')
159
+ assert.strictEqual(data[1].name, 'Bob')
160
+ })
163
161
 
164
162
  test('.find + $nin', async () => {
165
163
  const data = await service.find({
166
164
  query: {
167
165
  name: {
168
- $nin: [ 'Alice', 'Bob' ]
166
+ $nin: ['Alice', 'Bob']
169
167
  }
170
168
  }
171
- });
169
+ })
172
170
 
173
- assert.strictEqual(data.length, 1);
174
- assert.strictEqual(data[0].name, 'Doug');
175
- });
171
+ assert.strictEqual(data.length, 1)
172
+ assert.strictEqual(data[0].name, 'Doug')
173
+ })
176
174
 
177
175
  test('.find + $lt', async () => {
178
176
  const data = await service.find({
@@ -181,10 +179,10 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
181
179
  $lt: 30
182
180
  }
183
181
  }
184
- });
182
+ })
185
183
 
186
- assert.strictEqual(data.length, 2);
187
- });
184
+ assert.strictEqual(data.length, 2)
185
+ })
188
186
 
189
187
  test('.find + $lte', async () => {
190
188
  const data = await service.find({
@@ -193,10 +191,10 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
193
191
  $lte: 25
194
192
  }
195
193
  }
196
- });
194
+ })
197
195
 
198
- assert.strictEqual(data.length, 2);
199
- });
196
+ assert.strictEqual(data.length, 2)
197
+ })
200
198
 
201
199
  test('.find + $gt', async () => {
202
200
  const data = await service.find({
@@ -205,10 +203,10 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
205
203
  $gt: 30
206
204
  }
207
205
  }
208
- });
206
+ })
209
207
 
210
- assert.strictEqual(data.length, 1);
211
- });
208
+ assert.strictEqual(data.length, 1)
209
+ })
212
210
 
213
211
  test('.find + $gte', async () => {
214
212
  const data = await service.find({
@@ -217,10 +215,10 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
217
215
  $gte: 25
218
216
  }
219
217
  }
220
- });
218
+ })
221
219
 
222
- assert.strictEqual(data.length, 2);
223
- });
220
+ assert.strictEqual(data.length, 2)
221
+ })
224
222
 
225
223
  test('.find + $ne', async () => {
226
224
  const data = await service.find({
@@ -229,11 +227,11 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
229
227
  $ne: 25
230
228
  }
231
229
  }
232
- });
230
+ })
233
231
 
234
- assert.strictEqual(data.length, 2);
235
- });
236
- });
232
+ assert.strictEqual(data.length, 2)
233
+ })
234
+ })
237
235
 
238
236
  test('.find + $gt + $lt + $sort', async () => {
239
237
  const params = {
@@ -244,14 +242,14 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
244
242
  },
245
243
  $sort: { name: 1 }
246
244
  }
247
- };
245
+ }
248
246
 
249
- const data = await service.find(params);
247
+ const data = await service.find(params)
250
248
 
251
- assert.strictEqual(data.length, 2);
252
- assert.strictEqual(data[0].name, 'Alice');
253
- assert.strictEqual(data[1].name, 'Bob');
254
- });
249
+ assert.strictEqual(data.length, 2)
250
+ assert.strictEqual(data[0].name, 'Alice')
251
+ assert.strictEqual(data[1].name, 'Bob')
252
+ })
255
253
 
256
254
  test('.find + $or nested + $sort', async () => {
257
255
  const params = {
@@ -267,37 +265,77 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
267
265
  ],
268
266
  $sort: { name: 1 }
269
267
  }
270
- };
268
+ }
271
269
 
272
- const data = await service.find(params);
270
+ const data = await service.find(params)
273
271
 
274
- assert.strictEqual(data.length, 2);
275
- assert.strictEqual(data[0].name, 'Alice');
276
- assert.strictEqual(data[1].name, 'Doug');
277
- });
272
+ assert.strictEqual(data.length, 2)
273
+ assert.strictEqual(data[0].name, 'Alice')
274
+ assert.strictEqual(data[1].name, 'Doug')
275
+ })
276
+
277
+ describe('params.adapter', () => {
278
+ test('params.adapter + paginate', async () => {
279
+ const page = await service.find({
280
+ adapter: {
281
+ paginate: { default: 3 }
282
+ }
283
+ })
284
+
285
+ assert.strictEqual(page.limit, 3)
286
+ assert.strictEqual(page.skip, 0)
287
+ })
288
+
289
+ test('params.adapter + multi', async () => {
290
+ const items = [
291
+ {
292
+ name: 'Garald',
293
+ age: 200
294
+ },
295
+ {
296
+ name: 'Harald',
297
+ age: 24
298
+ }
299
+ ]
300
+ const multiParams = {
301
+ adapter: {
302
+ multi: ['create']
303
+ }
304
+ }
305
+ const users = await service.create(items, multiParams)
306
+
307
+ assert.strictEqual(users.length, 2)
308
+
309
+ await service.remove(users[0][idProp])
310
+ await service.remove(users[1][idProp])
311
+ await assert.rejects(() => service.patch(null, { age: 2 }, multiParams), {
312
+ message: 'Can not patch multiple entries'
313
+ })
314
+ })
315
+ })
278
316
 
279
317
  describe('paginate', function () {
280
318
  beforeEach(() => {
281
319
  service.options.paginate = {
282
320
  default: 1,
283
321
  max: 2
284
- };
285
- });
322
+ }
323
+ })
286
324
 
287
325
  afterEach(() => {
288
- service.options.paginate = {};
289
- });
326
+ service.options.paginate = {}
327
+ })
290
328
 
291
329
  test('.find + paginate', async () => {
292
330
  const page = await service.find({
293
331
  query: { $sort: { name: -1 } }
294
- });
332
+ })
295
333
 
296
- assert.strictEqual(page.total, 3);
297
- assert.strictEqual(page.limit, 1);
298
- assert.strictEqual(page.skip, 0);
299
- assert.strictEqual(page.data[0].name, 'Doug');
300
- });
334
+ assert.strictEqual(page.total, 3)
335
+ assert.strictEqual(page.limit, 1)
336
+ assert.strictEqual(page.skip, 0)
337
+ assert.strictEqual(page.data[0].name, 'Doug')
338
+ })
301
339
 
302
340
  test('.find + paginate + query', async () => {
303
341
  const page = await service.find({
@@ -305,13 +343,13 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
305
343
  $sort: { name: -1 },
306
344
  name: 'Doug'
307
345
  }
308
- });
346
+ })
309
347
 
310
- assert.strictEqual(page.total, 1);
311
- assert.strictEqual(page.limit, 1);
312
- assert.strictEqual(page.skip, 0);
313
- assert.strictEqual(page.data[0].name, 'Doug');
314
- });
348
+ assert.strictEqual(page.total, 1)
349
+ assert.strictEqual(page.limit, 1)
350
+ assert.strictEqual(page.skip, 0)
351
+ assert.strictEqual(page.data[0].name, 'Doug')
352
+ })
315
353
 
316
354
  test('.find + paginate + $limit + $skip', async () => {
317
355
  const params = {
@@ -320,37 +358,37 @@ export default (test: any, app: any, _errors: any, serviceName: string, idProp:
320
358
  $limit: 4,
321
359
  $sort: { name: -1 }
322
360
  }
323
- };
361
+ }
324
362
 
325
- const page = await service.find(params);
363
+ const page = await service.find(params)
326
364
 
327
- assert.strictEqual(page.total, 3);
328
- assert.strictEqual(page.limit, 2);
329
- assert.strictEqual(page.skip, 1);
330
- assert.strictEqual(page.data[0].name, 'Bob');
331
- assert.strictEqual(page.data[1].name, 'Alice');
332
- });
365
+ assert.strictEqual(page.total, 3)
366
+ assert.strictEqual(page.limit, 2)
367
+ assert.strictEqual(page.skip, 1)
368
+ assert.strictEqual(page.data[0].name, 'Bob')
369
+ assert.strictEqual(page.data[1].name, 'Alice')
370
+ })
333
371
 
334
372
  test('.find + paginate + $limit 0', async () => {
335
373
  const page = await service.find({
336
374
  query: { $limit: 0 }
337
- });
375
+ })
338
376
 
339
- assert.strictEqual(page.total, 3);
340
- assert.strictEqual(page.data.length, 0);
341
- });
377
+ assert.strictEqual(page.total, 3)
378
+ assert.strictEqual(page.data.length, 0)
379
+ })
342
380
 
343
381
  test('.find + paginate + params', async () => {
344
- const page = await service.find({ paginate: { default: 3 } });
382
+ const page = await service.find({ paginate: { default: 3 } })
345
383
 
346
- assert.strictEqual(page.limit, 3);
347
- assert.strictEqual(page.skip, 0);
384
+ assert.strictEqual(page.limit, 3)
385
+ assert.strictEqual(page.skip, 0)
348
386
 
349
- const results = await service.find({ paginate: false });
387
+ const results = await service.find({ paginate: false })
350
388
 
351
- assert.ok(Array.isArray(results));
352
- assert.strictEqual(results.length, 3);
353
- });
354
- });
355
- });
356
- };
389
+ assert.ok(Array.isArray(results))
390
+ assert.strictEqual(results.length, 3)
391
+ })
392
+ })
393
+ })
394
+ }