Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

user-verify-session.spec.js 1.8KB

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