| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- '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 JWT = require('jsonwebtoken')
-
- const payload = {
- email: 'test@testemail.com',
- name: 'fk',
- seeking: 'seeker',
- }
-
- const data = payload
-
- const pathToTest = {
- method: 'POST',
- url: '/token',
- payload: JSON.stringify(payload),
- }
-
- test('path /token should return OK', 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 createToken = (data, expiration = 600) => {
- const key = process.env.APP_SECRET
- const obj = {}
- Object.assign(obj, { ...data })
- return JWT.sign(obj, key, { expiresIn: expiration })
- }
-
- stub(server.services()['userService'], 'createToken').returns(
- createToken(data),
- )
-
- /**
- * 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.assert(res.data)
- t.is(res.data.error, undefined)
- server.stop()
- })
|