| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- 'use strict'
-
- const test = require('ava')
- const { stub } = require('sinon')
- const Hapi = require('@hapi/hapi')
- const UserService = require('../lib/services/user.js')
-
- const plugin = require('../lib/plugins/user.js')
-
- const payload = 'a;lsdkfja;ldfjka;ldfja;lskjdfa;dfjk'
- const hashedSessionToken = 'a;lsdkfja;ldfjka;ldfja;lskjdfa;dfjk'
-
- const activeSessions = {
- 'a;lsdkfja;ldfjka;ldfja;lskjdfa;dfjk': {
- email: 'test@testemail.com',
- name: 'john_doe',
- seeking: 'position',
- sessionToken: 'efasdf;laksdfja;lkdjfa;lkdjf',
- expiration: Date.now() + 600000,
- emailWasRespondedTo: false,
- accessToken: null,
- },
- }
-
- const mockReturn = {
- sessionTokenIsRemoved: true,
- }
-
- const pathToTest = {
- method: 'POST',
- url: '/remove-session',
- payload: JSON.stringify(payload),
- }
-
- test('path /remove-session should return confirmation of removed session', async t => {
- /**
- * Create a new server and register services,
- * models and routes for testing
- */
- const server = Hapi.server()
- server.registrations = {
- 'main-app-plugin': {
- options: {},
- },
- }
-
- /**
- * Register Services
- */
- await plugin.register(server)
- server.services()['userService'] = new UserService(server)
-
- const removeSession = hashedSessionToken => {
- const userSession = activeSessions[hashedSessionToken]
- if (!userSession) {
- throw new Error(
- 'hashedSessionToken not in activeSessions registry!',
- )
- } else {
- delete activeSessions[hashedSessionToken]
- }
- }
-
- stub(server.services()['userService'], 'removeSession').returns(
- removeSession(hashedSessionToken),
- )
-
- /**
- * Test the server with registered models and services
- */
- const { payload } = await server.inject(pathToTest)
- const res = JSON.parse(payload)
- t.deepEqual(res.ok, true)
- t.deepEqual(res.data, mockReturn)
- server.stop()
- })
|