Skip to content

Commit f26ddf2

Browse files
authored
fix: ensure $select (#8)
* fix: ensure $select * fix: reset before beforeAll * fix: update age nullable
1 parent 47b9433 commit f26ddf2

File tree

2 files changed

+28
-11
lines changed

2 files changed

+28
-11
lines changed

src/index.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,16 @@ export const defineTestSuite = (defineOptions?: DefineTestSuiteOptions) => {
5252
beforeAll(async () => {
5353
const service = app.service(serviceName)
5454

55+
let items = await service.find({ paginate: false })
56+
assert.ok(
57+
Array.isArray(items),
58+
'find with paginate:false did not return an array. Before you start to test the adapter make sure simple find works.',
59+
)
60+
61+
await Promise.all(
62+
items.map((item: any) => service.remove(item[idProp])),
63+
)
64+
5565
// test create
5666
const doug = await service.create({
5767
name: 'Doug',
@@ -75,7 +85,7 @@ export const defineTestSuite = (defineOptions?: DefineTestSuiteOptions) => {
7585

7686
// test delete
7787

78-
const items = await service.find({ paginate: false })
88+
items = await service.find({ paginate: false })
7989
assert.ok(
8090
Array.isArray(items),
8191
'find with paginate:false did not return an array. Before you start to test the adapter make sure simple find works.',

src/methods.ts

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ export default (options: MethodTestOptions) => {
130130
`${idProp} id property matches`,
131131
)
132132
assert.strictEqual(data.name, 'Doug', 'data.name matches')
133-
assert.ok(!data.age, 'data.age is falsy')
133+
assert.ok(!('age' in data), 'data.age is not present')
134134
},
135135
'.get + id + query': async () => {
136136
await assert.rejects(
@@ -182,7 +182,7 @@ export default (options: MethodTestOptions) => {
182182
`${idProp} id property matches`,
183183
)
184184
assert.strictEqual(data.name, 'Doug', 'data.name matches')
185-
assert.ok(!data.age, 'data.age is falsy')
185+
assert.ok(!('age' in data), 'data.age is not presents')
186186
},
187187
'.remove + id + query': async () => {
188188
await assert.rejects(
@@ -341,7 +341,7 @@ export default (options: MethodTestOptions) => {
341341
`${idProp} id matches`,
342342
)
343343
assert.strictEqual(data.name, 'Dougler', 'data.name matches')
344-
assert.ok(!data.age, 'data.age is falsy')
344+
assert.ok(data.age == null, 'data.age is nullable') // could be null or undefined, based on the adapter
345345
},
346346
'.update + $select': async () => {
347347
const originalData = {
@@ -359,10 +359,12 @@ export default (options: MethodTestOptions) => {
359359
doug[idProp].toString(),
360360
`${idProp} id property matches`,
361361
)
362-
assert.strictEqual(data.name, 'Dougler', 'data.name matches')
363-
assert.ok(!data.age, 'data.age is falsy')
362+
assert.strictEqual(data.name, 'Dougler', 'data.name changed')
363+
assert.ok(!('age' in data), 'data.age is not present')
364+
365+
const changed = await service.get(doug[idProp])
364366

365-
// TODO: service.get(doug[idProp]) should have age set to 10
367+
assert.strictEqual(changed.age, originalData.age, 'data.age changed')
366368
},
367369
'.update + id + query': async () => {
368370
await assert.rejects(
@@ -457,7 +459,11 @@ export default (options: MethodTestOptions) => {
457459
assert.strictEqual(data.age, 32, 'data.age matches')
458460
},
459461
'.patch + $select': async () => {
460-
const originalData = { [idProp]: doug[idProp], name: 'PatchDoug' }
462+
const originalData = {
463+
[idProp]: doug[idProp],
464+
name: 'PatchDoug',
465+
age: 10,
466+
}
461467

462468
const data = await service.patch(doug[idProp], originalData, {
463469
query: { $select: ['name'] },
@@ -469,9 +475,10 @@ export default (options: MethodTestOptions) => {
469475
`${idProp} id property matches`,
470476
)
471477
assert.strictEqual(data.name, 'PatchDoug', 'data.name matches')
472-
assert.ok(!data.age, 'data.age is falsy')
478+
assert.ok(!('age' in data), 'data.age is not present')
473479

474-
// TODO: service.get(doug[idProp]) should have age set to 10
480+
const changed = await service.get(doug[idProp])
481+
assert.strictEqual(changed.age, originalData.age, 'data.age changed')
475482
},
476483
'.patch + id + query': async () => {
477484
await assert.rejects(
@@ -852,7 +859,7 @@ export default (options: MethodTestOptions) => {
852859

853860
assert.ok(idProp in data, 'data has id')
854861
assert.strictEqual(data.name, 'William', 'data.name matches')
855-
assert.ok(!data.age, 'data.age is falsy')
862+
assert.ok(!('age' in data), 'data.age is not present')
856863

857864
const created = await service.get(data[idProp])
858865

0 commit comments

Comments
 (0)