auth.spec.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import app from '../bin/server'
  2. import supertest from 'supertest'
  3. import {expect, should} from 'chai'
  4. import {cleanDb, authUser} from './utils'
  5. should()
  6. const request = supertest.agent(app.listen())
  7. const context = {}
  8. describe('Auth', () => {
  9. before((done) => {
  10. cleanDb()
  11. authUser(request, (err, { user, token }) => {
  12. if (err) {
  13. return done(err)
  14. }
  15. context.user = user
  16. context.token = token
  17. done()
  18. })
  19. })
  20. describe('POST /auth', () => {
  21. it('should throw 401 if credentials are incorrect', (done) => {
  22. request
  23. .post('/auth')
  24. .set('Accept', 'application/json')
  25. .send({ username: 'supercoolname', password: 'wrongpassword' })
  26. .expect(401, done)
  27. })
  28. it('should auth user', (done) => {
  29. request
  30. .post('/auth')
  31. .set('Accept', 'application/json')
  32. .send({ username: 'test', password: 'pass' })
  33. .expect(200, (err, res) => {
  34. if (err) { return done(err) }
  35. res.body.user.should.have.property('username')
  36. res.body.user.username.should.equal('test')
  37. expect(res.body.user.password).to.not.exist
  38. context.user = res.body.user
  39. context.token = res.body.token
  40. done()
  41. })
  42. })
  43. })
  44. })