You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
171 lines
5.3 KiB
171 lines
5.3 KiB
/* eslint-env mocha */
|
|
/* eslint no-unused-expressions: 0 */
|
|
|
|
const chai = require('chai')
|
|
const chaiHttp = require('chai-http')
|
|
const expect = chai.expect
|
|
const jwt = require('jsonwebtoken')
|
|
|
|
const CFG = require('../../config')
|
|
|
|
chai.use(chaiHttp)
|
|
|
|
describe('Session - Router', function () {
|
|
describe('# login', function () {
|
|
it('POST /session/login with unknown user', function (done) {
|
|
chai.request(global.server)
|
|
.post('/session/login')
|
|
.send({user: 'airpmpA', pass: 'admin'})
|
|
.end((err, res) => {
|
|
expect(err).to.be.null
|
|
expect(res).to.have.status(401)
|
|
expect(res.body).to.have.property('error', 'User:NotFound')
|
|
done()
|
|
})
|
|
})
|
|
|
|
it('POST /session/login with wrong password', function (done) {
|
|
chai.request(global.server)
|
|
.post('/session/login')
|
|
.send({user: 'airpmp', pass: 'toto'})
|
|
.end((err, res) => {
|
|
expect(err).to.be.null
|
|
expect(res).to.have.status(401)
|
|
expect(res.body).to.have.property('error', 'User:WrongPassword')
|
|
done()
|
|
})
|
|
})
|
|
|
|
it('POST /session/login', function (done) {
|
|
chai.request(global.server)
|
|
.post('/session/login')
|
|
.send(global.login)
|
|
.end((err, res) => {
|
|
// console.log(res.body)
|
|
expect(err).to.be.null
|
|
expect(res).to.have.status(200)
|
|
expect(res.body).to.have.nested.property('user.username', global.login.user)
|
|
expect(res.body).to.have.property('jwtAuth')
|
|
global.jwtAuth = res.body.jwtAuth
|
|
done()
|
|
})
|
|
})
|
|
|
|
it('POST /session/access with no jwtAuth', function (done) {
|
|
chai.request(global.server)
|
|
.post('/session/access')
|
|
.send({})
|
|
.end((err, res) => {
|
|
expect(err).to.be.null
|
|
expect(res).to.have.status(401)
|
|
done()
|
|
})
|
|
})
|
|
|
|
it('POST /session/access', function (done) {
|
|
chai.request(global.server)
|
|
.post('/session/access')
|
|
.send({jwtAuth: global.jwtAuth})
|
|
.end((err, res) => {
|
|
expect(err).to.be.null
|
|
expect(res).to.have.status(200)
|
|
expect(res.body).to.have.property('jwtAuth')
|
|
expect(res.body).to.have.property('jwtAccess')
|
|
let clearToken = jwt.decode(res.body.jwtAccess)
|
|
expect(clearToken).to.have.nested.property('data.user.rights')
|
|
global.jwtAuth = res.body.jwtAuth
|
|
global.jwtAccess = res.body.jwtAccess
|
|
done()
|
|
})
|
|
})
|
|
|
|
it('POST /session/access with updated jwtAuth', function (done) {
|
|
chai.request(global.server)
|
|
.post('/session/access')
|
|
.send({jwtAuth: global.jwtAuth})
|
|
.end((err, res) => {
|
|
expect(err).to.be.null
|
|
expect(res).to.have.status(200)
|
|
expect(res.body).to.have.property('jwtAuth')
|
|
expect(res.body).to.have.property('jwtAccess')
|
|
global.jwtAuth = res.body.jwtAuth
|
|
global.jwtAccess = res.body.jwtAccess
|
|
done()
|
|
})
|
|
})
|
|
})
|
|
|
|
describe('# session me', function () {
|
|
it('GET /session/me with no jwtAccess', function (done) {
|
|
chai.request(global.server)
|
|
.get('/session/me')
|
|
.end((err, res) => {
|
|
expect(err).to.be.null
|
|
if (CFG.jwt.enable) {
|
|
expect(res).to.have.status(401)
|
|
}
|
|
done()
|
|
})
|
|
})
|
|
|
|
it('GET /session/me', function (done) {
|
|
chai.request(global.server)
|
|
.get('/session/me')
|
|
.set('token', global.jwtAccess)
|
|
.end((err, res) => {
|
|
// console.log(res.body)
|
|
expect(err).to.be.null
|
|
expect(res.body).to.not.have.property('error')
|
|
expect(res).to.have.status(200)
|
|
done()
|
|
})
|
|
})
|
|
})
|
|
|
|
describe('# session - my filters', function () {
|
|
let createdFilter = null
|
|
it('GET /session/me/filters', function (done) {
|
|
chai.request(global.server)
|
|
.get('/session/me/filters')
|
|
.set('token', global.jwtAccess || '')
|
|
.end((err, res) => {
|
|
// console.log(res.body)
|
|
expect(err).to.be.null
|
|
// expect(res.body).to.have.property('data')
|
|
// expect(res.body).to.not.have.property('error')
|
|
expect(res).to.have.status(200)
|
|
done()
|
|
})
|
|
})
|
|
|
|
it('CREATE /session/me/filters', function (done) {
|
|
chai.request(global.server)
|
|
.post('/session/me/filters')
|
|
.set('token', global.jwtAccess || '')
|
|
.send({name: 'test-test', rules: {test: ''}})
|
|
.end((err, res) => {
|
|
expect(err).to.be.null
|
|
// expect(res.body).to.have.property('data')
|
|
// expect(res.body).to.not.have.property('error')
|
|
expect(res).to.have.status(200)
|
|
createdFilter = res.body.doc
|
|
done()
|
|
})
|
|
})
|
|
|
|
it('DELETE users-filters by api', function (done) {
|
|
chai.request(global.server)
|
|
.delete('/api/users-filters/' + createdFilter._id)
|
|
.set('token', global.jwtAccess || '')
|
|
.end((err, res) => {
|
|
expect(err).to.be.null
|
|
// expect(res.body).to.have.property('data')
|
|
// expect(res.body).to.not.have.property('error')
|
|
expect(res).to.have.status(200)
|
|
done()
|
|
})
|
|
})
|
|
})
|
|
})
|
|
|
|
// https://scotch.io/tutorials/test-a-node-restful-api-with-mocha-and-chai
|