Browse Source

:pencil: WIP test

tags/0.0.1^2
juancarbajal98 3 years ago
parent
commit
0a1a2f7c60
1 changed files with 54 additions and 0 deletions
  1. 54
    0
      backend/tests/membership-join.spec.js

+ 54
- 0
backend/tests/membership-join.spec.js View File

@@ -0,0 +1,54 @@
1
+'use strict'
2
+
3
+const test = require('ava')
4
+const { stub } = require('sinon')
5
+const Hapi = require('@hapi/hapi')
6
+
7
+const plugin = require('../lib/plugins/membership')
8
+
9
+const Grouping = require('../lib/models/grouping')
10
+const Membership = require('../lib/models/membership')
11
+
12
+const ProfileService = require('../lib/services/profile')
13
+
14
+const params = {
15
+    profile_id: 45
16
+}
17
+const mockReturn = {
18
+    memberships: [
19
+        'string'
20
+    ],
21
+    hasMatch: true,
22
+    groupings: [
23
+        'string'
24
+    ]
25
+}
26
+const pathToTest = {
27
+    method: 'POST',
28
+    url: `/${params.profile_id}/join`,
29
+}
30
+
31
+test(`path ${pathToTest.url} should return ok on POST`, async t => {
32
+    const server = Hapi.server()
33
+    server.registerModel = () => {}
34
+    server.models = () => ({
35
+        Grouping,
36
+        Membership,
37
+    })
38
+    await plugin.register(server)
39
+    server.services()['profileService'] = new ProfileService(server)
40
+    /**
41
+     * TODO: adjust stubs to mock joinGrouping more closely
42
+     */
43
+    stub(server.models()['Grouping'], 'query').returns(mockReturn.groupings)
44
+    stub(server.models()['Membership'], 'query').returns(mockReturn.memberships)
45
+
46
+    /**
47
+     * Test the server with registered models and services
48
+     */
49
+    const { payload } = await server.inject(pathToTest)
50
+    const res = JSON.parse(payload)
51
+    t.deepEqual(res.ok, true)
52
+    t.deepEqual(res.data, mockReturn.responses)
53
+    server.stop()
54
+})

Loading…
Cancel
Save