Skip to content

Commit 817faef

Browse files
committed
Carrega models do sequelize nos testes
1 parent dd3d1c2 commit 817faef

File tree

5 files changed

+297
-278
lines changed

5 files changed

+297
-278
lines changed

.travis.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@ services:
88
env:
99
global:
1010
- NODE_ENV: test
11+
- TRAVIS: true
1112
addons:
1213
postgresql: "9.3"
1314
before_install:
14-
- psql -c 'create database api_test; CREATE TABLE "Users" (id serial NOT NULL, name character varying(255) NOT NULL, email character varying(255) NOT NULL, password character varying(255) NOT NULL, "createdAt" timestamp with time zone NOT NULL, "updatedAt" timestamp with time zone NOT NULL, CONSTRAINT "Users_pkey" PRIMARY KEY (id));' -U postgres
15+
- psql -c 'create database api_test;' -U postgres
1516
- npm install
1617
script:
1718
- npm run dist-test

build/config/env/test.env.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
module.exports = {
22
env: "test",
3-
db: "api_test",
3+
db: "api",
44
dialect: "postgres",
55
username: "postgres",
66
password: "pgroot",
77
host: "localhost",
88
server_port: 3000,
99
pg_port: 5432,
10-
db_url: "postgres://postgres:pgroot@localhost:5432/api_test",
10+
db_url: "postgres://postgres:pgroot@localhost:5432/api",
1111
secret: "secret",
1212
};

build/modules/User/integration.test.js

+142-133
Original file line numberDiff line numberDiff line change
@@ -2,154 +2,163 @@
22
var helpers_1 = require("../../config/tests/config/helpers");
33
var jwt = require("jwt-simple");
44
var HTTPStatus = require("http-status");
5-
describe('## User Tests', function () {
6-
'use strict';
7-
var config = require('../../config/env/config')();
8-
var model = require('../../models');
9-
var id;
10-
var token;
11-
var userDefault = {
12-
id: 1,
13-
name: 'Test User',
14-
email: 'test@mail.com',
15-
password: 'testPassword'
16-
};
17-
beforeEach(function (done) {
18-
model
19-
.User
20-
.destroy({
21-
where: {}
22-
})
23-
.then(function () { return model.User.create({
24-
id: 50,
25-
name: 'Raphael',
26-
email: 'raphael@email.com',
27-
password: '123456'
28-
}); })
29-
.then(function (user) {
5+
var models = require('../../models');
6+
if (process.env.TRAVIS == 'true') {
7+
models.sequelize.sync().then(function () {
8+
test();
9+
});
10+
}
11+
test();
12+
function test() {
13+
describe('## User Tests', function () {
14+
'use strict';
15+
var config = require('../../config/env/config')();
16+
var model = require('../../models');
17+
var id;
18+
var token;
19+
var userDefault = {
20+
id: 1,
21+
name: 'Test User',
22+
email: 'test@mail.com',
23+
password: 'testPassword'
24+
};
25+
beforeEach(function (done) {
3026
model
3127
.User
32-
.create(userDefault)
33-
.then(function () {
34-
token = jwt.encode({ id: user.id }, config.secret);
35-
done();
28+
.destroy({
29+
where: {}
30+
})
31+
.then(function () { return model.User.create({
32+
id: 50,
33+
name: 'Raphael',
34+
email: 'raphael@email.com',
35+
password: '123456'
36+
}); })
37+
.then(function (user) {
38+
model
39+
.User
40+
.create(userDefault)
41+
.then(function () {
42+
token = jwt.encode({ id: user.id }, config.secret);
43+
done();
44+
});
3645
});
3746
});
38-
});
39-
describe('GET /api/users/all', function () {
40-
it('Should return a array of Users', function (done) {
41-
helpers_1.request(helpers_1.app)
42-
.get('/api/users/all')
43-
.set('Content-Type', 'application/json')
44-
.set('Authorization', "JWT " + token)
45-
.end(function (error, res) {
46-
helpers_1.expect(res.status).to.equal(HTTPStatus.OK);
47-
helpers_1.expect(res.body.payload).to.be.an('array');
48-
helpers_1.expect(res.body.payload[0].name).to.be.equal('Raphael');
49-
helpers_1.expect(res.body.payload[0].email).to.be.equal('raphael@email.com');
50-
done(error);
47+
describe('GET /api/users/all', function () {
48+
it('Should return a array of Users', function (done) {
49+
helpers_1.request(helpers_1.app)
50+
.get('/api/users/all')
51+
.set('Content-Type', 'application/json')
52+
.set('Authorization', "JWT " + token)
53+
.end(function (error, res) {
54+
helpers_1.expect(res.status).to.equal(HTTPStatus.OK);
55+
helpers_1.expect(res.body.payload).to.be.an('array');
56+
helpers_1.expect(res.body.payload[0].name).to.be.equal('Raphael');
57+
helpers_1.expect(res.body.payload[0].email).to.be.equal('raphael@email.com');
58+
done(error);
59+
});
5160
});
5261
});
53-
});
54-
describe('POST /token', function () {
55-
it('Should receive a JWT', function (done) {
56-
var credentials = {
57-
email: 'raphael@email.com',
58-
password: '123456'
59-
};
60-
helpers_1.request(helpers_1.app)
61-
.post('/token')
62-
.send(credentials)
63-
.end(function (error, res) {
64-
helpers_1.expect(res.status).to.equal(HTTPStatus.OK);
65-
helpers_1.expect(res.body.token).to.equal("" + token);
66-
done(error);
62+
describe('POST /token', function () {
63+
it('Should receive a JWT', function (done) {
64+
var credentials = {
65+
email: 'raphael@email.com',
66+
password: '123456'
67+
};
68+
helpers_1.request(helpers_1.app)
69+
.post('/token')
70+
.send(credentials)
71+
.end(function (error, res) {
72+
helpers_1.expect(res.status).to.equal(HTTPStatus.OK);
73+
helpers_1.expect(res.body.token).to.equal("" + token);
74+
done(error);
75+
});
6776
});
68-
});
69-
it('Should not receive a JWT', function (done) {
70-
var credentials = {
71-
email: 'email@email.com',
72-
password: '123321'
73-
};
74-
helpers_1.request(helpers_1.app)
75-
.post('/token')
76-
.send(credentials)
77-
.end(function (error, res) {
78-
helpers_1.expect(res.status).to.equal(HTTPStatus.UNAUTHORIZED);
79-
helpers_1.expect(res.body).to.empty;
80-
done(error);
77+
it('Should not receive a JWT', function (done) {
78+
var credentials = {
79+
email: 'email@email.com',
80+
password: '123321'
81+
};
82+
helpers_1.request(helpers_1.app)
83+
.post('/token')
84+
.send(credentials)
85+
.end(function (error, res) {
86+
helpers_1.expect(res.status).to.equal(HTTPStatus.UNAUTHORIZED);
87+
helpers_1.expect(res.body).to.empty;
88+
done(error);
89+
});
8190
});
8291
});
83-
});
84-
describe('POST /api/users/create', function () {
85-
it('Should create a new user', function (done) {
86-
var user = {
87-
id: 2,
88-
name: 'User Created',
89-
email: 'newUser@mail.com',
90-
password: 'newUserPwd',
91-
};
92-
helpers_1.request(helpers_1.app)
93-
.post('/api/users/create')
94-
.set('Authorization', "JWT " + token)
95-
.send(user)
96-
.end(function (error, res) {
97-
helpers_1.expect(res.body.payload.id).to.eql(user.id);
98-
helpers_1.expect(res.body.payload.name).to.eql(user.name);
99-
helpers_1.expect(res.body.payload.email).to.eql(user.email);
100-
done(error);
92+
describe('POST /api/users/create', function () {
93+
it('Should create a new user', function (done) {
94+
var user = {
95+
id: 2,
96+
name: 'User Created',
97+
email: 'newUser@mail.com',
98+
password: 'newUserPwd',
99+
};
100+
helpers_1.request(helpers_1.app)
101+
.post('/api/users/create')
102+
.set('Authorization', "JWT " + token)
103+
.send(user)
104+
.end(function (error, res) {
105+
helpers_1.expect(res.body.payload.id).to.eql(user.id);
106+
helpers_1.expect(res.body.payload.name).to.eql(user.name);
107+
helpers_1.expect(res.body.payload.email).to.eql(user.email);
108+
done(error);
109+
});
101110
});
102111
});
103-
});
104-
describe('GET /api/users/:id', function () {
105-
it('Should return an User by its ID', function (done) {
106-
helpers_1.request(helpers_1.app)
107-
.get("/api/users/" + userDefault.id)
108-
.set('Authorization', "JWT " + token)
109-
.end(function (error, res) {
110-
helpers_1.expect(res.status).to.equal(HTTPStatus.OK);
111-
helpers_1.expect(res.body.payload.id).to.equal(userDefault.id);
112-
helpers_1.expect(res.body.payload).to.have.all.keys([
113-
'id',
114-
'name',
115-
'email',
116-
'password'
117-
]);
118-
id = res.body.payload.id;
119-
done(error);
112+
describe('GET /api/users/:id', function () {
113+
it('Should return an User by its ID', function (done) {
114+
helpers_1.request(helpers_1.app)
115+
.get("/api/users/" + userDefault.id)
116+
.set('Authorization', "JWT " + token)
117+
.end(function (error, res) {
118+
helpers_1.expect(res.status).to.equal(HTTPStatus.OK);
119+
helpers_1.expect(res.body.payload.id).to.equal(userDefault.id);
120+
helpers_1.expect(res.body.payload).to.have.all.keys([
121+
'id',
122+
'name',
123+
'email',
124+
'password'
125+
]);
126+
id = res.body.payload.id;
127+
done(error);
128+
});
120129
});
121130
});
122-
});
123-
describe('PUT /api/users/:id/update', function () {
124-
it('Should update an User', function (done) {
125-
var updatedUser = {
126-
name: 'UpdatedName',
127-
email: 'update@updated.com'
128-
};
129-
helpers_1.request(helpers_1.app)
130-
.put("/api/users/" + userDefault.id + "/update")
131-
.set('Authorization', "JWT " + token)
132-
.send(updatedUser)
133-
.end(function (error, res) {
134-
helpers_1.expect(res.status).to.equal(HTTPStatus.OK);
135-
helpers_1.expect(res.body.payload[0]).to.eql(1);
136-
helpers_1.expect(res.body.payload[1][0].id).to.eql(userDefault.id);
137-
helpers_1.expect(res.body.payload[1][0].name).to.eql(updatedUser.name);
138-
helpers_1.expect(res.body.payload[1][0].email).to.eql(updatedUser.email);
139-
done(error);
131+
describe('PUT /api/users/:id/update', function () {
132+
it('Should update an User', function (done) {
133+
var updatedUser = {
134+
name: 'UpdatedName',
135+
email: 'update@updated.com'
136+
};
137+
helpers_1.request(helpers_1.app)
138+
.put("/api/users/" + userDefault.id + "/update")
139+
.set('Authorization', "JWT " + token)
140+
.send(updatedUser)
141+
.end(function (error, res) {
142+
helpers_1.expect(res.status).to.equal(HTTPStatus.OK);
143+
helpers_1.expect(res.body.payload[0]).to.eql(1);
144+
helpers_1.expect(res.body.payload[1][0].id).to.eql(userDefault.id);
145+
helpers_1.expect(res.body.payload[1][0].name).to.eql(updatedUser.name);
146+
helpers_1.expect(res.body.payload[1][0].email).to.eql(updatedUser.email);
147+
done(error);
148+
});
140149
});
141150
});
142-
});
143-
describe('DELETE /api/users/:id/destroy', function () {
144-
it('Should delete an User', function (done) {
145-
helpers_1.request(helpers_1.app)
146-
.del("/api/users/" + userDefault.id + "/destroy")
147-
.set('Authorization', "JWT " + token)
148-
.end(function (error, res) {
149-
helpers_1.expect(res.status).to.equal(HTTPStatus.OK);
150-
helpers_1.expect(res.body.payload).to.eql(1);
151-
done(error);
151+
describe('DELETE /api/users/:id/destroy', function () {
152+
it('Should delete an User', function (done) {
153+
helpers_1.request(helpers_1.app)
154+
.del("/api/users/" + userDefault.id + "/destroy")
155+
.set('Authorization', "JWT " + token)
156+
.end(function (error, res) {
157+
helpers_1.expect(res.status).to.equal(HTTPStatus.OK);
158+
helpers_1.expect(res.body.payload).to.eql(1);
159+
done(error);
160+
});
152161
});
153162
});
154163
});
155-
});
164+
}

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"scripts": {
77
"integration-test": "NODE_ENV=test mocha --opts server/config/tests/config/mocha.opts server/**/integration.test.ts",
88
"unit-test": "NODE_ENV=test mocha --opts server/config/tests/config/mocha.opts server/**/unit.test.ts",
9-
"dist-test": "NODE_ENV=test mocha --require build/config/tests/config/helpers.js --reporter spec --compilers js:babel-core/register build/**/**/integration.*.js",
9+
"dist-test": "TRAVIS=true NODE_ENV=test mocha --require build/config/tests/config/helpers.js --reporter spec --compilers js:babel-core/register build/**/**/integration.*.js",
1010
"start-builded-app": "NODE_ENV=test node ./build/server.js",
1111
"start": "./node_modules/.bin/ts-node ./server/server.ts",
1212
"watch": "NODE_ENV=development ./node_modules/.bin/nodemon -w . --ext .ts --exec npm run start",

0 commit comments

Comments
 (0)