1
+ const { expect } = require ( "chai" ) ;
2
+ const chai = require ( "chai" ) ,
3
+ chaiAsPromised = require ( "chai-as-promised" ) ,
4
+ sinon = require ( 'sinon' ) ,
5
+ request = require ( 'request' ) ;
6
+
7
+ const Constants = require ( "../../../../bin/helpers/constants" ) ,
8
+ logger = require ( "../../../../bin/helpers/logger" ) . winstonLogger ,
9
+ testObjects = require ( "../../support/fixtures/testObjects" ) ,
10
+ utils = require ( '../../../../bin/helpers/utils' ) ,
11
+ getInitialDetails = require ( '../../../../bin/helpers/getInitialDetails' ) . getInitialDetails ;
12
+
13
+ chai . use ( chaiAsPromised ) ;
14
+ logger . transports [ "console.info" ] . silent = true ;
15
+
16
+ describe ( '#getInitialDetails' , ( ) => {
17
+ let args = testObjects . buildInfoSampleArgs ;
18
+ let rawArgs = testObjects . buildInfoSampleRawArgs ;
19
+ let bsConfig = testObjects . sampleBsConfig ;
20
+ let sendUsageReportStub = null , requestStub = null , formatRequestStub = null ;
21
+ let messageType = Constants . messageTypes . ERROR ;
22
+ let errorCode = 'get_initial_details_failed'
23
+
24
+ beforeEach ( ( ) => {
25
+ sendUsageReportStub = sinon . stub ( utils , 'sendUsageReport' ) ;
26
+ requestStub = sinon . stub ( request , "get" ) ;
27
+ formatRequestStub = sinon . stub ( utils , "formatRequest" ) ;
28
+ } ) ;
29
+
30
+ afterEach ( ( ) => {
31
+ sinon . restore ( ) ;
32
+ } ) ;
33
+
34
+ it ( 'sends usage report if error occurred in getInitialDetails call' , ( ) => {
35
+ let error_message = "error occurred" ;
36
+ requestStub . yields ( error_message , null , null ) ;
37
+ formatRequestStub . returns ( { err : error_message , statusCode : null , body : null } )
38
+ sendUsageReportStub . calledOnceWithExactly ( bsConfig , args , error_message , messageType , errorCode , null , rawArgs ) ;
39
+ getInitialDetails ( bsConfig , args , rawArgs ) . then ( ( result ) => {
40
+ expect ( result ) . to . eq ( { } ) ;
41
+ } )
42
+ } ) ;
43
+
44
+ it ( 'resolves with data if getInitialDetails call is successful' , ( ) => {
45
+ let body = { "user_id" : 1234 } ;
46
+ requestStub . yields ( null , { statusCode : 200 } , body ) ;
47
+ formatRequestStub . notCalled ;
48
+ sendUsageReportStub . notCalled ;
49
+ getInitialDetails ( bsConfig , args , rawArgs ) . then ( ( result ) => {
50
+ expect ( result ) . to . eq ( body ) ;
51
+ } )
52
+ } ) ;
53
+
54
+ it ( 'send usage report if error response from getInitialDetails call' , ( ) => {
55
+ let body = { "error" : 'user not found' } ;
56
+ requestStub . yields ( null , { statusCode : 422 } , body ) ;
57
+ formatRequestStub . notCalled ;
58
+ sendUsageReportStub . calledOnceWithExactly ( bsConfig , args , body [ "error" ] , messageType , errorCode , null , rawArgs ) ;
59
+ getInitialDetails ( bsConfig , args , rawArgs ) . then ( ( result ) => {
60
+ expect ( result ) . to . eq ( body ) ;
61
+ } )
62
+ } ) ;
63
+ } ) ;
0 commit comments