diff --git a/src/test/test.js b/src/test/test.js index 65187f1c2b6f003fa1a0bbad61180361deb65638..854e26ff1a9517e2df541e7a0e0c02a0ce6a3619 100644 --- a/src/test/test.js +++ b/src/test/test.js @@ -870,6 +870,56 @@ describe('Saves a user', () => { }); }); + it('should not create a user with a CPF that is already in use', (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') + .set('content-type', 'application/x-www-form-urlencoded') + .set('x-apicache-bypass', 'true') + .send({email: 'dolor@ipsum.com', + password: '123mudar', + name: 'Tequila Baby', + cpf: '08236017907', + schooling: 'Doutorado', + course: 'Ciência da Computação', + segment: 'Comunidade acadêmica', + role: 'Pesquisador', + institution_name: 'UFPR', + state: 'PR', + city: 'Cutiriba'}) + .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 CPF informado já está cadastrado.'); + User.findOne({'email': 'dolor@ipsum.com'}, (err, user) => { + expect(user).to.not.exist; + done(); + }); + }); + }); + }); + it('should not save an user without email', (done) => { chai.request(server) .post('/api/v1/user') @@ -1016,7 +1066,36 @@ describe('Saves a user', () => { }); }); - it('should not save an user without CPF', (done) => { + it('should not save an user without segment', (done) => { + chai.request(server) + .post('/api/v1/user') + .set('content-type', 'application/x-www-form-urlencoded') + .set('x-apicache-bypass', 'true') + .send({email: 'lorem@ipsum.com', + password: '123mudar', + name: 'Tequila baby', + schooling: 'Doutorado', + cpf: '48303270737', + course: 'Ciência da Computação', + role: 'Pesquisador', + institution_name: 'UFPR', + state: 'PR', + city: 'Cutiriba'}) + .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 Segmento é obrigatório.'); + User.findOne({'email': 'lorem@ipsum.com'}, (err, user) => { + expect(user).to.not.exist; + done(); + }); + }); + }); + + it('should not save an user without schooling', (done) => { chai.request(server) .post('/api/v1/user') .set('content-type', 'application/x-www-form-urlencoded') @@ -1045,4 +1124,120 @@ describe('Saves a user', () => { }); }); + it('should not save an user without role', (done) => { + chai.request(server) + .post('/api/v1/user') + .set('content-type', 'application/x-www-form-urlencoded') + .set('x-apicache-bypass', 'true') + .send({email: 'lorem@ipsum.com', + password: '123mudar', + name: 'Tequila baby', + schooling: 'Doutorado', + cpf: '48303270737', + course: 'Ciência da Computação', + segment: 'Comunidade acadêmica', + institution_name: 'UFPR', + state: 'PR', + city: 'Cutiriba'}) + .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 Função é obrigatório.'); + User.findOne({'email': 'lorem@ipsum.com'}, (err, user) => { + expect(user).to.not.exist; + done(); + }); + }); + }); + + it('should not save an user without institution', (done) => { + chai.request(server) + .post('/api/v1/user') + .set('content-type', 'application/x-www-form-urlencoded') + .set('x-apicache-bypass', 'true') + .send({email: 'lorem@ipsum.com', + password: '123mudar', + name: 'Tequila baby', + schooling: 'Doutorado', + cpf: '48303270737', + course: 'Ciência da Computação', + segment: 'Comunidade acadêmica', + role: 'Pesquisador', + state: 'PR', + city: 'Cutiriba'}) + .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 Instituição em que trabalha é obrigatório.'); + User.findOne({'email': 'lorem@ipsum.com'}, (err, user) => { + expect(user).to.not.exist; + done(); + }); + }); + }); + + it('should not save an user without city', (done) => { + chai.request(server) + .post('/api/v1/user') + .set('content-type', 'application/x-www-form-urlencoded') + .set('x-apicache-bypass', 'true') + .send({email: 'lorem@ipsum.com', + password: '123mudar', + name: 'Tequila baby', + schooling: 'Doutorado', + cpf: '48303270737', + course: 'Ciência da Computação', + segment: 'Comunidade acadêmica', + institution_name: 'UFPR', + role: 'Pesquisador', + state: 'PR'}) + .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 Cidade é obrigatório.'); + User.findOne({'email': 'lorem@ipsum.com'}, (err, user) => { + expect(user).to.not.exist; + done(); + }); + }); + }); + + it('should not save an user without state', (done) => { + chai.request(server) + .post('/api/v1/user') + .set('content-type', 'application/x-www-form-urlencoded') + .set('x-apicache-bypass', 'true') + .send({email: 'lorem@ipsum.com', + password: '123mudar', + name: 'Tequila baby', + schooling: 'Doutorado', + cpf: '48303270737', + course: 'Ciência da Computação', + segment: 'Comunidade acadêmica', + institution_name: 'UFPR', + role: 'Pesquisador', + city: 'Cutiriba'}) + .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 Estado é obrigatório.'); + User.findOne({'email': 'lorem@ipsum.com'}, (err, user) => { + expect(user).to.not.exist; + done(); + }); + }); + }); + });