1
1
// Chai docs - https://www.chaijs.com/api/bdd/
2
2
3
- import { after , describe , it } from 'mocha' ;
3
+ import { after , before , describe , it } from 'mocha' ;
4
4
import { expect } from 'chai' ;
5
5
import DatabaseHelper from './helpers/database-helper' ;
6
6
import ExpenseUtilsHelper from './helpers/expense-utils-helper' ;
7
- import api from '../src/server' ;
8
7
import chai from 'chai' ;
9
8
import chaiHttp from 'chai-http' ;
10
9
11
10
chai . use ( chaiHttp ) ;
12
11
13
- const { request } = chai ;
14
-
15
12
const expenseHelper = new DatabaseHelper ( 'expenses' ) ;
16
13
const expenseTypeHelper = new DatabaseHelper ( 'expense-types' ) ;
17
14
const providerHelper = new DatabaseHelper ( 'providers' ) ;
@@ -26,47 +23,50 @@ const ProviderTest = {
26
23
name : 'Caso de teste' ,
27
24
cpf_cnpj : '46542212723' ,
28
25
29
- phone : '14992345621 '
26
+ phone : '+5514999999999 '
30
27
} ;
31
28
32
- let newProvider = { } ;
33
-
34
29
const alterProvider = {
35
30
name : 'Teste de update'
36
31
} ;
37
32
38
33
describe ( 'controllers/Providers' , ( ) => {
39
34
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 ( ) ;
56
48
} ) ;
57
49
} ) ;
58
50
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 ( ) ;
70
70
} ) ;
71
71
} ) ;
72
72
@@ -104,50 +104,56 @@ describe('controllers/Providers', () => {
104
104
} ) ;
105
105
106
106
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 ( ) ;
115
123
} ) ;
116
124
} ) ;
117
125
118
126
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 ( ) ;
139
144
} ) ;
140
145
} ) ;
141
146
142
147
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 ;
151
157
} ) ;
152
158
} ) ;
153
159
} ) ;
0 commit comments