1- import { SuiteEnum } from "./ts/suiteUtils" ;
2-
3- function browser ( browserName , browserVersion , os , osVersion ) {
4- const browsers = [ ] ;
5- if ( process . env . TEST_SUITE_NAME ) {
6- browsers . push ( {
7- configName : `${ os } _${ osVersion } _${ browserName } _${ browserVersion } _${ process . env . TEST_SUITE_NAME } ` ,
8- base : 'CustomWebDriver' ,
9- capabilities : {
10- testSuite : process . env . TEST_SUITE_NAME ,
11- browserName : browserName ,
12- browserVersion : browserVersion ,
13- os : os ,
14- os_version : osVersion
15- }
16- } ) ;
17- } else if ( process . env . SEPARATE_TEST_SUITES ) {
18- for ( let suiteName in SuiteEnum ) {
19- if ( isNaN ( Number ( suiteName ) ) ) {
20- browsers . push ( {
21- configName : `${ os } _${ osVersion } _${ browserName } _${ browserVersion } _${ suiteName } ` ,
22- base : 'CustomWebDriver' ,
23- capabilities : {
24- testSuite : suiteName ,
25- browserName : browserName ,
26- browserVersion : browserVersion ,
27- os : os ,
28- os_version : osVersion
29- }
30- } ) ;
31- }
1+ function browser ( browserName , browserVersion , os , options ?: { } ) {
2+ return {
3+ configName : `${ os } _${ browserName } _${ browserVersion } ` ,
4+ base : 'CustomWebDriver' ,
5+ capabilities : {
6+ ...( options || { } ) ,
7+ testSuite : undefined ,
8+ browserName : browserName ,
9+ browserVersion : browserVersion ,
10+ os : os ,
3211 }
33- } else {
34- browsers . push ( {
35- configName : `${ os } _${ osVersion } _${ browserName } _${ browserVersion } _allsuites` ,
36- base : 'CustomWebDriver' ,
37- capabilities : {
38- testSuite : undefined ,
39- browserName : browserName ,
40- browserVersion : browserVersion ,
41- os : os ,
42- os_version : osVersion
43- }
44- } )
4512 }
46- return browsers ;
4713}
4814
49- // Browser versions that should not have any Fetch/XHR differences in functionality to other (tested) versions are
50- // commented out.
5115const browsers = {
52- edge16_win : browser ( "edge" , "16" , "Windows" , "10" ) ,
53- edge15_win : browser ( "edge" , "15" , "Windows" , "10" ) ,
54- edge14_win : browser ( "edge" , "14" , "Windows" , "10" ) ,
55- edge13_win : browser ( 'edge' , "13" , 'Windows' , "10" ) ,
56- ie11_win : browser ( 'ie' , "11" , 'Windows' , "7" ) ,
57- firefox53_osx : browser ( 'firefox' , "53" , 'OS X' , "Sierra" ) ,
58- firefox39_osx : browser ( 'firefox' , "39" , 'OS X' , "Sierra" ) , // Basic fetch added in 39
59- firefox38_osx : browser ( 'firefox' , "38" , 'OS X' , "Sierra" ) ,
60- firefox21_osx : browser ( 'firefox' , "21" , 'OS X' , "Sierra" ) ,
61- chrome_57 : browser ( 'chrome' , "57" , 'Windows' , "7" ) ,
62- chrome_52 : browser ( 'chrome' , "52" , 'Windows' , "7" ) ,
63- chrome_43 : browser ( 'chrome' , "43" , 'Windows' , "7" ) , // Readable stream fetch support added in 43
64- chrome_42 : browser ( 'chrome' , "42" , 'Windows' , "7" ) , // Basic fetch added in 42
65- chrome_41 : browser ( 'chrome' , "41" , 'Windows' , "7" ) ,
66- safari11 : browser ( "safari" , "11" , "OS X" , "High Sierra" ) ,
67- // // Safari 10 disabled whilst investigating an issue with https requests for unresolved host hanging through Browserstack
68- // safari10: browser("safari", "10", "OS X", "Sierra"),
69- safari9_1 : browser ( "safari" , "9.1" , "OS X" , "El Capitan" ) ,
70- safari8 : browser ( "safari" , "8" , "OS X" , "Yosemite" ) ,
16+ // Firefox
17+ firefox80_win : browser ( 'firefox' , '80' , 'Windows 10' , { custom : { acceptInsecureCerts : true } } ) ,
18+ firefox39_win : browser ( 'firefox' , '39' , 'Windows 10' , { custom : { acceptInsecureCerts : true } } ) , // Basic fetch added in 39
19+ firefox38_win : browser ( 'firefox' , '38' , 'Windows 10' , { custom : { acceptInsecureCerts : true } } ) ,
20+ firefox21_win : browser ( 'firefox' , '21' , 'Windows 10' , { custom : { acceptInsecureCerts : true } } ) ,
21+
22+ // Chrome
23+ chrome_85 : browser ( 'chrome' , '85' , 'Windows 10' , { certOverrideJSElement : 'proceed-link' } ) ,
24+ chrome_52 : browser ( 'chrome' , '52' , 'Windows 10' ) ,
25+ chrome_43 : browser ( 'chrome' , '43' , 'Linux' ) , // Readable stream fetch support added in 43
26+ chrome_42 : browser ( 'chrome' , '42' , 'Linux' ) , // Basic fetch added in 42
27+ chrome_41 : browser ( 'chrome' , '41' , 'Linux' ) ,
28+
29+ // Edge
30+ edge85_win : browser ( 'MicrosoftEdge' , '85' , 'Windows 10' , { certOverrideJSElement : 'proceed-link' } ) ,
31+ edge16_win : browser ( 'MicrosoftEdge' , '16' , 'Windows 10' , { certOverrideJSElement : 'invalidcert_continue' } ) ,
32+ edge14_win : browser ( 'MicrosoftEdge' , '14' , 'Windows 10' , { certOverrideJSElement : 'invalidcert_continue' } ) ,
33+ edge13_win : browser ( 'MicrosoftEdge' , '13' , 'Windows 10' , { certOverrideJSElement : 'invalidcert_continue' } ) ,
34+
35+ // Safari
36+ safari13_1 : browser ( 'safari' , '13.1' , 'OS X 10.15' , { useSslBumping : true , disableWebsocketTests : true } ) ,
37+ safari12_1 : browser ( 'safari' , '12.0' , 'OS X 10.14' , { useSslBumping : true , disableWebsocketTests : true } ) ,
38+ safari11_1 : browser ( 'safari' , '11.1' , 'OS X 10.13' , { useSslBumping : true , disableWebsocketTests : true } ) ,
39+ safari10_1 : browser ( 'safari' , '10.1' , 'OS X 10.12' , { useSslBumping : true , disableWebsocketTests : true } ) ,
40+ safari9_1 : browser ( 'safari' , '9.0' , 'OS X 10.11' , { useSslBumping : true , disableWebsocketTests : true } ) ,
41+ safari8 : browser ( 'safari' , '8.0' , 'OS X 10.10' , { useSslBumping : true , disableWebsocketTests : true } ) ,
42+
43+ // IE
44+ ie11_win : browser ( 'internet explorer' , '11' , 'Windows 10' , { certOverrideJSElement : 'overridelink' , disableWebsocketTests : true } ) ,
7145} ;
7246
7347export default ( ) => {
@@ -79,16 +53,13 @@ export default () => {
7953 if ( ! foundBrowser ) {
8054 throw new Error ( `BROWSER env var set to "${ browserEnv } ", but there is no browser with that identifier` ) ;
8155 }
82- foundBrowser . forEach ( browserConfig => {
83- filteredBrowsers [ browserConfig . configName ] = browserConfig ;
84- } ) ;
56+ filteredBrowsers [ foundBrowser . configName ] = foundBrowser ;
8557 return filteredBrowsers ;
8658 }
8759
8860 for ( let i in browsers ) {
89- browsers [ i ] . forEach ( browserConfig => {
90- filteredBrowsers [ browserConfig . configName ] = browserConfig ;
91- } ) ;
61+ const browserConfig = browsers [ i ]
62+ filteredBrowsers [ browserConfig . configName ] = browserConfig ;
9263 }
9364 return filteredBrowsers
9465} ;
0 commit comments