Advertisement
Guest User

Untitled

a guest
Jun 11th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. process.env.NODE_ENV = 'test';
  2.  
  3. let mongoose = require('mongoose');
  4. let User = require('../models/user');
  5. let Group = require('../models/group');
  6. let bcrypt = require('bcryptjs');
  7.  
  8. const debug = require('debug')('test')
  9.  
  10. let chai = require('chai');
  11. let chaiHttp = require('chai-http');
  12. let server = require('../server');
  13. let should = chai.should();
  14. let jwt = require('jsonwebtoken');
  15. let config = require('../config/credentials');
  16.  
  17. var auth;
  18.  
  19. describe('Users', function () {
  20.   this.timeout(50000)
  21.   beforeEach((done) => {
  22.       chai.use(chaiHttp);
  23.       User.create({_id: "admin", password: bcrypt.hashSync('admin', 8), birthDate: new Date(), firstName: 'admin', lastName: 'admin', postalCode: '1234am', email: 'admin', houseNumber: '1'}, (e, user) => {
  24.         Group.create({_id: "Administrator", users: user._id}, (e, group) => {
  25.           token = jwt.sign({ id: user._id }, config.key, {expiresIn: 8640000});
  26.           auth = "Bearer " + token
  27.           done();
  28.         });
  29.       });
  30.   });
  31.  
  32.   afterEach((done) => {
  33.     mongoose.connection.db.dropDatabase(done);
  34.   });
  35.  
  36.   describe('/GET users', () => {
  37.     it('it should GET all the users', (done) => {
  38.       chai.request(server)
  39.       .get('/users')
  40.       .set("authorization", auth)
  41.       .end((err, res) => {
  42.         res.should.have.status(200);
  43.         res.body.should.be.a('Object');
  44.         res.body.data.should.be.a('Array');
  45.         res.body.data.length.should.eql(1);
  46.         done();
  47.       });
  48.     });
  49.   });
  50.  
  51.   describe('/GET groups/:id/users', () => {
  52.     it('it should GET all the users from the group', (done) => {
  53.       chai.request(server)
  54.       .get('/groups/Administrator/users')
  55.       .set("authorization", auth)
  56.       .end((err, res2) => {
  57.         res2.should.have.status(200);
  58.         res2.body.should.be.a('Object');
  59.         res2.body.data.should.be.a('Array');
  60.         res2.body.data.length.should.eql(1);
  61.         done();
  62.       });
  63.     });
  64.   });
  65.  
  66.   describe('/CREATE users/:id', () => {
  67.     let params = JSON.stringify({data: {attributes: {id: 'test', first_name: "test", last_name: "test", password: 'test', email: 'tester', postalCode: '1111aa', houseNumber: '1', birthDate: new Date()}}})
  68.  
  69.     it('it should CREATE the user', (done) => {
  70.         chai.request(server)
  71.         .post('/users')
  72.         .set("authorization", auth)
  73.         .set("content-type", "application/vnd.api+json")
  74.         .send(params)
  75.         .end((err, res3) => {
  76.           res3.should.have.status(201)
  77.           res3.body.data.id.should.eql('test');
  78.           done();
  79.         });
  80.     });
  81.   });
  82.  
  83.   describe('/CREATE groups/:id/users/:id', () => {
  84.     let params = JSON.stringify({data: {attributes: {id: 'test', first_name: "test", last_name: "test", password: 'test', email: 'tester', postalCode: '1111aa', houseNumber: '1', birthDate: new Date()}}})
  85.  
  86.     it('it should CREATE the user', (done) => {
  87.         chai.request(server)
  88.         .post('/groups/Administrator/users')
  89.         .set("authorization", auth)
  90.         .set("content-type", "application/vnd.api+json")
  91.         .send(params)
  92.         .end((err, res4) => {
  93.           res4.should.have.status(201)
  94.           res4.body.data.id.should.eql('test');
  95.           done();
  96.         });
  97.     });
  98.   });
  99. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement