%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/opti/workflow/src/test/
Upload File :
Create Path :
Current File : /home/opti/workflow/src/test/user_test.js

var mongoose = require('mongoose');
var User = require('../models/user');
var faker = require('faker');
var chai = require('chai');
var chaiHttp = require('chai-http');
var app = require('../bin/www');
var baseuri = "http://localhost:3000";

var expect = chai.expect;
var assert = chai.assert;    
var should = chai.should();

chai.use(chaiHttp);

User.collection.drop();

describe('User', function(){
    it('should create new User on /register POST', function(done) {
        chai.request(baseuri)
            .post('/register')
            .send({ firstName: faker.name.firstName(),
            lastName: faker.name.lastName(),
            phone: faker.phone.phoneNumber(),
            email: 'example@example.com',
            password: 'secret' })
            .end(function(err, res){
                res.should.have.status(200);
                res.should.be.json;
                res.body.should.be.a('object');
                done();
            });
    });

    it('should login User on /login POST', function(done) {
        chai.request(baseuri)
            .post('/login')
            .send({
            email: 'example@example.com',
            password: 'secret' })
            .end(function(err, res){
                res.should.have.status(200);
                res.should.be.json;
                res.body.should.be.a('object');
                done();
            });
    });

    it('should list ALL users on /users GET', function(done) {
        chai.request(baseuri)
            .post('/login')
            .send({
            email: 'example@example.com',
            password: 'secret' })
            .end(function(err, res){
                chai.request(baseuri)
                .get('/users')
                .set({'Authorization': res.body.token})
                .end(function(err, res) {
                    res.should.have.status(200);
                    res.should.be.json;
                    res.body.should.be.a('array');
                    done();
                });
            });
     
    });


    it('should show SINGLE user on /users/<id> GET', function(done){
        chai.request(baseuri)
        .post('/login')
        .send({
        email: 'example@example.com',
        password: 'secret' })
        .end(function(err, res1){
            chai.request(baseuri)
            .get('/users')
            .set({'Authorization': res1.body.token})
            .end(function(err, res) {
                chai.request(baseuri)
                    .get('/users/' + res.body[0]._id)
                    .set({'Authorization': res1.body.token})
                    .end(function(err, response){
                        response.should.have.status(200);
                        response.should.be.json;
                        response.body.should.be.an('object');
                        done();
                    });
            });
        });
 
    });


    it('should update SINGLE user on /users/<id> PUT', function(done){
        chai.request(baseuri)
        .post('/login')
        .send({
        email: 'example@example.com',
        password: 'secret' })
        .end(function(err, res1){
            chai.request(baseuri)
            .get('/users')
            .set({'Authorization': res1.body.token})
            .end(function(err, res) {
                chai.request(baseuri)
                    .put('/users/' + res.body[0]._id)
                    .send({firstName: "Super"})
                    .set({'Authorization': res1.body.token})
                    .end(function(err, response){
                        response.should.have.status(200);
                        response.should.be.json;
                        response.body.should.be.an('object');
                        done();
                    });
            });
        });
 
    });



    // it('should delete SINGLE user on /users/<id> DELETE', function(done){
    //     chai.request(baseuri)
    //     .post('/login')
    //     .send({
    //     email: 'example@example.com',
    //     password: 'secret' })
    //     .end(function(err, res1){
    //         chai.request(baseuri)
    //         .get('/users')
    //         .set({'Authorization': res1.body.token})
    //         .end(function(err, res) {
    //             chai.request(baseuri)
    //                 .get('/users/' + res.body[0]._id)
    //                 .set({'Authorization': res1.body.token})
    //                 .end(function(err, response){
    //                     response.should.have.status(200);
    //                     response.should.be.json;
    //                     response.body.should.be.an('object');
    //                     done();
    //                 });
    //         });
    //     });
    // });

});


Zerion Mini Shell 1.0