@@ -28,9 +28,9 @@ describe('BrowserstackTransport', function () {
28
28
port : 443
29
29
}
30
30
} ) ;
31
-
31
+
32
32
await client . transport . createSession ( { argv : undefined , moduleKey : '' } ) ;
33
-
33
+
34
34
} , / B r o w s e r S t a c k a c c e s s k e y i s n o t s e t \. V e r i f y t h a t " b r o w s e r s t a c k \. k e y " c a p a b i l i t y i s s e t c o r r e c t l y o r s e t B R O W S E R S T A C K _ K E Y e n v i r o n m e n t v a r i a b l e \( \. e n v f i l e s a r e s u p p o r t e d \) \. / ) ;
35
35
36
36
assert . rejects ( async function ( ) {
@@ -75,9 +75,9 @@ describe('BrowserstackTransport', function () {
75
75
}
76
76
} ;
77
77
} ) ;
78
-
78
+
79
79
nock ( 'https://api.browserstack.com' )
80
- . get ( '/automate/builds.json?status=running' )
80
+ . get ( '/automate/builds.json?status=running&limit=20&offset=0 ' )
81
81
. reply ( 200 , [
82
82
{
83
83
automation_build : {
@@ -104,7 +104,7 @@ describe('BrowserstackTransport', function () {
104
104
delete process . env [ 'USER' ] ;
105
105
delete process . env [ 'KEY' ] ;
106
106
} ) ;
107
-
107
+
108
108
it ( 'test create Transport for Browserstack - Automate' , async function ( ) {
109
109
const client = NightwatchClient . client ( {
110
110
webdriver : {
@@ -129,7 +129,7 @@ describe('BrowserstackTransport', function () {
129
129
}
130
130
} ;
131
131
} ) ;
132
-
132
+
133
133
nock ( 'https://api.browserstack.com' )
134
134
. get ( '/automate/builds.json?status=running&limit=20&offset=0' )
135
135
. reply ( 200 , [
@@ -161,7 +161,7 @@ describe('BrowserstackTransport', function () {
161
161
assert . strictEqual ( transport . username , 'test-access-user' ) ;
162
162
assert . strictEqual ( transport . accessKey , 'test-access-key' ) ;
163
163
assert . strictEqual ( client . settings . webdriver . start_process , false ) ;
164
-
164
+
165
165
nock ( 'https://api.browserstack.com' )
166
166
. get ( '/automate/sessions/1234567.json' )
167
167
. reply ( 200 , {
@@ -206,7 +206,7 @@ describe('BrowserstackTransport', function () {
206
206
}
207
207
} ;
208
208
} ) ;
209
-
209
+
210
210
nock ( 'https://api.browserstack.com' )
211
211
. get ( '/automate/builds.json?status=running&limit=20&offset=0' )
212
212
. reply ( 200 , [
@@ -240,12 +240,12 @@ describe('BrowserstackTransport', function () {
240
240
assert . strictEqual ( client . settings . webdriver . start_process , false ) ;
241
241
242
242
let sessionNockCalled = 0 ;
243
-
243
+
244
244
nock ( 'https://api.browserstack.com' )
245
245
. get ( '/automate/sessions/1234567.json' )
246
246
. reply ( 200 , function ( ) {
247
247
sessionNockCalled ++ ;
248
-
248
+
249
249
return { automation_session : { status : 'done' } } ;
250
250
} ) ;
251
251
nock ( 'https://api.browserstack.com' )
@@ -255,7 +255,7 @@ describe('BrowserstackTransport', function () {
255
255
} )
256
256
. reply ( 200 , function ( ) {
257
257
sessionNockCalled ++ ;
258
-
258
+
259
259
return { } ;
260
260
} ) ;
261
261
@@ -323,7 +323,7 @@ describe('BrowserstackTransport', function () {
323
323
assert . strictEqual ( transport . username , 'test-access-user' ) ;
324
324
assert . strictEqual ( transport . accessKey , 'test-access-key' ) ;
325
325
assert . strictEqual ( client . settings . webdriver . start_process , false ) ;
326
-
326
+
327
327
nock ( 'https://api.browserstack.com' )
328
328
. get ( '/app-automate/sessions/1234567.json' )
329
329
. reply ( 200 , {
@@ -342,7 +342,7 @@ describe('BrowserstackTransport', function () {
342
342
343
343
assert . strictEqual ( transport . buildId , '123-567-89' ) ;
344
344
} ) ;
345
-
345
+
346
346
it ( 'test create Transport for Browserstack - Automate TurboScale' , async function ( ) {
347
347
const client = NightwatchClient . client ( {
348
348
webdriver : {
@@ -367,7 +367,7 @@ describe('BrowserstackTransport', function () {
367
367
}
368
368
} ;
369
369
} ) ;
370
-
370
+
371
371
nock ( 'https://api.browserstack.com' )
372
372
. get ( '/automate-turboscale/v1/builds?status=running&limit=20&offset=0' )
373
373
. reply ( 200 , {
@@ -400,7 +400,7 @@ describe('BrowserstackTransport', function () {
400
400
assert . strictEqual ( client . settings . webdriver . start_process , false ) ;
401
401
402
402
let sessionNockCalled = 0 ;
403
-
403
+
404
404
nock ( 'https://api.browserstack.com' )
405
405
. get ( '/automate-turboscale/v1/sessions/1352110219202' )
406
406
. reply ( 200 , function ( ) {
@@ -411,7 +411,7 @@ describe('BrowserstackTransport', function () {
411
411
nock ( 'https://api.browserstack.com' )
412
412
. patch ( '/automate-turboscale/v1/sessions/1352110219202' , {
413
413
status : 'passed' ,
414
- reason : ''
414
+ reason : ''
415
415
} )
416
416
. reply ( 200 , function ( ) {
417
417
sessionNockCalled ++ ;
@@ -489,10 +489,10 @@ describe('BrowserstackTransport', function () {
489
489
reason : 'NightwatchAssertError: Timed out while waiting for element <#james> to be present for 5000 milliseconds. - expected "visible" but got: "not found" (5400ms)'
490
490
} )
491
491
. reply ( 200 , { } ) ;
492
-
492
+
493
493
const error = new Error ( 'Timed out while waiting for element <#james> to be present for 5000 milliseconds. - expected "visible" but got: "not found" (5400ms)' ) ;
494
494
error . name = 'NightwatchAssertError' ;
495
-
495
+
496
496
result = await transport . testSuiteFinished ( error ) ;
497
497
498
498
assert . strictEqual ( result , true ) ;
@@ -504,4 +504,96 @@ describe('BrowserstackTransport', function () {
504
504
} , 100 ) ;
505
505
} ) ;
506
506
} ) ;
507
+
508
+ it ( 'test create Transport for Browserstack - Automate and Check the result in second page' , async function ( ) {
509
+ const client = NightwatchClient . client ( {
510
+ webdriver : {
511
+ host : 'hub-cloud.browserstack.com' ,
512
+ port : 443 ,
513
+ start_process : true
514
+ } ,
515
+ desiredCapabilities : {
516
+ 'browserstack.user' : 'test-access-user' ,
517
+ 'browserstack.key' : 'test-access-key' ,
518
+ browserName : 'chrome'
519
+ }
520
+ } ) ;
521
+
522
+ nock ( 'https://hub-cloud.browserstack.com' )
523
+ . post ( '/wd/hub/session' )
524
+ . reply ( 201 , function ( uri , requestBody ) {
525
+ return {
526
+ value : {
527
+ sessionId : '1352110219202' ,
528
+ capabilities : requestBody . capabilities
529
+ }
530
+ } ;
531
+ } ) ;
532
+
533
+ nock ( 'https://api.browserstack.com' )
534
+ . get ( '/automate/builds.json?status=running&limit=20&offset=0' )
535
+ . reply ( 200 , [
536
+ {
537
+ automation_build : {
538
+ name : 'nightwatch-test' ,
539
+ hashed_id : '123-56'
540
+ }
541
+ } ,
542
+ {
543
+ automation_build : {
544
+ name : 'test-build'
545
+ }
546
+ }
547
+ ] ) ;
548
+
549
+ nock ( 'https://api.browserstack.com' )
550
+ . get ( '/automate/builds.json?status=running&limit=20&offset=20' )
551
+ . reply ( 200 , [
552
+ {
553
+ automation_build : {
554
+ name : 'nightwatch-test-build' ,
555
+ hashed_id : '123-567-89'
556
+ }
557
+ } ,
558
+ {
559
+ automation_build : {
560
+ name : 'test-build'
561
+ }
562
+ }
563
+ ] ) ;
564
+ assert . ok ( client . transport instanceof Automate ) ;
565
+ assert . strictEqual ( client . settings . webdriver . host , 'hub-cloud.browserstack.com' ) ;
566
+ assert . strictEqual ( client . settings . webdriver . default_path_prefix , '/wd/hub' ) ;
567
+ assert . strictEqual ( client . settings . webdriver . ssl , true ) ;
568
+
569
+ const { transport} = client ;
570
+ assert . ok ( transport instanceof SeleniumRemote ) ;
571
+
572
+ let result = await transport . createSession ( { argv : undefined , moduleKey : '' } ) ;
573
+ result . sessionId = '1234567' ;
574
+ client . emit ( 'nightwatch:session.create' , result ) ;
575
+
576
+ assert . strictEqual ( transport . username , 'test-access-user' ) ;
577
+ assert . strictEqual ( transport . accessKey , 'test-access-key' ) ;
578
+ assert . strictEqual ( client . settings . webdriver . start_process , false ) ;
579
+
580
+ nock ( 'https://api.browserstack.com' )
581
+ . get ( '/automate/sessions/1234567.json' )
582
+ . reply ( 200 , {
583
+ automation_session : { status : 'done' }
584
+ } ) ;
585
+ nock ( 'https://api.browserstack.com' )
586
+ . put ( '/automate/sessions/1234567.json' , {
587
+ status : 'passed' ,
588
+ reason : ''
589
+ } )
590
+ . reply ( 200 , { } ) ;
591
+
592
+ result = await transport . testSuiteFinished ( false ) ;
593
+ assert . strictEqual ( result , true ) ;
594
+ assert . strictEqual ( transport . sessionId , null ) ;
595
+
596
+ assert . strictEqual ( transport . buildId , '123-567-89' ) ;
597
+
598
+ } ) ;
507
599
} ) ;
0 commit comments