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