admin_token.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. process.env.NODE_ENV = 'test'
  2. let chai = require('chai')
  3. let server = require('../server')
  4. let should = chai.should()
  5. let Models = require('../models')
  6. let User = Models.User
  7. let AdminToken = Models.AdminToken
  8. const Errors = require('../lib/errors.js')
  9. chai.use(require('chai-http'))
  10. chai.use(require('chai-things'))
  11. describe('User', () => {
  12. //Delete all rows in table after
  13. //tests completed
  14. after((done) => {
  15. Promise.all[
  16. User.sync({ force: true }),
  17. AdminToken.sync({ force: true })
  18. ]
  19. .then(() => {
  20. done(null);
  21. })
  22. .catch((err) => {
  23. done(err)
  24. })
  25. })
  26. describe('POST /admin_token', async (done) => {
  27. try {
  28. let token
  29. let agent = chai.request.agent(server)
  30. await agent
  31. .post('/api/v1/user')
  32. .set('content-type', 'application/json')
  33. .send({
  34. username: 'adminaccount',
  35. password: 'password',
  36. admin: true
  37. })
  38. it('should generate a token if logged in', (done) => {
  39. let res = await agent.post('/api/v1/admin_token')
  40. res.should.have.status(200)
  41. res.body.should.have.property('token')
  42. token = res.body.token
  43. done()
  44. })
  45. it('should generate a different token if logged in', (done) => {
  46. let res = await agent.post('/api/v1/admin_token')
  47. res.should.have.status(200)
  48. res.body.should.have.property('token')
  49. res.body.token.should.not.equal(token)
  50. done()
  51. })
  52. it('should give an error if not logged in', (done) => {
  53. let res = await chai.request(server).post('/api/v1/admin_token')
  54. res.should.have.status(403)
  55. res.body.errors.should.contain.something.that.deep.equals(Errors.requestNotAuthorized)
  56. done()
  57. })
  58. } catch (err) {
  59. done(err)
  60. }
  61. })
  62. })