1
+ const { expect } = require ( 'chai' ) ;
2
+ const { describe, it } = require ( 'mocha' )
3
+ const sinon = require ( 'sinon' ) ;
4
+ const { Sequelize } = require ( '../../../database/models' ) ;
5
+ const PayableServices = require ( '../../../services/PayableServices' ) ;
6
+ const { dataReponsePayable } = require ( '../../mocks/mockDataTransaction' ) ;
7
+
8
+ describe ( 'Testes unitários para o arquivo PayableServices/Payable.getBalance' , ( ) => {
9
+ afterEach ( ( ) => {
10
+ sinon . restore ( ) ;
11
+ } )
12
+
13
+ it ( 'Deve retornar os recebiveis corretamente' , async ( ) => {
14
+ const query = 'paid' ;
15
+ const email = 'test@test.com' ;
16
+
17
+ sinon . stub ( Sequelize . Model , 'findOne' ) . resolves ( dataReponsePayable ) ;
18
+
19
+ const result = await PayableServices . getBalance ( query , email ) ;
20
+
21
+ expect ( result ) . to . be . an ( 'object' ) ;
22
+ expect ( result ) . to . have . property ( 'balance' ) ;
23
+ } ) ;
24
+
25
+ it ( 'Deve retornar um erro 400 se o status não for informado' , async ( ) => {
26
+ const query = '' ;
27
+ const email = '' ;
28
+
29
+ const result = await PayableServices . getBalance ( query , email ) . catch ( error => error . message ) ;
30
+
31
+ expect ( result ) . to . be . equal ( '400|Status is required' ) ;
32
+ } ) ;
33
+
34
+ it ( 'Deve retornar um erro 401 se o usuário não for encontrado' , async ( ) => {
35
+ const query = 'paid' ;
36
+ const email = '' ;
37
+
38
+ sinon . stub ( Sequelize . Model , 'findOne' ) . resolves ( null ) ;
39
+
40
+ const result = await PayableServices . getBalance ( query , email ) . catch ( error => error . message ) ;
41
+
42
+ expect ( result ) . to . be . equal ( '401|Unauthorized user' ) ;
43
+ } ) ;
44
+ } ) ;
0 commit comments