Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const assert = require('assert');
- process.env.NODE_ENV = 'test';
- //Require the dev-dependencies
- const chai = require('chai');
- const chaiHttp = require('chai-http');
- const should = chai.should();
- const server = require("../server");
- chai.use(chaiHttp);
- const mongoose = require("mongoose");
- const User = mongoose.model('User');
- describe('User', function () {
- beforeEach((done) => { //Before each test we empty the database
- User.remove({}, (err) => {
- done();
- });
- });
- /*
- * Test the /GET/:id route
- */
- describe('/GET/:id user', () => {
- it('Get a client with a string ID, it should raise an error.', (done) => {
- chai.request(server)
- .get('/user/abc')
- .end((err, res) => {
- res.should.have.status(422);
- done();
- });
- });
- it('Get a client with a valid ID.', async () => {
- const user1 = new User({
- firstname: 'Benjamin',
- lastname: 'GONTARD',
- position: 'CEO',
- email: 'benjamin.gontard2912@gmail.com',
- phoneNumber: '0600000000',
- photo: 'maSuperPhotoEnBase64'
- });
- const user2 = new User({
- firstname: 'Rick',
- lastname: 'Hellman',
- position: 'Larbin',
- email: 'x5pidSeries@gmail.com',
- phoneNumber: '0600000000',
- photo: 'saSuperPhotoEnBase64'
- });
- await user1.save();
- await user2.save();
- chai.request(server)
- .get('/user/' + user2.id)
- .end((err, res) => {
- res.should.have.status(200);
- res.body.should.be.a('object');
- res.body.should.have.property('firstname');
- res.body.should.have.property('lastname');
- res.body.should.have.property('position');
- res.body.should.have.property('email');
- res.body.should.have.property('phoneNumber');
- res.body.should.have.property('photo');
- res.body.should.have.property('id').eql(parseInt(user2.id));
- });
- });
- it('Get a client which does not exist, it should return 404 not found.', (done) => {
- const user = new User({
- firstname: 'Benjamin',
- lastname: 'GONTARD',
- position: 'CEO',
- email: 'benjamin.gontard2912@gmail.com',
- phoneNumber: '0600000000',
- photo: 'maSuperPhotoEnBase64'
- });
- user.save((err, user) => {
- chai.request(server)
- .get('/user/' + 1956)
- .end((err, res) => {
- res.should.have.status(404);
- done();
- });
- });
- });
- });
- describe('/POST user', () => {
- it('Post a client with valid data', (done) => {
- const user = {
- firstname: 'Benjamin',
- lastname: 'GONTARD',
- position: 'CEO',
- email: 'benjamin.gontard2912@gmail.com',
- phoneNumber: '0600000000',
- photo: 'maSuperPhotoEnBase64'
- }
- chai.request(server)
- .post('/user')
- .send(user)
- .end((err, res) => {
- res.should.have.status(200);
- res.body.should.be.a('object');
- res.body.should.have.property('firstname');
- res.body.should.have.property('lastname');
- res.body.should.have.property('position');
- res.body.should.have.property('email');
- res.body.should.have.property('phoneNumber');
- res.body.should.have.property('photo');
- done();
- });
- });
- });
- /*
- * Test the /GET all route
- */
- describe('/GET user', () => {
- it('Get all the users, length of the result should be 0 because there is no users registered.', (done) => {
- chai.request(server)
- .get('/user')
- .end((err, res) => {
- res.should.have.status(200);
- res.body.should.be.a('array');
- res.body.length.should.be.eql(0);
- done();
- });
- });
- it('Get all the users, length of the result should be 2', async () => {
- const user1 = new User({
- firstname: 'Benjamin',
- lastname: 'GONTARD',
- position: 'CEO',
- email: 'benjamin.gontard2912@gmail.com',
- phoneNumber: '0600000000',
- photo: 'maSuperPhotoEnBase64'
- });
- const user2 = new User({
- firstname: 'Rick',
- lastname: 'Hellman',
- position: 'Larbin',
- email: 'x5pidSeries@gmail.com',
- phoneNumber: '0600000000',
- photo: 'saSuperPhotoEnBase64'
- });
- await user1.save();
- await user2.save();
- chai.request(server)
- .get('/user')
- .end((err, res) => {
- res.should.have.status(200);
- res.body.should.be.a('array');
- res.body.length.should.be.eql(2);
- });
- });
- });
- /*
- * Test the /PUT/:id route
- */
- describe('/PUT/:id user', () => {
- it('Update a valid user with valid data.', async () => {
- const user = new User({
- firstname: 'Benjamin',
- lastname: 'GONTARD',
- position: 'CEO',
- email: 'benjamin.gontard2912@gmail.com',
- phoneNumber: '0600000000',
- photo: 'maSuperPhotoEnBase64'
- });
- const updatedUser = new User({
- firstname: 'Benjamin',
- lastname: 'GONTARD',
- position: 'Consultant',
- email: 'benjamin.gontard2912@gmail.com',
- phoneNumber: '0600000000',
- photo: 'maSuperPhotoEnBase64'
- });
- const savedUser = await user.save();
- chai.request(server)
- .put('/user/' + savedUser.id)
- .send(updatedUser)
- .end((err, res) => {
- res.should.have.status(200);
- res.body.should.be.a('object');
- res.body.should.have.property('position').eql('Consultant');
- });
- });
- it('Update a non-existing user, error 404 should be raised.', async () => {
- const user = new User({
- firstname: 'Benjamin',
- lastname: 'GONTARD',
- position: 'CEO',
- email: 'benjamin.gontard2912@gmail.com',
- phoneNumber: '0600000000',
- photo: 'maSuperPhotoEnBase64'
- });
- const updatedUser = new User({
- firstname: 'Benjamin',
- lastname: 'GONTARD',
- position: 'Consultant',
- email: 'benjamin.gontard2912@gmail.com',
- phoneNumber: '0600000000',
- photo: 'maSuperPhotoEnBase64'
- });
- const savedUser = await user.save();
- chai.request(server)
- .put('/user/' + 9999)
- .send(updatedUser)
- .end((err, res) => {
- res.should.have.status(404);
- });
- });
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement