Skip to content

Commit 7fe9929

Browse files
committed
create store function integration tests
1 parent bf6c824 commit 7fe9929

File tree

4 files changed

+66
-3
lines changed

4 files changed

+66
-3
lines changed

src/integrationTests/common.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,3 +57,15 @@ export const testGroup = (
5757
executeTest(stores, tests, () => res())
5858
})
5959
}
60+
61+
const executeTestGroup = async (stores: Stores, testGroups: TestGroup[], onComplete: () => void, i: number = 0) => {
62+
await testGroups[i](stores)
63+
if (i < testGroups.length - 1)
64+
await executeTestGroup(stores, testGroups, onComplete, i + 1)
65+
else
66+
onComplete()
67+
}
68+
69+
export const executeTestGroups = (stores: Stores, ...testGroups: TestGroup[]) => new Promise((res, rej) => {
70+
executeTestGroup(stores, testGroups, () => res(null))
71+
})

src/integrationTests/index.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
1+
import { executeTestGroups } from './common'
12
import { ORM, provisionOrm } from './orm'
3+
import { createTests } from './tests/create'
24
import { deleteTests } from './tests/delete'
35
import { getTests } from './tests/get'
46
import { updateTests } from './tests/update'
57

68
const init = async () => {
79
const stores = await provisionOrm()
8-
await getTests(stores)
9-
await updateTests(stores)
10-
await deleteTests(stores)
10+
await executeTestGroups(
11+
stores,
12+
getTests,
13+
updateTests,
14+
deleteTests,
15+
createTests,
16+
)
1117
await ORM.db.client.end()
1218
}
1319

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import { DataFilterLogic, Operator } from '@samhuk/data-filter/dist/types'
2+
import { test } from '../../common'
3+
4+
export const basicTest = test('basic', async (stores, assert) => {
5+
const result = await stores.user.create({
6+
email: 'newUser@email.com',
7+
name: 'newUser',
8+
passwordHash: '123',
9+
})
10+
11+
// Ensure consistent values for generated values
12+
result.id = 1
13+
result.uuid = '123'
14+
result.dateCreated = result.dateCreated.toString() // TODO
15+
16+
assert(result, {
17+
id: 1,
18+
uuid: '123',
19+
dateCreated: result.dateCreated,
20+
dateDeleted: null,
21+
name: 'newUser',
22+
email: 'newUser@email.com',
23+
passwordHash: '123 ',
24+
})
25+
26+
const userRecord = await stores.user.get({
27+
fields: ['name'],
28+
filter: {
29+
logic: DataFilterLogic.AND,
30+
nodes: [
31+
{ field: 'name', op: Operator.EQUALS, val: 'newUser' },
32+
{ field: 'dateDeleted', op: Operator.EQUALS, val: null },
33+
],
34+
},
35+
})
36+
37+
assert(userRecord, { name: 'newUser' })
38+
})
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { testGroup } from '../../common'
2+
import { basicTest } from './basic'
3+
4+
export const createTests = testGroup(
5+
'create',
6+
basicTest,
7+
)

0 commit comments

Comments
 (0)