@@ -17,7 +17,7 @@ describe("buildStop", () => {
1717 let body = testObjects . buildStopSampleBody ;
1818 let bsConfig = testObjects . sampleBsConfig ;
1919
20- describe ( "Handle API deprecated " , ( ) => {
20+ describe ( "Handle API success " , ( ) => {
2121 var sandbox ;
2222
2323 beforeEach ( ( ) => {
@@ -34,296 +34,36 @@ describe("buildStop", () => {
3434 } ) ;
3535 getErrorCodeFromErrStub = sandbox . stub ( ) . returns ( "random-error" ) ;
3636 setDefaultsStub = sandbox . stub ( ) ;
37+ stopBrowserStackBuildStub = sandbox . stub ( ) . returns ( Promise . reject ( true ) ) ;
3738 } ) ;
3839
3940 afterEach ( ( ) => {
4041 sandbox . restore ( ) ;
4142 sinon . restore ( ) ;
4243 } ) ;
4344
44- it ( "message thrown if API deprecated" , ( ) => {
45- let message = Constants . userMessages . API_DEPRECATED ;
46- let messageType = Constants . messageTypes . INFO ;
47- let errorCode = "api_deprecated" ;
48-
49- let requestStub = sandbox
50- . stub ( request , "post" )
51- . yields ( null , { statusCode : 299 } , null ) ;
52-
53- const stop = proxyquire ( '../../../../bin/commands/stop' , {
54- '../helpers/utils' : {
55- validateBstackJson : validateBstackJsonStub ,
56- setUsername : setUsernameStub ,
57- setAccessKey : setAccessKeyStub ,
58- getErrorCodeFromErr : getErrorCodeFromErrStub ,
59- sendUsageReport : sendUsageReportStub ,
60- setUsageReportingFlag : setUsageReportingFlagStub ,
61- setCypressConfigFilename : setCypressConfigFilenameStub ,
62- getUserAgent : getUserAgentStub ,
63- getConfigPath : getConfigPathStub ,
64- setDefaults : setDefaultsStub
65- } ,
66- request : { post : requestStub } ,
67- } ) ;
68-
69- validateBstackJsonStub . returns ( Promise . resolve ( bsConfig ) ) ;
70-
71- return stop ( args )
72- . then ( function ( _bsConfig ) {
73- sinon . assert . calledOnce ( requestStub ) ;
74- sinon . assert . calledOnce ( getUserAgentStub ) ;
75- sinon . assert . calledOnceWithExactly ( sendUsageReportStub , bsConfig , args , message , messageType , errorCode ) ;
76- } )
77- . catch ( ( error ) => {
78- chai . assert . isNotOk ( error , "Promise error" ) ;
79- } ) ;
80- } ) ;
81-
82- it ( "message thrown if build returned" , ( ) => {
83- let message = body . message ;
84- let messageType = Constants . messageTypes . INFO ;
85- let errorCode = "api_deprecated" ;
86-
87- let requestStub = sandbox
88- . stub ( request , "post" )
89- . yields ( null , { statusCode : 299 } , JSON . stringify ( body ) ) ;
90-
91- const stop = proxyquire ( '../../../../bin/commands/stop' , {
92- '../helpers/utils' : {
93- validateBstackJson : validateBstackJsonStub ,
94- getErrorCodeFromErr : getErrorCodeFromErrStub ,
95- setUsername : setUsernameStub ,
96- setAccessKey : setAccessKeyStub ,
97- sendUsageReport : sendUsageReportStub ,
98- setUsageReportingFlag : setUsageReportingFlagStub ,
99- setCypressConfigFilename : setCypressConfigFilenameStub ,
100- getUserAgent : getUserAgentStub ,
101- getConfigPath : getConfigPathStub ,
102- setDefaults : setDefaultsStub
103- } ,
104- request : { post : requestStub } ,
105- } ) ;
106-
107- validateBstackJsonStub . returns ( Promise . resolve ( bsConfig ) ) ;
108-
109- return stop ( args )
110- . then ( function ( _bsConfig ) {
111- sinon . assert . calledOnce ( requestStub ) ;
112- sinon . assert . calledOnce ( getUserAgentStub ) ;
113- sinon . assert . calledOnceWithExactly ( sendUsageReportStub , bsConfig , args , message , messageType , errorCode ) ;
114- } )
115- . catch ( ( error ) => {
116- chai . assert . isNotOk ( error , "Promise error" ) ;
117- } ) ;
118- } ) ;
119- } ) ;
120-
121- describe ( "Handle statusCode != 200" , ( ) => {
122- beforeEach ( ( ) => {
123- sandbox = sinon . createSandbox ( ) ;
124- setUsernameStub = sandbox . stub ( ) ;
125- setAccessKeyStub = sandbox . stub ( ) ;
126- validateBstackJsonStub = sandbox . stub ( ) ;
127- getConfigPathStub = sandbox . stub ( ) ;
128- setUsageReportingFlagStub = sandbox . stub ( ) . returns ( undefined ) ;
129- setCypressConfigFilenameStub = sandbox . stub ( ) . returns ( undefined ) ;
130- getUserAgentStub = sandbox . stub ( ) . returns ( "random user-agent" ) ;
131- sendUsageReportStub = sandbox . stub ( ) . callsFake ( function ( ) {
132- return "end" ;
133- } ) ;
134- getErrorCodeFromErrStub = sandbox . stub ( ) . returns ( "random-error" ) ;
135- setDefaultsStub = sandbox . stub ( ) ;
136- } ) ;
137-
138- afterEach ( ( ) => {
139- sandbox . restore ( ) ;
140- sinon . restore ( ) ;
141- } ) ;
142-
143- it ( "message thrown if statusCode != 200" , ( ) => {
144- let message = Constants . userMessages . BUILD_STOP_FAILED ;
145- let messageType = Constants . messageTypes . ERROR ;
146- let errorCode = "api_failed_build_stop" ;
147-
148- let requestStub = sinon
149- . stub ( request , "post" )
150- . yields ( null , { statusCode : 400 } , null ) ;
151-
152- const stop = proxyquire ( '../../../../bin/commands/stop' , {
153- '../helpers/utils' : {
154- validateBstackJson : validateBstackJsonStub ,
155- getErrorCodeFromErr : getErrorCodeFromErrStub ,
156- sendUsageReport : sendUsageReportStub ,
157- setUsername : setUsernameStub ,
158- setAccessKey : setAccessKeyStub ,
159- setUsageReportingFlag : setUsageReportingFlagStub ,
160- setCypressConfigFilename : setCypressConfigFilenameStub ,
161- getUserAgent : getUserAgentStub ,
162- getConfigPath : getConfigPathStub ,
163- setDefaults : setDefaultsStub
164- } ,
165- request : { post : requestStub } ,
166- } ) ;
167-
168- validateBstackJsonStub . returns ( Promise . resolve ( bsConfig ) ) ;
169-
170- return stop ( args )
171- . then ( function ( _bsConfig ) {
172- sinon . assert . calledOnce ( requestStub ) ;
173- sinon . assert . calledOnce ( getUserAgentStub ) ;
174- sinon . assert . calledOnceWithExactly ( sendUsageReportStub , bsConfig , args , message , messageType , errorCode ) ;
175- } )
176- . catch ( ( error ) => {
177- chai . assert . isNotOk ( error , "Promise error" ) ;
178- } ) ;
179- } ) ;
180-
181- it ( "message thrown if statusCode != 200 and user unauthorized" , ( ) => {
182- let body_with_message = {
183- ...body ,
184- message : "Unauthorized" ,
185- } ;
186-
187- let message = `${
188- Constants . userMessages . BUILD_STOP_FAILED
189- } with error: \n${ JSON . stringify ( body_with_message , null , 2 ) } `;
190- let messageType = Constants . messageTypes . ERROR ;
191- let errorCode = "api_auth_failed" ;
192-
193- let requestStub = sinon
194- . stub ( request , "post" )
195- . yields ( null , { statusCode : 401 } , JSON . stringify ( body_with_message ) ) ;
196-
45+ it ( "should call stopBrowserStackBuild method" , ( ) => {
19746 const stop = proxyquire ( '../../../../bin/commands/stop' , {
19847 '../helpers/utils' : {
19948 validateBstackJson : validateBstackJsonStub ,
200- getErrorCodeFromErr : getErrorCodeFromErrStub ,
201- sendUsageReport : sendUsageReportStub ,
20249 setUsername : setUsernameStub ,
20350 setAccessKey : setAccessKeyStub ,
204- setUsageReportingFlag : setUsageReportingFlagStub ,
205- setCypressConfigFilename : setCypressConfigFilenameStub ,
206- getUserAgent : getUserAgentStub ,
207- getConfigPath : getConfigPathStub ,
208- setDefaults : setDefaultsStub
209- } ,
210- request : { post : requestStub } ,
211- } ) ;
212-
213- validateBstackJsonStub . returns ( Promise . resolve ( bsConfig ) ) ;
214-
215- return stop ( args )
216- . then ( function ( _bsConfig ) {
217- sinon . assert . calledOnce ( requestStub ) ;
218- sinon . assert . calledOnce ( getUserAgentStub ) ;
219- sinon . assert . calledOnceWithExactly ( sendUsageReportStub , bsConfig , args , message , messageType , errorCode ) ;
220- } )
221- . catch ( ( error ) => {
222- chai . assert . isNotOk ( error , "Promise error" ) ;
223- } ) ;
224- } ) ;
225-
226- it ( "message thrown if statusCode != 200 and build is present" , ( ) => {
227- let message = `${
228- Constants . userMessages . BUILD_STOP_FAILED
229- } with error: \n${ JSON . stringify ( body , null , 2 ) } `;
230- let messageType = Constants . messageTypes . ERROR ;
231- let errorCode = "api_failed_build_stop" ;
232-
233- let requestStub = sinon
234- . stub ( request , "post" )
235- . yields ( null , { statusCode : 402 } , JSON . stringify ( body ) ) ;
236-
237- const stop = proxyquire ( '../../../../bin/commands/stop' , {
238- '../helpers/utils' : {
239- validateBstackJson : validateBstackJsonStub ,
240- getErrorCodeFromErr : getErrorCodeFromErrStub ,
241- sendUsageReport : sendUsageReportStub ,
242- setUsername : setUsernameStub ,
243- setAccessKey : setAccessKeyStub ,
244- setUsageReportingFlag : setUsageReportingFlagStub ,
245- setCypressConfigFilename : setCypressConfigFilenameStub ,
246- getUserAgent : getUserAgentStub ,
247- getConfigPath : getConfigPathStub ,
248- setDefaults : setDefaultsStub
249- } ,
250- request : { post : requestStub } ,
251- } ) ;
252-
253- validateBstackJsonStub . returns ( Promise . resolve ( bsConfig ) ) ;
254-
255- return stop ( args )
256- . then ( function ( _bsConfig ) {
257- sinon . assert . calledOnce ( requestStub ) ;
258- sinon . assert . calledOnce ( getUserAgentStub ) ;
259- sinon . assert . calledOnceWithExactly ( sendUsageReportStub , bsConfig , args , message , messageType , errorCode ) ;
260- } )
261- . catch ( ( error ) => {
262- chai . assert . isNotOk ( error , "Promise error" ) ;
263- } ) ;
264- } ) ;
265- } ) ;
266-
267- describe ( "Handle API success" , ( ) => {
268- var sandbox ;
269-
270- beforeEach ( ( ) => {
271- sandbox = sinon . createSandbox ( ) ;
272- setUsernameStub = sandbox . stub ( ) ;
273- setAccessKeyStub = sandbox . stub ( ) ;
274- validateBstackJsonStub = sandbox . stub ( ) ;
275- getConfigPathStub = sandbox . stub ( ) ;
276- setUsageReportingFlagStub = sandbox . stub ( ) . returns ( undefined ) ;
277- setCypressConfigFilenameStub = sandbox . stub ( ) . returns ( undefined ) ;
278- getUserAgentStub = sandbox . stub ( ) . returns ( "random user-agent" ) ;
279- sendUsageReportStub = sandbox . stub ( ) . callsFake ( function ( ) {
280- return "end" ;
281- } ) ;
282- getErrorCodeFromErrStub = sandbox . stub ( ) . returns ( "random-error" ) ;
283- setDefaultsStub = sandbox . stub ( ) ;
284- } ) ;
285-
286- afterEach ( ( ) => {
287- sandbox . restore ( ) ;
288- sinon . restore ( ) ;
289- } ) ;
290-
291- it ( "message thrown if API success" , ( ) => {
292- let message = `${ JSON . stringify ( body , null , 2 ) } ` ;
293- let messageType = Constants . messageTypes . SUCCESS ;
294- let errorCode = null ;
295-
296- let requestStub = sandbox
297- . stub ( request , "post" )
298- . yields ( null , { statusCode : 200 } , JSON . stringify ( body ) ) ;
299-
300- const stop = proxyquire ( '../../../../bin/commands/stop' , {
301- '../helpers/utils' : {
302- validateBstackJson : validateBstackJsonStub ,
30351 getErrorCodeFromErr : getErrorCodeFromErrStub ,
30452 sendUsageReport : sendUsageReportStub ,
305- setUsername : setUsernameStub ,
306- setAccessKey : setAccessKeyStub ,
30753 setUsageReportingFlag : setUsageReportingFlagStub ,
30854 setCypressConfigFilename : setCypressConfigFilenameStub ,
309- getUserAgent : getUserAgentStub ,
31055 getConfigPath : getConfigPathStub ,
311- setDefaults : setDefaultsStub
312- } ,
313- request : { post : requestStub } ,
56+ setDefaults : setDefaultsStub ,
57+ stopBrowserStackBuild : stopBrowserStackBuildStub
58+ }
31459 } ) ;
31560
31661 validateBstackJsonStub . returns ( Promise . resolve ( bsConfig ) ) ;
31762
31863 return stop ( args )
31964 . then ( function ( _bsConfig ) {
320- sinon . assert . calledOnce ( requestStub ) ;
321- sinon . assert . calledOnce ( getUserAgentStub ) ;
322- sinon . assert . calledOnceWithExactly ( sendUsageReportStub , bsConfig , args , message , messageType , errorCode ) ;
65+ sinon . assert . calledOnce ( stopBrowserStackBuildStub ) ;
32366 } )
324- . catch ( ( error ) => {
325- chai . assert . isNotOk ( error , "Promise error" ) ;
326- } ) ;
32767 } ) ;
32868 } ) ;
32969
0 commit comments