mirror of
https://github.com/Permissionless-Software-Foundation/bch-email-api.git
synced 2026-09-21 16:52:04 -07:00
107 lines
2.7 KiB
JavaScript
107 lines
2.7 KiB
JavaScript
const app = require('../bin/server')
|
|
// const supertest = require('supertest')
|
|
// const expect = require('chai').expect
|
|
const should = require('chai').should
|
|
// const cleanDb = require('./utils').cleanDb
|
|
// const authUser = require('./utils').authUser
|
|
const utils = require('./utils')
|
|
|
|
const rp = require('request-promise')
|
|
const assert = require('chai').assert
|
|
|
|
should()
|
|
// const request = supertest.agent(app.listen())
|
|
const context = {}
|
|
|
|
const LOCALHOST = 'http://localhost:5000'
|
|
|
|
|
|
|
|
describe('Auth', () => {
|
|
before(async () => {
|
|
|
|
await app.startServer()
|
|
|
|
utils.cleanDb()
|
|
|
|
/*
|
|
authUser(request, (err, { user, token }) => {
|
|
if (err) { return done(err) }
|
|
|
|
context.user = user
|
|
context.token = token
|
|
done()
|
|
})
|
|
*/
|
|
|
|
const userObj = {
|
|
username: 'test',
|
|
password: 'pass'
|
|
}
|
|
const testUser = await utils.createUser(userObj)
|
|
|
|
context.user = testUser.user
|
|
context.token = testUser.token
|
|
})
|
|
|
|
describe('POST /auth', () => {
|
|
it('should throw 401 if credentials are incorrect', async () => {
|
|
try {
|
|
const options = {
|
|
method: 'POST',
|
|
uri: `${LOCALHOST}/auth`,
|
|
resolveWithFullResponse: true,
|
|
json: true,
|
|
body: {
|
|
username: 'test',
|
|
password: 'wrongpassword'
|
|
}
|
|
}
|
|
|
|
let result = await rp(options)
|
|
|
|
// console.log(`result: ${JSON.stringify(result, null, 2)}`)
|
|
|
|
console.log(`result stringified: ${JSON.stringify(result, null, 2)}`)
|
|
assert(false, 'Unexpected result')
|
|
} catch (err) {
|
|
if (err.statusCode === 422) {
|
|
assert(err.statusCode === 422, 'Error code 422 expected.')
|
|
} else if (err.statusCode === 401) {
|
|
assert(err.statusCode === 401, 'Error code 401 expected.')
|
|
} else {
|
|
console.error('Error: ', err)
|
|
console.log('Error stringified: ' + JSON.stringify(err, null, 2))
|
|
throw err
|
|
}
|
|
}
|
|
})
|
|
|
|
it('should auth user', async () => {
|
|
try {
|
|
const options = {
|
|
method: 'POST',
|
|
uri: `${LOCALHOST}/auth`,
|
|
resolveWithFullResponse: true,
|
|
json: true,
|
|
body: {
|
|
username: 'test',
|
|
password: 'pass'
|
|
}
|
|
}
|
|
|
|
let result = await rp(options)
|
|
|
|
// console.log(`result: ${JSON.stringify(result, null, 2)}`)
|
|
|
|
assert(result.statusCode === 200, 'Status Code 200 expected.')
|
|
assert(result.body.user.username === 'test', 'Username of test expected')
|
|
assert(result.body.user.password === undefined, 'Password expected to be omited')
|
|
} catch (err) {
|
|
console.log('Error authenticating test user: ' + JSON.stringify(err, null, 2))
|
|
throw err
|
|
}
|
|
})
|
|
})
|
|
})
|