Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

user-create-token.spec.js 1.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. 'use strict'
  2. const test = require('ava')
  3. const { stub } = require('sinon')
  4. const Hapi = require('@hapi/hapi')
  5. const UserService = require('../lib/services/user.js')
  6. const plugin = require('../lib/plugins/user.js')
  7. const JWT = require('jsonwebtoken')
  8. const payload = {
  9. email: 'test@testemail.com',
  10. name: 'fk',
  11. seeking: 'seeker',
  12. }
  13. const data = payload
  14. const pathToTest = {
  15. method: 'POST',
  16. url: '/token',
  17. payload: JSON.stringify(payload),
  18. }
  19. test('path /token should return OK', async t => {
  20. /**
  21. * Create a new server and register services,
  22. * models and routes for testing
  23. */
  24. const server = Hapi.server()
  25. server.registrations = {
  26. 'main-app-plugin': {
  27. options: {},
  28. },
  29. }
  30. /**
  31. * Register Services
  32. */
  33. await plugin.register(server)
  34. server.services()['userService'] = new UserService(server)
  35. const createToken = (data, expiration = 600) => {
  36. const key = process.env.APP_SECRET
  37. const obj = {}
  38. Object.assign(obj, { ...data })
  39. return JWT.sign(obj, key, { expiresIn: expiration })
  40. }
  41. stub(server.services()['userService'], 'createToken').returns(
  42. createToken(data),
  43. )
  44. /**
  45. * Test the server with registered models and services
  46. */
  47. const { payload } = await server.inject(pathToTest)
  48. const res = JSON.parse(payload)
  49. t.deepEqual(res.ok, true)
  50. t.assert(res.data)
  51. t.is(res.data.error, undefined)
  52. server.stop()
  53. })