@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/CHANGELOG.md +38 -0
- package/LICENSE +1 -1
- package/lib/basic.d.ts +2 -0
- package/lib/basic.js +42 -51
- package/lib/basic.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +46 -44
- package/lib/index.js.map +1 -0
- package/lib/methods.d.ts +2 -0
- package/lib/methods.js +469 -528
- package/lib/methods.js.map +1 -0
- package/lib/syntax.d.ts +2 -0
- package/lib/syntax.js +296 -337
- package/lib/syntax.js.map +1 -0
- package/package.json +19 -9
- package/src/basic.ts +53 -0
- package/src/index.ts +53 -0
- package/src/methods.ts +600 -0
- package/src/syntax.ts +342 -0
package/lib/methods.js
CHANGED
|
@@ -1,538 +1,479 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
describe('
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
'
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
'
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
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
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
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
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
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
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
'
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
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
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
'
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
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
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
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
|