Skip to content

Commit 3ecae43

Browse files
Criação de componentes Table e Loader e Listagem na tela Membros (admissoesevida#68)
* Atualizados scripts de start e destroy e dockerfiles (admissoesevida#66) * Configurado Proxy para API * Criação de componentes Table e Loader e Listagem na tela Membros (admissoesevida#55) * Atualizados testes do API para novo prefixo /api (admissoesevida#55) * Inclusão de Font Open Sans para melhor Legibilidade (admissoesevida#55) * Ignorado setupProxy script no Coverage (admissoesevida#55) * Reduzido Threshold do Coverage * Adicionado campo CPF na listagem de membros (admissoesevida#55)
1 parent 8ad144e commit 3ecae43

24 files changed

+627
-104
lines changed

api/Dockerfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ EXPOSE 5000
66

77
ADD . .
88

9-
COPY ./tmp/.env ./.env
9+
RUN rm .env
10+
11+
COPY ./tmp/.env .env
1012

1113
RUN npm install
1214

api/src/server.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,13 @@ app.use(helmet());
3636
app.use(bodyParser.urlencoded({ extended: true }));
3737
app.use(bodyParser.json());
3838

39-
app.use('/auth', AuthController);
40-
app.use('/expense-types', AuthMiddleware, ExpenseTypesController);
41-
app.use('/expenses', AuthMiddleware, ExpensesController);
42-
app.use('/income-types', AuthMiddleware, IncomeTypesController);
43-
app.use('/incomes', AuthMiddleware, IncomeController);
44-
app.use('/members', AuthMiddleware, MemberController);
45-
app.use('/providers', AuthMiddleware, ProviderController);
39+
app.use('/api/auth', AuthController);
40+
app.use('/api/expense-types', AuthMiddleware, ExpenseTypesController);
41+
app.use('/api/expenses', AuthMiddleware, ExpensesController);
42+
app.use('/api/income-types', AuthMiddleware, IncomeTypesController);
43+
app.use('/api/incomes', AuthMiddleware, IncomeController);
44+
app.use('/api/members', AuthMiddleware, MemberController);
45+
app.use('/api/providers', AuthMiddleware, ProviderController);
4646

4747
app.get('/', AuthMiddleware, (req, res) => {
4848
return res

api/test/helpers/database-helper.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import api from '../../src/server';
44
export default class DatabaseHelper {
55
constructor(route) {
66
this.lastCreatedId = [];
7-
this.route = route;
7+
this.route = `api/${route}`;
88
}
99

1010
getLastCreatedId() {

api/test/member.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ describe('controllers/members', () => {
4444
name: 'Novo Item'
4545
});
4646
});
47-
it('Deve retornar o nome do item atualizado', async () => {
47+
it('Deve retornar o item atualizado', async () => {
4848
const updateItem = {
4949
name: 'Novo nome'
5050
};

api/test/provider.spec.js

Lines changed: 76 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
11
// Chai docs - https://www.chaijs.com/api/bdd/
22

3-
import { after, describe, it } from 'mocha';
3+
import { after, before, describe, it } from 'mocha';
44
import { expect } from 'chai';
55
import DatabaseHelper from './helpers/database-helper';
66
import ExpenseUtilsHelper from './helpers/expense-utils-helper';
7-
import api from '../src/server';
87
import chai from 'chai';
98
import chaiHttp from 'chai-http';
109

1110
chai.use(chaiHttp);
1211

13-
const { request } = chai;
14-
1512
const expenseHelper = new DatabaseHelper('expenses');
1613
const expenseTypeHelper = new DatabaseHelper('expense-types');
1714
const providerHelper = new DatabaseHelper('providers');
@@ -26,47 +23,50 @@ const ProviderTest = {
2623
name: 'Caso de teste',
2724
cpf_cnpj: '46542212723',
2825
29-
phone: '14992345621'
26+
phone: '+5514999999999'
3027
};
3128

32-
let newProvider = {};
33-
3429
const alterProvider = {
3530
name: 'Teste de update'
3631
};
3732

3833
describe('controllers/Providers', () => {
3934
describe('POST /providers', () => {
40-
it('Deve retornar o fornecedor registrado', done => {
41-
request(api)
42-
.post(`/providers`)
43-
.send(ProviderTest)
44-
.end((err, res) => {
45-
expect(res).to.have.status(200);
46-
expect(res.body).to.be.an('object');
47-
48-
newProvider = {
49-
...res.body,
50-
...ProviderTest
51-
};
52-
53-
expect(res.body).to.eql(newProvider);
54-
done();
55-
});
35+
it('Deve retornar o fornecedor registrado', async () => {
36+
const res = await providerHelper.maybeCreate(ProviderTest);
37+
38+
expect(res).to.have.status(200);
39+
expect(res.body).to.be.an('object');
40+
expect(res.body).to.have.property('name', ProviderTest.name);
41+
expect(res.body).to.have.property('cpf_cnpj', ProviderTest.cpf_cnpj);
42+
expect(res.body).to.have.property('email', ProviderTest.email);
43+
expect(res.body).to.have.property('phone', ProviderTest.phone);
44+
});
45+
46+
after(async () => {
47+
await providerHelper.maybeDeleteAll();
5648
});
5749
});
5850

59-
describe('PUT /providers/:id', () => {
60-
it('Deve retornar 1 para o update realizado', done => {
61-
request(api)
62-
.put(`/providers/${newProvider.id}`)
63-
.send(alterProvider)
64-
.end((err, res) => {
65-
expect(res).to.have.status(200);
66-
expect(res.body).to.be.an('array');
67-
expect(res.body).to.eql([1]);
68-
done();
69-
});
51+
describe('PUT /providers/:id', async () => {
52+
before(async () => {
53+
await providerHelper.maybeCreate(ProviderTest);
54+
});
55+
it('Deve retornar o item atualizado', async () => {
56+
await providerHelper.maybeUpdate(alterProvider);
57+
58+
const res = await providerHelper.maybeGetItem();
59+
60+
expect(res).to.have.status(200);
61+
expect(res.body).to.be.an('object');
62+
expect(res.body).to.have.property('name', alterProvider.name);
63+
expect(res.body).to.have.property('cpf_cnpj', ProviderTest.cpf_cnpj);
64+
expect(res.body).to.have.property('email', ProviderTest.email);
65+
expect(res.body).to.have.property('phone', ProviderTest.phone);
66+
});
67+
68+
after(async () => {
69+
await providerHelper.maybeDeleteAll();
7070
});
7171
});
7272

@@ -104,50 +104,56 @@ describe('controllers/Providers', () => {
104104
});
105105

106106
describe('GET /providers', () => {
107-
it('Deve retornar os fornecedores registrados', done => {
108-
request(api)
109-
.get(`/providers`)
110-
.end((err, res) => {
111-
expect(res).to.have.status(200);
112-
expect(res.body).to.be.an('array');
113-
done();
114-
});
107+
before(async () => {
108+
await providerHelper.maybeCreate(ProviderTest);
109+
await providerHelper.maybeCreate(ProviderTest);
110+
await providerHelper.maybeCreate(ProviderTest);
111+
});
112+
it('Deve retornar os fornecedores registrados', async () => {
113+
const res = await providerHelper.maybeGetAll();
114+
115+
expect(res).to.have.status(200);
116+
expect(res.body)
117+
.to.be.an('array')
118+
.that.has.length.greaterThan(2);
119+
});
120+
121+
after(async () => {
122+
await providerHelper.maybeDeleteAll();
115123
});
116124
});
117125

118126
describe('GET /providers/:id', () => {
119-
it('Deve retornar apenas o fornecedor do id que foi criado', done => {
120-
request(api)
121-
.get(`/providers/${newProvider.id}`)
122-
.end((err, res) => {
123-
expect(res).to.have.status(200);
124-
expect(res.body).to.be.an('object');
125-
126-
const newBody = res.body;
127-
delete newBody.createdAt;
128-
delete newBody.updatedAt;
129-
130-
const equalProvider = newProvider;
131-
delete equalProvider.createdAt;
132-
delete equalProvider.updatedAt;
133-
expect(newBody).to.eql({
134-
...equalProvider,
135-
...alterProvider
136-
});
137-
done();
138-
});
127+
it('Deve retornar um item específico', async () => {
128+
await providerHelper.maybeCreate(ProviderTest);
129+
await providerHelper.maybeCreate(ProviderTest);
130+
const { body: newItem } = await providerHelper.maybeCreate(ProviderTest);
131+
132+
const res = await providerHelper.maybeGetItem(newItem.id);
133+
134+
expect(res).to.have.status(200);
135+
expect(res.body).to.be.an('object');
136+
expect(res.body).to.have.property('name', ProviderTest.name);
137+
expect(res.body).to.have.property('cpf_cnpj', ProviderTest.cpf_cnpj);
138+
expect(res.body).to.have.property('email', ProviderTest.email);
139+
expect(res.body).to.have.property('phone', ProviderTest.phone);
140+
});
141+
142+
after(async () => {
143+
await providerHelper.maybeDeleteAll();
139144
});
140145
});
141146

142147
describe('DELETE /providers/:id', () => {
143-
it('Deve retornar 1 para quando o registro é deletado', done => {
144-
request(api)
145-
.delete(`/providers/${newProvider.id}`)
146-
.end((err, res) => {
147-
expect(res).to.have.status(200);
148-
expect(res.body).to.equal(1);
149-
done();
150-
});
148+
it('Deve deletar um item específico', async () => {
149+
const { body: newItem } = await providerHelper.maybeCreate(ProviderTest);
150+
151+
await providerHelper.maybeDeleteItem(newItem.id);
152+
153+
const res = await providerHelper.maybeGetItem(newItem.id);
154+
155+
expect(res).to.have.status(200);
156+
expect(res.body).to.be.null;
151157
});
152158
});
153159
});

0 commit comments

Comments
 (0)