@feathersjs/adapter-tests 4.5.2 → 4.5.12

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/lib/methods.js CHANGED
@@ -1,538 +1,479 @@
1
- const assert = require('assert');
2
-
3
- module.exports = (test, app, errors, serviceName, idProp) => {
4
- describe(' Methods', () => {
5
- let doug;
6
- let service;
7
-
8
- beforeEach(async () => {
9
- service = app.service(serviceName);
10
- doug = await app.service(serviceName).create({
11
- name: 'Doug',
12
- age: 32
13
- });
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
14
9
  });
15
-
16
- afterEach(async () => {
17
- try {
18
- await app.service(serviceName).remove(doug[idProp]);
19
- } catch (error) {}
20
- });
21
-
22
- describe('get', () => {
23
- test('.get', async () => {
24
- const data = await service.get(doug[idProp]);
25
-
26
- assert.strictEqual(data[idProp].toString(), doug[idProp].toString(),
27
- `${idProp} id matches`
28
- );
29
- assert.strictEqual(data.name, 'Doug', 'data.name matches');
30
- assert.strictEqual(data.age, 32, 'data.age matches');
31
- });
32
-
33
- test('.get + $select', async () => {
34
- const data = await service.get(doug[idProp], {
35
- query: { $select: [ 'name' ] }
36
- });
37
-
38
- assert.strictEqual(data[idProp].toString(), doug[idProp].toString(),
39
- `${idProp} id property matches`
40
- );
41
- assert.strictEqual(data.name, 'Doug', 'data.name matches');
42
- assert.ok(!data.age, 'data.age is falsy');
43
- });
44
-
45
- test('.get + id + query', async () => {
46
- try {
47
- await service.get(doug[idProp], {
48
- query: { name: 'Tester' }
49
- });
50
- throw new Error('Should never get here');
51
- } catch (error) {
52
- assert.strictEqual(error.name, 'NotFound',
53
- 'Got a NotFound Feathers error'
54
- );
55
- }
56
- });
57
-
58
- test('.get + NotFound', async () => {
59
- try {
60
- await service.get('568225fbfe21222432e836ff');
61
- throw new Error('Should never get here');
62
- } catch (error) {
63
- assert.strictEqual(error.name, 'NotFound',
64
- 'Error is a NotFound Feathers error'
65
- );
66
- }
67
- });
68
-
69
- test('.get + id + query id', async () => {
70
- const alice = await service.create({
71
- name: 'Alice',
72
- age: 12
73
- });
74
-
75
- try {
76
- await service.get(doug[idProp], {
77
- query: { [idProp]: alice[idProp] }
78
- });
79
- throw new Error('Should never get here');
80
- } catch (error) {
81
- assert.strictEqual(error.name, 'NotFound',
82
- 'Got a NotFound Feathers error'
83
- );
84
- }
85
-
86
- await service.remove(alice[idProp]);
87
- });
88
- });
89
-
90
- describe('find', () => {
91
- test('.find', async () => {
92
- const data = await service.find();
93
-
94
- assert.ok(Array.isArray(data), 'Data is an array');
95
- assert.strictEqual(data.length, 1, 'Got one entry');
96
- });
97
- });
98
-
99
- describe('remove', () => {
100
- test('.remove', async () => {
101
- const data = await service.remove(doug[idProp]);
102
-
103
- assert.strictEqual(data.name, 'Doug', 'data.name matches');
104
- });
105
-
106
- test('.remove + $select', async () => {
107
- const data = await service.remove(doug[idProp], {
108
- query: { $select: [ 'name' ] }
109
- });
110
-
111
- assert.strictEqual(data.name, 'Doug', 'data.name matches');
112
- assert.ok(!data.age, 'data.age is falsy');
113
- });
114
-
115
- test('.remove + id + query', async () => {
116
- try {
117
- await service.remove(doug[idProp], {
118
- query: { name: 'Tester' }
119
- });
120
- throw new Error('Should never get here');
121
- } catch (error) {
122
- assert.strictEqual(error.name, 'NotFound',
123
- 'Got a NotFound Feathers error'
124
- );
125
- }
126
- });
127
-
128
- test('.remove + multi', async () => {
129
- try {
130
- await service.remove(null);
131
- throw new Error('Should never get here');
132
- } catch (error) {
133
- assert.strictEqual(error.name, 'MethodNotAllowed',
134
- 'Removing multiple without option set throws MethodNotAllowed'
135
- );
136
- }
137
-
138
- service.options.multi = [ 'remove' ];
139
-
140
- await service.create({ name: 'Dave', age: 29, created: true });
141
- await service.create({
142
- name: 'David',
143
- age: 3,
144
- created: true
145
- });
146
-
147
- const data = await service.remove(null, {
148
- query: { created: true }
149
- });
150
-
151
- assert.strictEqual(data.length, 2);
152
-
153
- let names = data.map(person => person.name);
154
-
155
- assert.ok(names.includes('Dave'), 'Dave removed');
156
- assert.ok(names.includes('David'), 'David removed');
157
- });
158
-
159
- test('.remove + id + query id', async () => {
160
- const alice = await service.create({
161
- name: 'Alice',
162
- age: 12
163
- });
164
-
165
- try {
166
- await service.remove(doug[idProp], {
167
- query: { [idProp]: alice[idProp] }
168
- });
169
- throw new Error('Should never get here');
170
- } catch (error) {
171
- assert.strictEqual(error.name, 'NotFound',
172
- 'Got a NotFound Feathers error'
173
- );
174
- }
175
-
176
- await service.remove(alice[idProp]);
177
- });
178
- });
179
-
180
- describe('update', () => {
181
- test('.update', async () => {
182
- const originalData = { [idProp]: doug[idProp], name: 'Dougler' };
183
- const originalCopy = Object.assign({}, originalData);
184
-
185
- const data = await service.update(doug[idProp], originalData);
186
-
187
- assert.deepStrictEqual(originalData, originalCopy,
188
- 'data was not modified'
189
- );
190
- assert.strictEqual(data[idProp].toString(), doug[idProp].toString(),
191
- `${idProp} id matches`
192
- );
193
- assert.strictEqual(data.name, 'Dougler', 'data.name matches');
194
- assert.ok(!data.age, 'data.age is falsy');
195
- });
196
-
197
- test('.update + $select', async () => {
198
- const originalData = {
199
- [idProp]: doug[idProp],
200
- name: 'Dougler',
201
- age: 10
202
- };
203
-
204
- const data = await service.update(doug[idProp], originalData, {
205
- query: { $select: [ 'name' ] }
206
- });
207
-
208
- assert.strictEqual(data.name, 'Dougler', 'data.name matches');
209
- assert.ok(!data.age, 'data.age is falsy');
210
- });
211
-
212
- test('.update + id + query', async () => {
213
- try {
214
- await service.update(doug[idProp], {
215
- name: 'Dougler'
216
- }, {
217
- query: { name: 'Tester' }
218
- });
219
- throw new Error('Should never get here');
220
- } catch (error) {
221
- assert.strictEqual(error.name, 'NotFound',
222
- 'Got a NotFound Feathers error'
223
- );
224
- }
225
- });
226
-
227
- test('.update + NotFound', async () => {
228
- try {
229
- await service.update('568225fbfe21222432e836ff', { name: 'NotFound' });
230
- throw new Error('Should never get here');
231
- } catch (error) {
232
- assert.strictEqual(error.name, 'NotFound',
233
- 'Error is a NotFound Feathers error'
234
- );
235
- }
236
- });
237
-
238
- test('.update + id + query id', async () => {
239
- const alice = await service.create({
240
- name: 'Alice',
241
- age: 12
242
- });
243
-
244
- try {
245
- await service.update(doug[idProp], {
246
- name: 'Dougler',
247
- age: 33
248
- }, {
249
- query: { [idProp]: alice[idProp] }
250
- });
251
- throw new Error('Should never get here');
252
- } catch (error) {
253
- assert.strictEqual(error.name, 'NotFound',
254
- 'Got a NotFound Feathers error'
255
- );
256
- }
257
-
258
- await service.remove(alice[idProp]);
259
- });
260
- });
261
-
262
- describe('patch', () => {
263
- test('.patch', async () => {
264
- const originalData = { [idProp]: doug[idProp], name: 'PatchDoug' };
265
- const originalCopy = Object.assign({}, originalData);
266
-
267
- const data = await service.patch(doug[idProp], originalData);
268
-
269
- assert.deepStrictEqual(originalData, originalCopy,
270
- 'original data was not modified'
271
- );
272
- assert.strictEqual(data[idProp].toString(), doug[idProp].toString(),
273
- `${idProp} id matches`
274
- );
275
- assert.strictEqual(data.name, 'PatchDoug', 'data.name matches');
276
- assert.strictEqual(data.age, 32, 'data.age matches');
277
- });
278
-
279
- test('.patch + $select', async () => {
280
- const originalData = { [idProp]: doug[idProp], name: 'PatchDoug' };
281
-
282
- const data = await service.patch(doug[idProp], originalData, {
283
- query: { $select: [ 'name' ] }
284
- });
285
-
286
- assert.strictEqual(data.name, 'PatchDoug', 'data.name matches');
287
- assert.ok(!data.age, 'data.age is falsy');
288
- });
289
-
290
- test('.patch + id + query', async () => {
291
- try {
292
- await service.patch(doug[idProp], {
293
- name: 'id patched doug'
294
- }, {
295
- query: { name: 'Tester' }
296
- });
297
- throw new Error('Should never get here');
298
- } catch (error) {
299
- assert.strictEqual(error.name, 'NotFound',
300
- 'Got a NotFound Feathers error'
301
- );
302
- }
303
- });
304
-
305
- test('.patch multiple', async () => {
306
- try {
307
- await service.patch(null, {});
308
- throw new Error('Should never get here');
309
- } catch (error) {
310
- assert.strictEqual(error.name, 'MethodNotAllowed',
311
- 'Removing multiple without option set throws MethodNotAllowed'
312
- );
313
- }
314
-
315
- const params = {
316
- query: { created: true }
317
- };
318
- const dave = await service.create({
319
- name: 'Dave',
320
- age: 29,
321
- created: true
322
- });
323
- const david = await service.create({
324
- name: 'David',
325
- age: 3,
326
- created: true
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const assert_1 = __importDefault(require("assert"));
16
+ exports.default = (test, app, _errors, serviceName, idProp) => {
17
+ describe(' Methods', () => {
18
+ let doug;
19
+ let service;
20
+ beforeEach(() => __awaiter(void 0, void 0, void 0, function* () {
21
+ service = app.service(serviceName);
22
+ doug = yield app.service(serviceName).create({
23
+ name: 'Doug',
24
+ age: 32
25
+ });
26
+ }));
27
+ afterEach(() => __awaiter(void 0, void 0, void 0, function* () {
28
+ try {
29
+ yield app.service(serviceName).remove(doug[idProp]);
30
+ }
31
+ catch (error) { }
32
+ }));
33
+ describe('get', () => {
34
+ test('.get', () => __awaiter(void 0, void 0, void 0, function* () {
35
+ const data = yield service.get(doug[idProp]);
36
+ assert_1.default.strictEqual(data[idProp].toString(), doug[idProp].toString(), `${idProp} id matches`);
37
+ assert_1.default.strictEqual(data.name, 'Doug', 'data.name matches');
38
+ assert_1.default.strictEqual(data.age, 32, 'data.age matches');
39
+ }));
40
+ test('.get + $select', () => __awaiter(void 0, void 0, void 0, function* () {
41
+ const data = yield service.get(doug[idProp], {
42
+ query: { $select: ['name'] }
43
+ });
44
+ assert_1.default.strictEqual(data[idProp].toString(), doug[idProp].toString(), `${idProp} id property matches`);
45
+ assert_1.default.strictEqual(data.name, 'Doug', 'data.name matches');
46
+ assert_1.default.ok(!data.age, 'data.age is falsy');
47
+ }));
48
+ test('.get + id + query', () => __awaiter(void 0, void 0, void 0, function* () {
49
+ try {
50
+ yield service.get(doug[idProp], {
51
+ query: { name: 'Tester' }
52
+ });
53
+ throw new Error('Should never get here');
54
+ }
55
+ catch (error) {
56
+ assert_1.default.strictEqual(error.name, 'NotFound', 'Got a NotFound Feathers error');
57
+ }
58
+ }));
59
+ test('.get + NotFound', () => __awaiter(void 0, void 0, void 0, function* () {
60
+ try {
61
+ yield service.get('568225fbfe21222432e836ff');
62
+ throw new Error('Should never get here');
63
+ }
64
+ catch (error) {
65
+ assert_1.default.strictEqual(error.name, 'NotFound', 'Error is a NotFound Feathers error');
66
+ }
67
+ }));
68
+ test('.get + id + query id', () => __awaiter(void 0, void 0, void 0, function* () {
69
+ const alice = yield service.create({
70
+ name: 'Alice',
71
+ age: 12
72
+ });
73
+ try {
74
+ yield service.get(doug[idProp], {
75
+ query: { [idProp]: alice[idProp] }
76
+ });
77
+ throw new Error('Should never get here');
78
+ }
79
+ catch (error) {
80
+ assert_1.default.strictEqual(error.name, 'NotFound', 'Got a NotFound Feathers error');
81
+ }
82
+ yield service.remove(alice[idProp]);
83
+ }));
327
84
  });
328
-
329
- service.options.multi = [ 'patch' ];
330
-
331
- const data = await service.patch(null, {
332
- age: 2
333
- }, params);
334
-
335
- assert.strictEqual(data.length, 2, 'returned two entries');
336
- assert.strictEqual(data[0].age, 2, 'First entry age was updated');
337
- assert.strictEqual(data[1].age, 2, 'Sceond entry age was updated');
338
-
339
- await service.remove(dave[idProp], params);
340
- await service.remove(david[idProp], params);
341
- });
342
-
343
- test('.patch multi query', async () => {
344
- const service = app.service(serviceName);
345
- const params = {
346
- query: { age: { $lt: 10 } }
347
- };
348
- const dave = await service.create({
349
- name: 'Dave',
350
- age: 8,
351
- created: true
85
+ describe('find', () => {
86
+ test('.find', () => __awaiter(void 0, void 0, void 0, function* () {
87
+ const data = yield service.find();
88
+ assert_1.default.ok(Array.isArray(data), 'Data is an array');
89
+ assert_1.default.strictEqual(data.length, 1, 'Got one entry');
90
+ }));
352
91
  });
353
- const david = await service.create({
354
- name: 'David',
355
- age: 4,
356
- created: true
92
+ describe('remove', () => {
93
+ test('.remove', () => __awaiter(void 0, void 0, void 0, function* () {
94
+ const data = yield service.remove(doug[idProp]);
95
+ assert_1.default.strictEqual(data.name, 'Doug', 'data.name matches');
96
+ }));
97
+ test('.remove + $select', () => __awaiter(void 0, void 0, void 0, function* () {
98
+ const data = yield service.remove(doug[idProp], {
99
+ query: { $select: ['name'] }
100
+ });
101
+ assert_1.default.strictEqual(data.name, 'Doug', 'data.name matches');
102
+ assert_1.default.ok(!data.age, 'data.age is falsy');
103
+ }));
104
+ test('.remove + id + query', () => __awaiter(void 0, void 0, void 0, function* () {
105
+ try {
106
+ yield service.remove(doug[idProp], {
107
+ query: { name: 'Tester' }
108
+ });
109
+ throw new Error('Should never get here');
110
+ }
111
+ catch (error) {
112
+ assert_1.default.strictEqual(error.name, 'NotFound', 'Got a NotFound Feathers error');
113
+ }
114
+ }));
115
+ test('.remove + multi', () => __awaiter(void 0, void 0, void 0, function* () {
116
+ try {
117
+ yield service.remove(null);
118
+ throw new Error('Should never get here');
119
+ }
120
+ catch (error) {
121
+ assert_1.default.strictEqual(error.name, 'MethodNotAllowed', 'Removing multiple without option set throws MethodNotAllowed');
122
+ }
123
+ service.options.multi = ['remove'];
124
+ yield service.create({ name: 'Dave', age: 29, created: true });
125
+ yield service.create({
126
+ name: 'David',
127
+ age: 3,
128
+ created: true
129
+ });
130
+ const data = yield service.remove(null, {
131
+ query: { created: true }
132
+ });
133
+ assert_1.default.strictEqual(data.length, 2);
134
+ const names = data.map((person) => person.name);
135
+ assert_1.default.ok(names.includes('Dave'), 'Dave removed');
136
+ assert_1.default.ok(names.includes('David'), 'David removed');
137
+ }));
138
+ test('.remove + id + query id', () => __awaiter(void 0, void 0, void 0, function* () {
139
+ const alice = yield service.create({
140
+ name: 'Alice',
141
+ age: 12
142
+ });
143
+ try {
144
+ yield service.remove(doug[idProp], {
145
+ query: { [idProp]: alice[idProp] }
146
+ });
147
+ throw new Error('Should never get here');
148
+ }
149
+ catch (error) {
150
+ assert_1.default.strictEqual(error.name, 'NotFound', 'Got a NotFound Feathers error');
151
+ }
152
+ yield service.remove(alice[idProp]);
153
+ }));
357
154
  });
358
-
359
- const data = await service.patch(null, {
360
- age: 2
361
- }, params);
362
-
363
- assert.strictEqual(data.length, 2, 'returned two entries');
364
- assert.strictEqual(data[0].age, 2, 'First entry age was updated');
365
- assert.strictEqual(data[1].age, 2, 'Sceond entry age was updated');
366
-
367
- await service.remove(dave[idProp], params);
368
- await service.remove(david[idProp], params);
369
- });
370
-
371
- test('.patch + NotFound', async () => {
372
- try {
373
- await service.patch('568225fbfe21222432e836ff', { name: 'PatchDoug' });
374
- throw new Error('Should never get here');
375
- } catch (error) {
376
- assert.strictEqual(error.name, 'NotFound',
377
- 'Error is a NotFound Feathers error'
378
- );
379
- }
380
- });
381
-
382
- test('.patch + id + query id', async () => {
383
- const alice = await service.create({
384
- name: 'Alice',
385
- age: 12
155
+ describe('update', () => {
156
+ test('.update', () => __awaiter(void 0, void 0, void 0, function* () {
157
+ const originalData = { [idProp]: doug[idProp], name: 'Dougler' };
158
+ const originalCopy = Object.assign({}, originalData);
159
+ const data = yield service.update(doug[idProp], originalData);
160
+ assert_1.default.deepStrictEqual(originalData, originalCopy, 'data was not modified');
161
+ assert_1.default.strictEqual(data[idProp].toString(), doug[idProp].toString(), `${idProp} id matches`);
162
+ assert_1.default.strictEqual(data.name, 'Dougler', 'data.name matches');
163
+ assert_1.default.ok(!data.age, 'data.age is falsy');
164
+ }));
165
+ test('.update + $select', () => __awaiter(void 0, void 0, void 0, function* () {
166
+ const originalData = {
167
+ [idProp]: doug[idProp],
168
+ name: 'Dougler',
169
+ age: 10
170
+ };
171
+ const data = yield service.update(doug[idProp], originalData, {
172
+ query: { $select: ['name'] }
173
+ });
174
+ assert_1.default.strictEqual(data.name, 'Dougler', 'data.name matches');
175
+ assert_1.default.ok(!data.age, 'data.age is falsy');
176
+ }));
177
+ test('.update + id + query', () => __awaiter(void 0, void 0, void 0, function* () {
178
+ try {
179
+ yield service.update(doug[idProp], {
180
+ name: 'Dougler'
181
+ }, {
182
+ query: { name: 'Tester' }
183
+ });
184
+ throw new Error('Should never get here');
185
+ }
186
+ catch (error) {
187
+ assert_1.default.strictEqual(error.name, 'NotFound', 'Got a NotFound Feathers error');
188
+ }
189
+ }));
190
+ test('.update + NotFound', () => __awaiter(void 0, void 0, void 0, function* () {
191
+ try {
192
+ yield service.update('568225fbfe21222432e836ff', { name: 'NotFound' });
193
+ throw new Error('Should never get here');
194
+ }
195
+ catch (error) {
196
+ assert_1.default.strictEqual(error.name, 'NotFound', 'Error is a NotFound Feathers error');
197
+ }
198
+ }));
199
+ test('.update + query + NotFound', () => __awaiter(void 0, void 0, void 0, function* () {
200
+ const dave = yield service.create({ name: 'Dave' });
201
+ try {
202
+ yield service.update(dave[idProp], { name: 'UpdatedDave' }, { query: { name: 'NotDave' } });
203
+ throw new Error('Should never get here');
204
+ }
205
+ catch (error) {
206
+ assert_1.default.strictEqual(error.name, 'NotFound', 'Error is a NotFound Feathers error');
207
+ }
208
+ yield service.remove(dave[idProp]);
209
+ }));
210
+ test('.update + id + query id', () => __awaiter(void 0, void 0, void 0, function* () {
211
+ const alice = yield service.create({
212
+ name: 'Alice',
213
+ age: 12
214
+ });
215
+ try {
216
+ yield service.update(doug[idProp], {
217
+ name: 'Dougler',
218
+ age: 33
219
+ }, {
220
+ query: { [idProp]: alice[idProp] }
221
+ });
222
+ throw new Error('Should never get here');
223
+ }
224
+ catch (error) {
225
+ assert_1.default.strictEqual(error.name, 'NotFound', 'Got a NotFound Feathers error');
226
+ }
227
+ yield service.remove(alice[idProp]);
228
+ }));
386
229
  });
387
-
388
- try {
389
- await service.patch(doug[idProp], {
390
- age: 33
391
- }, {
392
- query: { [idProp]: alice[idProp] }
393
- });
394
- throw new Error('Should never get here');
395
- } catch (error) {
396
- assert.strictEqual(error.name, 'NotFound',
397
- 'Got a NotFound Feathers error'
398
- );
399
- }
400
-
401
- await service.remove(alice[idProp]);
402
- });
403
- });
404
-
405
- describe('create', () => {
406
- test('.create', async () => {
407
- const originalData = {
408
- name: 'Bill',
409
- age: 40
410
- };
411
- const originalCopy = Object.assign({}, originalData);
412
-
413
- const data = await service.create(originalData);
414
-
415
- assert.deepStrictEqual(originalData, originalCopy,
416
- 'original data was not modified'
417
- );
418
- assert.ok(data instanceof Object, 'data is an object');
419
- assert.strictEqual(data.name, 'Bill', 'data.name matches');
420
-
421
- await service.remove(data[idProp]);
422
- });
423
-
424
- test('.create + $select', async () => {
425
- const originalData = {
426
- name: 'William',
427
- age: 23
428
- };
429
-
430
- const data = await service.create(originalData, {
431
- query: { $select: [ 'name' ] }
230
+ describe('patch', () => {
231
+ test('.patch', () => __awaiter(void 0, void 0, void 0, function* () {
232
+ const originalData = { [idProp]: doug[idProp], name: 'PatchDoug' };
233
+ const originalCopy = Object.assign({}, originalData);
234
+ const data = yield service.patch(doug[idProp], originalData);
235
+ assert_1.default.deepStrictEqual(originalData, originalCopy, 'original data was not modified');
236
+ assert_1.default.strictEqual(data[idProp].toString(), doug[idProp].toString(), `${idProp} id matches`);
237
+ assert_1.default.strictEqual(data.name, 'PatchDoug', 'data.name matches');
238
+ assert_1.default.strictEqual(data.age, 32, 'data.age matches');
239
+ }));
240
+ test('.patch + $select', () => __awaiter(void 0, void 0, void 0, function* () {
241
+ const originalData = { [idProp]: doug[idProp], name: 'PatchDoug' };
242
+ const data = yield service.patch(doug[idProp], originalData, {
243
+ query: { $select: ['name'] }
244
+ });
245
+ assert_1.default.strictEqual(data.name, 'PatchDoug', 'data.name matches');
246
+ assert_1.default.ok(!data.age, 'data.age is falsy');
247
+ }));
248
+ test('.patch + id + query', () => __awaiter(void 0, void 0, void 0, function* () {
249
+ try {
250
+ yield service.patch(doug[idProp], {
251
+ name: 'id patched doug'
252
+ }, {
253
+ query: { name: 'Tester' }
254
+ });
255
+ throw new Error('Should never get here');
256
+ }
257
+ catch (error) {
258
+ assert_1.default.strictEqual(error.name, 'NotFound', 'Got a NotFound Feathers error');
259
+ }
260
+ }));
261
+ test('.patch multiple', () => __awaiter(void 0, void 0, void 0, function* () {
262
+ try {
263
+ yield service.patch(null, {});
264
+ throw new Error('Should never get here');
265
+ }
266
+ catch (error) {
267
+ assert_1.default.strictEqual(error.name, 'MethodNotAllowed', 'Removing multiple without option set throws MethodNotAllowed');
268
+ }
269
+ const params = {
270
+ query: { created: true }
271
+ };
272
+ const dave = yield service.create({
273
+ name: 'Dave',
274
+ age: 29,
275
+ created: true
276
+ });
277
+ const david = yield service.create({
278
+ name: 'David',
279
+ age: 3,
280
+ created: true
281
+ });
282
+ service.options.multi = ['patch'];
283
+ const data = yield service.patch(null, {
284
+ age: 2
285
+ }, params);
286
+ assert_1.default.strictEqual(data.length, 2, 'returned two entries');
287
+ assert_1.default.strictEqual(data[0].age, 2, 'First entry age was updated');
288
+ assert_1.default.strictEqual(data[1].age, 2, 'Second entry age was updated');
289
+ yield service.remove(dave[idProp]);
290
+ yield service.remove(david[idProp]);
291
+ }));
292
+ test('.patch multi query same', () => __awaiter(void 0, void 0, void 0, function* () {
293
+ const service = app.service(serviceName);
294
+ const params = {
295
+ query: { age: { $lt: 10 } }
296
+ };
297
+ const dave = yield service.create({
298
+ name: 'Dave',
299
+ age: 8,
300
+ created: true
301
+ });
302
+ const david = yield service.create({
303
+ name: 'David',
304
+ age: 4,
305
+ created: true
306
+ });
307
+ const data = yield service.patch(null, {
308
+ age: 2
309
+ }, params);
310
+ assert_1.default.strictEqual(data.length, 2, 'returned two entries');
311
+ assert_1.default.strictEqual(data[0].age, 2, 'First entry age was updated');
312
+ assert_1.default.strictEqual(data[1].age, 2, 'Second entry age was updated');
313
+ yield service.remove(dave[idProp]);
314
+ yield service.remove(david[idProp]);
315
+ }));
316
+ test('.patch multi query changed', () => __awaiter(void 0, void 0, void 0, function* () {
317
+ const service = app.service(serviceName);
318
+ const params = {
319
+ query: { age: 10 }
320
+ };
321
+ const dave = yield service.create({
322
+ name: 'Dave',
323
+ age: 10,
324
+ created: true
325
+ });
326
+ const david = yield service.create({
327
+ name: 'David',
328
+ age: 10,
329
+ created: true
330
+ });
331
+ const data = yield service.patch(null, {
332
+ age: 2
333
+ }, params);
334
+ assert_1.default.strictEqual(data.length, 2, 'returned two entries');
335
+ assert_1.default.strictEqual(data[0].age, 2, 'First entry age was updated');
336
+ assert_1.default.strictEqual(data[1].age, 2, 'Second entry age was updated');
337
+ yield service.remove(dave[idProp]);
338
+ yield service.remove(david[idProp]);
339
+ }));
340
+ test('.patch + NotFound', () => __awaiter(void 0, void 0, void 0, function* () {
341
+ try {
342
+ yield service.patch('568225fbfe21222432e836ff', { name: 'PatchDoug' });
343
+ throw new Error('Should never get here');
344
+ }
345
+ catch (error) {
346
+ assert_1.default.strictEqual(error.name, 'NotFound', 'Error is a NotFound Feathers error');
347
+ }
348
+ }));
349
+ test('.patch + query + NotFound', () => __awaiter(void 0, void 0, void 0, function* () {
350
+ const dave = yield service.create({ name: 'Dave' });
351
+ try {
352
+ yield service.patch(dave[idProp], { name: 'PatchedDave' }, { query: { name: 'NotDave' } });
353
+ throw new Error('Should never get here');
354
+ }
355
+ catch (error) {
356
+ assert_1.default.strictEqual(error.name, 'NotFound', 'Error is a NotFound Feathers error');
357
+ }
358
+ yield service.remove(dave[idProp]);
359
+ }));
360
+ test('.patch + id + query id', () => __awaiter(void 0, void 0, void 0, function* () {
361
+ const alice = yield service.create({
362
+ name: 'Alice',
363
+ age: 12
364
+ });
365
+ try {
366
+ yield service.patch(doug[idProp], {
367
+ age: 33
368
+ }, {
369
+ query: { [idProp]: alice[idProp] }
370
+ });
371
+ throw new Error('Should never get here');
372
+ }
373
+ catch (error) {
374
+ assert_1.default.strictEqual(error.name, 'NotFound', 'Got a NotFound Feathers error');
375
+ }
376
+ yield service.remove(alice[idProp]);
377
+ }));
432
378
  });
433
-
434
- assert.strictEqual(data.name, 'William', 'data.name matches');
435
- assert.ok(!data.age, 'data.age is falsy');
436
-
437
- await service.remove(data[idProp]);
438
- });
439
-
440
- test('.create multi', async () => {
441
- try {
442
- await service.create([], {});
443
- throw new Error('Should never get here');
444
- } catch (error) {
445
- assert.strictEqual(error.name, 'MethodNotAllowed',
446
- 'Removing multiple without option set throws MethodNotAllowed'
447
- );
448
- }
449
-
450
- const items = [
451
- {
452
- name: 'Gerald',
453
- age: 18
454
- },
455
- {
456
- name: 'Herald',
457
- age: 18
458
- }
459
- ];
460
-
461
- service.options.multi = [ 'create', 'patch' ];
462
-
463
- const data = await service.create(items);
464
-
465
- assert.ok(Array.isArray(data), 'data is an array');
466
- assert.ok(typeof data[0][idProp] !== 'undefined', 'id is set');
467
- assert.strictEqual(data[0].name, 'Gerald', 'first name matches');
468
- assert.ok(typeof data[1][idProp] !== 'undefined', 'id is set');
469
- assert.strictEqual(data[1].name, 'Herald', 'second name macthes');
470
-
471
- await service.remove(data[0][idProp]);
472
- await service.remove(data[1][idProp]);
473
- });
474
- });
475
-
476
- describe('doesn\'t call public methods internally', () => {
477
- let throwing;
478
-
479
- before(() => {
480
- throwing = app.service(serviceName).extend({
481
- get store () {
482
- return app.service(serviceName).store;
483
- },
484
-
485
- find () {
486
- throw new Error('find method called');
487
- },
488
- get () {
489
- throw new Error('get method called');
490
- },
491
- create () {
492
- throw new Error('create method called');
493
- },
494
- update () {
495
- throw new Error('update method called');
496
- },
497
- patch () {
498
- throw new Error('patch method called');
499
- },
500
- remove () {
501
- throw new Error('remove method called');
502
- }
379
+ describe('create', () => {
380
+ test('.create', () => __awaiter(void 0, void 0, void 0, function* () {
381
+ const originalData = {
382
+ name: 'Bill',
383
+ age: 40
384
+ };
385
+ const originalCopy = Object.assign({}, originalData);
386
+ const data = yield service.create(originalData);
387
+ assert_1.default.deepStrictEqual(originalData, originalCopy, 'original data was not modified');
388
+ assert_1.default.ok(data instanceof Object, 'data is an object');
389
+ assert_1.default.strictEqual(data.name, 'Bill', 'data.name matches');
390
+ yield service.remove(data[idProp]);
391
+ }));
392
+ test('.create + $select', () => __awaiter(void 0, void 0, void 0, function* () {
393
+ const originalData = {
394
+ name: 'William',
395
+ age: 23
396
+ };
397
+ const data = yield service.create(originalData, {
398
+ query: { $select: ['name'] }
399
+ });
400
+ assert_1.default.strictEqual(data.name, 'William', 'data.name matches');
401
+ assert_1.default.ok(!data.age, 'data.age is falsy');
402
+ yield service.remove(data[idProp]);
403
+ }));
404
+ test('.create multi', () => __awaiter(void 0, void 0, void 0, function* () {
405
+ try {
406
+ yield service.create([], {});
407
+ throw new Error('Should never get here');
408
+ }
409
+ catch (error) {
410
+ assert_1.default.strictEqual(error.name, 'MethodNotAllowed', 'Removing multiple without option set throws MethodNotAllowed');
411
+ }
412
+ const items = [
413
+ {
414
+ name: 'Gerald',
415
+ age: 18
416
+ },
417
+ {
418
+ name: 'Herald',
419
+ age: 18
420
+ }
421
+ ];
422
+ service.options.multi = ['create', 'patch'];
423
+ const data = yield service.create(items);
424
+ assert_1.default.ok(Array.isArray(data), 'data is an array');
425
+ assert_1.default.ok(typeof data[0][idProp] !== 'undefined', 'id is set');
426
+ assert_1.default.strictEqual(data[0].name, 'Gerald', 'first name matches');
427
+ assert_1.default.ok(typeof data[1][idProp] !== 'undefined', 'id is set');
428
+ assert_1.default.strictEqual(data[1].name, 'Herald', 'second name macthes');
429
+ yield service.remove(data[0][idProp]);
430
+ yield service.remove(data[1][idProp]);
431
+ }));
503
432
  });
504
- });
505
-
506
- test('internal .find', () => app.service(serviceName).find.call(throwing));
507
-
508
- test('internal .get', () =>
509
- service.get.call(throwing, doug[idProp])
510
- );
511
-
512
- test('internal .create', async () => {
513
- const bob = await service.create.call(throwing, {
514
- name: 'Bob',
515
- age: 25
433
+ describe('doesn\'t call public methods internally', () => {
434
+ let throwing;
435
+ before(() => {
436
+ throwing = app.service(serviceName).extend({
437
+ get store() {
438
+ return app.service(serviceName).store;
439
+ },
440
+ find() {
441
+ throw new Error('find method called');
442
+ },
443
+ get() {
444
+ throw new Error('get method called');
445
+ },
446
+ create() {
447
+ throw new Error('create method called');
448
+ },
449
+ update() {
450
+ throw new Error('update method called');
451
+ },
452
+ patch() {
453
+ throw new Error('patch method called');
454
+ },
455
+ remove() {
456
+ throw new Error('remove method called');
457
+ }
458
+ });
459
+ });
460
+ test('internal .find', () => app.service(serviceName).find.call(throwing));
461
+ test('internal .get', () => service.get.call(throwing, doug[idProp]));
462
+ test('internal .create', () => __awaiter(void 0, void 0, void 0, function* () {
463
+ const bob = yield service.create.call(throwing, {
464
+ name: 'Bob',
465
+ age: 25
466
+ });
467
+ yield service.remove(bob[idProp]);
468
+ }));
469
+ test('internal .update', () => service.update.call(throwing, doug[idProp], {
470
+ name: 'Dougler'
471
+ }));
472
+ test('internal .patch', () => service.patch.call(throwing, doug[idProp], {
473
+ name: 'PatchDoug'
474
+ }));
475
+ test('internal .remove', () => service.remove.call(throwing, doug[idProp]));
516
476
  });
517
-
518
- await service.remove(bob[idProp]);
519
- });
520
-
521
- test('internal .update', () =>
522
- service.update.call(throwing, doug[idProp], {
523
- name: 'Dougler'
524
- })
525
- );
526
-
527
- test('internal .patch', () =>
528
- service.patch.call(throwing, doug[idProp], {
529
- name: 'PatchDoug'
530
- })
531
- );
532
-
533
- test('internal .remove', () =>
534
- service.remove.call(throwing, doug[idProp])
535
- );
536
477
  });
537
- });
538
478
  };
479
+ //# sourceMappingURL=methods.js.map