diff --git a/src/test/test.js b/src/test/test.js
index 854e26ff1a9517e2df541e7a0e0c02a0ce6a3619..71f9227c3da50525dd056eb3f4be989c79d90e22 100644
--- a/src/test/test.js
+++ b/src/test/test.js
@@ -1241,3 +1241,203 @@ describe('Saves a user', () => {
     });
 
 });
+
+describe('Authenticates a user', () => {
+
+    beforeEach(() => {
+        User.remove({}, (err) => {
+            console.log('Test collection purged');
+        });
+    });
+
+    it('should authenticate a user', (done) => {
+        let newUser = new User();
+
+        newUser.email = 'lorem@ipsum.com';
+        newUser.password = '123mudar';
+        newUser.name = 'Gute';
+        newUser.cpf = '08236017907';
+        newUser.schooling = 'Doutorado';
+        newUser.course = 'Ciência da Computação';
+        newUser.segment = 'Comunidade acadêmica';
+        newUser.role = 'Pesquisador';
+        newUser.institution_name = 'UFPR';
+        newUser.state = 'PR';
+        newUser.city = 'Curitiba';
+
+        newUser.save((err) => {
+            if (err) {
+                console.log('MongoDB error:' + err);
+            }
+        }).then(function(newuser){
+            chai.request(server)
+                .post('/api/v1/user/authenticate')
+                .set('content-type', 'application/x-www-form-urlencoded')
+                .set('x-apicache-bypass', 'true')
+                .send({email: 'lorem@ipsum.com',
+                       password: '123mudar'})
+                .end((err, res) => {
+                    let token;
+
+                    res.should.have.status(200);
+                    res.should.be.json;
+                    res.body.should.have.property('success');
+                    res.body.success.should.equal(true);
+                    res.body.should.have.property('token');
+                    token = res.body.token;
+                    token.substr(0, 3).should.equal('JWT');
+                    done();
+                });
+            });
+    });
+
+    it('should not authenticate a user with wrong password', (done) => {
+        let newUser = new User();
+
+        newUser.email = 'lorem@ipsum.com';
+        newUser.password = '123mudar';
+        newUser.name = 'Gute';
+        newUser.cpf = '08236017907';
+        newUser.schooling = 'Doutorado';
+        newUser.course = 'Ciência da Computação';
+        newUser.segment = 'Comunidade acadêmica';
+        newUser.role = 'Pesquisador';
+        newUser.institution_name = 'UFPR';
+        newUser.state = 'PR';
+        newUser.city = 'Curitiba';
+
+        newUser.save((err) => {
+            if (err) {
+                console.log('MongoDB error:' + err);
+            }
+        }).then(function(newuser){
+            chai.request(server)
+                .post('/api/v1/user/authenticate')
+                .set('content-type', 'application/x-www-form-urlencoded')
+                .set('x-apicache-bypass', 'true')
+                .send({email: 'lorem@ipsum.com',
+                       password: 'umasenhaerrada'})
+                .end((err, res) => {
+                    res.should.have.status(200);
+                    res.should.be.json;
+                    res.body.should.have.property('success');
+                    res.body.success.should.equal(false);
+                    res.body.should.have.property('msg');
+                    res.body.msg.should.equal('A Senha informada é inválida.')
+                    done();
+                });
+            });
+    });
+
+    it('should not authenticate a user with wrong email', (done) => {
+        let newUser = new User();
+
+        newUser.email = 'lorem@ipsum.com';
+        newUser.password = '123mudar';
+        newUser.name = 'Gute';
+        newUser.cpf = '08236017907';
+        newUser.schooling = 'Doutorado';
+        newUser.course = 'Ciência da Computação';
+        newUser.segment = 'Comunidade acadêmica';
+        newUser.role = 'Pesquisador';
+        newUser.institution_name = 'UFPR';
+        newUser.state = 'PR';
+        newUser.city = 'Curitiba';
+
+        newUser.save((err) => {
+            if (err) {
+                console.log('MongoDB error:' + err);
+            }
+        }).then(function(newuser){
+            chai.request(server)
+                .post('/api/v1/user/authenticate')
+                .set('content-type', 'application/x-www-form-urlencoded')
+                .set('x-apicache-bypass', 'true')
+                .send({email: 'dolor@ipsum.com',
+                       password: '123mudar'})
+                .end((err, res) => {
+                    res.should.have.status(200);
+                    res.should.be.json;
+                    res.body.should.have.property('success');
+                    res.body.success.should.equal(false);
+                    res.body.should.have.property('msg');
+                    res.body.msg.should.equal('O Email informado não está cadastrado.')
+                    done();
+                });
+            });
+    });
+
+    it('should not authenticate a user with missing email', (done) => {
+        let newUser = new User();
+
+        newUser.email = 'lorem@ipsum.com';
+        newUser.password = '123mudar';
+        newUser.name = 'Gute';
+        newUser.cpf = '08236017907';
+        newUser.schooling = 'Doutorado';
+        newUser.course = 'Ciência da Computação';
+        newUser.segment = 'Comunidade acadêmica';
+        newUser.role = 'Pesquisador';
+        newUser.institution_name = 'UFPR';
+        newUser.state = 'PR';
+        newUser.city = 'Curitiba';
+
+        newUser.save((err) => {
+            if (err) {
+                console.log('MongoDB error:' + err);
+            }
+        }).then(function(newuser){
+            chai.request(server)
+                .post('/api/v1/user/authenticate')
+                .set('content-type', 'application/x-www-form-urlencoded')
+                .set('x-apicache-bypass', 'true')
+                .send({password: '123mudar'})
+                .end((err, res) => {
+                    res.should.have.status(200);
+                    res.should.be.json;
+                    res.body.should.have.property('success');
+                    res.body.success.should.equal(false);
+                    res.body.should.have.property('msg');
+                    res.body.msg.should.equal('O campo Email é obrigatório.')
+                    done();
+                });
+            });
+    });
+
+    it('should not authenticate a user with missing password', (done) => {
+        let newUser = new User();
+
+        newUser.email = 'lorem@ipsum.com';
+        newUser.password = '123mudar';
+        newUser.name = 'Gute';
+        newUser.cpf = '08236017907';
+        newUser.schooling = 'Doutorado';
+        newUser.course = 'Ciência da Computação';
+        newUser.segment = 'Comunidade acadêmica';
+        newUser.role = 'Pesquisador';
+        newUser.institution_name = 'UFPR';
+        newUser.state = 'PR';
+        newUser.city = 'Curitiba';
+
+        newUser.save((err) => {
+            if (err) {
+                console.log('MongoDB error:' + err);
+            }
+        }).then(function(newuser){
+            chai.request(server)
+                .post('/api/v1/user/authenticate')
+                .set('content-type', 'application/x-www-form-urlencoded')
+                .set('x-apicache-bypass', 'true')
+                .send({email:'lorem@ipsum.com'})
+                .end((err, res) => {
+                    res.should.have.status(200);
+                    res.should.be.json;
+                    res.body.should.have.property('success');
+                    res.body.success.should.equal(false);
+                    res.body.should.have.property('msg');
+                    res.body.msg.should.equal('O campo Senha é obrigatório.')
+                    done();
+                });
+            });
+    });
+});