Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import tap from 'tap'
- import qs from 'querystring'
- import uuid from 'uuid/v4'
- import bcrypt from 'bcrypt'
- import { app } from '../../app'
- import config from '../../config'
- const { domain, knexOptions, jwtExpiration } = config
- const baseUri = 'api'
- let authToken, accessToken, payload
- const user = {
- email: 'test@test.com',
- handle: 'testuser',
- number: '+15757555'
- }
- export default async function () {
- await app.ready()
- const t1 = await tap.test('POST `api/auth/signup` route')
- await app.tracker.install()
- app.tracker.on('query', (query, step) => {
- [
- () => query.response([]),
- () => query.response([ { ...user, id: uuid() } ])
- ][step - 1]()
- })
- payload = {
- ...user,
- password: 'testing1234'
- }
- try {
- const response = await app.inject({
- method: 'POST',
- url: `${baseUri}/auth/signup`,
- payload
- })
- t1.strictEqual(response.statusCode, 200, 'it should reply with an ok status')
- const { currentUser, token } = JSON.parse(response.payload)
- const { sub } = await app.jwt.decode(token)
- authToken = token
- t1.strictEqual(sub, currentUser.id, 'it should have decoded subject as new user id')
- } catch (err) {
- t1.error(err)
- }
- await app.tracker.uninstall()
- await app.tracker.install()
- const t2 = await tap.test('POST `api/auth/signin` route')
- app.tracker.on('query', (query, step) => {
- query.response([{
- ...user,
- id: uuid(),
- password: bcrypt.hashSync('testing1234', bcrypt.genSaltSync(8), null)
- }])
- })
- payload = {
- email: user.email,
- password: 'testing1234'
- }
- try {
- const response = await app.inject({
- method: 'POST',
- url: `${baseUri}/auth/signin`,
- payload
- })
- t2.strictEqual(response.statusCode, 200, 'it should reply with an ok status')
- const { currentUser, token } = JSON.parse(response.payload)
- const { sub } = await app.jwt.decode(token)
- t2.strictEqual(sub, currentUser.id, 'it should have decoded subject as current user id')
- } catch (err) {
- t2.error(err)
- }
- await tap.tearDown(() => app.close())
- return { authToken }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement