Просмотр исходного кода

:white_check_mark: Added test for user/verify-session route

tags/0.0.4
tomit4 2 лет назад
Родитель
Сommit
d9b469dc68
2 измененных файлов: 70 добавлений и 1 удалений
  1. 0
    1
      backend/lib/routes/user/verify-session.js
  2. 70
    0
      backend/tests/user-verify-session.spec.js

+ 0
- 1
backend/lib/routes/user/verify-session.js Просмотреть файл

@@ -29,7 +29,6 @@ module.exports = {
29 29
                 ).find(hashedToken => {
30 30
                     return hashedToken === hash
31 31
                 })
32
-                console.log('hashToMatch :=>', hashToMatch)
33 32
                 if (!hashToMatch?.length) {
34 33
                     throw Error('hashToMatch Not Found!')
35 34
                 }

+ 70
- 0
backend/tests/user-verify-session.spec.js Просмотреть файл

@@ -0,0 +1,70 @@
1
+'use strict'
2
+
3
+const test = require('ava')
4
+const Hapi = require('@hapi/hapi')
5
+const UserService = require('../lib/services/user.js')
6
+
7
+const plugin = require('../lib/plugins/user.js')
8
+
9
+const params = {
10
+    hashedSessionToken: 'a;lsdkfja;ldfjka;ldfja;lskjdfa;dfjk',
11
+    // Replace to get hashToMatchNotFound
12
+    // hashedSessionToken : 'a;lsdkfja;ldfjka;ldfja;lskjdfa;dfjk1'
13
+}
14
+
15
+// Existing activeSession to test against
16
+const activeSessions = {
17
+    'a;lsdkfja;ldfjka;ldfja;lskjdfa;dfjk': {
18
+        email: 'test@testemail.com',
19
+        name: 'john_doe',
20
+        seeking: 'position',
21
+        sessionToken: 'efasdf;laksdfja;lkdjfa;lkdjf',
22
+        expiration: Date.now() + 600000,
23
+        // Should return error took too long to respond to email
24
+        // expiration: 600000,
25
+        emailWasRespondedTo: false,
26
+        accessToken: null,
27
+    },
28
+}
29
+
30
+const mockReturn = {
31
+    hashesMatch: true,
32
+}
33
+
34
+const pathToTest = {
35
+    method: 'GET',
36
+    url: `/verify/${params.hashedSessionToken}`,
37
+}
38
+
39
+test(`path /verify/${params.hashedSessionToken} should return OK on GET`, async t => {
40
+    /**
41
+     * Create a new server and register services,
42
+     * models and routes for testing
43
+     */
44
+    const server = Hapi.server()
45
+    server.registrations = {
46
+        'main-app-plugin': {
47
+            options: {},
48
+        },
49
+    }
50
+
51
+    /**
52
+     * Register Routes and Services as usual
53
+     */
54
+    await plugin.register(server)
55
+    server.services()['userService'] = new UserService(server)
56
+    server.services()['userService']['activeSessions'] = activeSessions
57
+
58
+    /**
59
+     * Test the server with registered models and services
60
+     */
61
+    const { payload } = await server.inject(pathToTest)
62
+    const res = JSON.parse(payload)
63
+    t.deepEqual(res.ok, true)
64
+    t.deepEqual(
65
+        activeSessions[params.hashedSessionToken].emailWasRespondedTo,
66
+        true,
67
+    )
68
+    t.deepEqual(res.data, mockReturn)
69
+    server.stop()
70
+})

Загрузка…
Отмена
Сохранить