Bläddra i källkod

:white_check_mark: Added user-remove-session test

juan-filtering-match-pool
tomit4 2 år sedan
förälder
incheckning
cbd6e2c263
1 ändrade filer med 76 tillägg och 0 borttagningar
  1. 76
    0
      backend/tests/user-remove-session.spec.js

+ 76
- 0
backend/tests/user-remove-session.spec.js Visa fil

@@ -0,0 +1,76 @@
1
+'use strict'
2
+
3
+const test = require('ava')
4
+const { stub } = require('sinon')
5
+const Hapi = require('@hapi/hapi')
6
+const UserService = require('../lib/services/user.js')
7
+
8
+const plugin = require('../lib/plugins/user.js')
9
+
10
+const payload = 'a;lsdkfja;ldfjka;ldfja;lskjdfa;dfjk'
11
+const hashedSessionToken = 'a;lsdkfja;ldfjka;ldfja;lskjdfa;dfjk'
12
+
13
+const activeSessions = {
14
+    'a;lsdkfja;ldfjka;ldfja;lskjdfa;dfjk': {
15
+        email: 'test@testemail.com',
16
+        name: 'john_doe',
17
+        seeking: 'position',
18
+        sessionToken: 'efasdf;laksdfja;lkdjfa;lkdjf',
19
+        expiration: Date.now() + 600000,
20
+        emailWasRespondedTo: false,
21
+        accessToken: null,
22
+    },
23
+}
24
+
25
+const mockReturn = {
26
+    sessionTokenIsRemoved: true,
27
+}
28
+
29
+const pathToTest = {
30
+    method: 'POST',
31
+    url: '/remove-session',
32
+    payload: JSON.stringify(payload),
33
+}
34
+
35
+test('path /remove-session should return confirmation of removed session', async t => {
36
+    /**
37
+     * Create a new server and register services,
38
+     * models and routes for testing
39
+     */
40
+    const server = Hapi.server()
41
+    server.registrations = {
42
+        'main-app-plugin': {
43
+            options: {},
44
+        },
45
+    }
46
+
47
+    /**
48
+     * Register Services
49
+     */
50
+    await plugin.register(server)
51
+    server.services()['userService'] = new UserService(server)
52
+
53
+    const removeSession = hashedSessionToken => {
54
+        const userSession = activeSessions[hashedSessionToken]
55
+        if (!userSession) {
56
+            throw new Error(
57
+                'hashedSessionToken not in activeSessions registry!',
58
+            )
59
+        } else {
60
+            delete activeSessions[hashedSessionToken]
61
+        }
62
+    }
63
+
64
+    stub(server.services()['userService'], 'removeSession').returns(
65
+        removeSession(hashedSessionToken),
66
+    )
67
+
68
+    /**
69
+     * Test the server with registered models and services
70
+     */
71
+    const { payload } = await server.inject(pathToTest)
72
+    const res = JSON.parse(payload)
73
+    t.deepEqual(res.ok, true)
74
+    t.deepEqual(res.data, mockReturn)
75
+    server.stop()
76
+})

Laddar…
Avbryt
Spara