Skip to content

Commit e5585b8

Browse files
authored
Update to latest Mac and re-enable browser compatibility test for Mac (#3220)
1 parent ae586bd commit e5585b8

4 files changed

Lines changed: 96 additions & 90 deletions

File tree

integration/configs/BrowserCompatibilityBrowserConfig.js

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
const browserCompatibilityConfig = [
2-
// {
3-
// "browserName": "chrome",
4-
// "browserVersion": "latest-2",
5-
// "platform": "MAC"
6-
// },
7-
// {
8-
// "browserName": "chrome",
9-
// "browserVersion": "latest-1",
10-
// "platform": "MAC"
11-
// },
12-
// {
13-
// "browserName": "chrome",
14-
// "browserVersion": "latest",
15-
// "platform": "MAC"
16-
// },
2+
{
3+
"browserName": "chrome",
4+
"browserVersion": "latest-2",
5+
"platform": "MAC"
6+
},
7+
{
8+
"browserName": "chrome",
9+
"browserVersion": "latest-1",
10+
"platform": "MAC"
11+
},
12+
{
13+
"browserName": "chrome",
14+
"browserVersion": "latest",
15+
"platform": "MAC"
16+
},
1717
{
1818
"browserName": "chrome",
1919
"browserVersion": "latest-2",
@@ -29,21 +29,21 @@ const browserCompatibilityConfig = [
2929
"browserVersion": "latest",
3030
"platform": "WINDOWS"
3131
},
32-
// {
33-
// "browserName": "firefox",
34-
// "browserVersion": "latest-2",
35-
// "platform": "MAC"
36-
// },
37-
// {
38-
// "browserName": "firefox",
39-
// "browserVersion": "latest-1",
40-
// "platform": "MAC"
41-
// },
42-
// {
43-
// "browserName": "firefox",
44-
// "browserVersion": "latest",
45-
// "platform": "MAC"
46-
// },
32+
{
33+
"browserName": "firefox",
34+
"browserVersion": "latest-2",
35+
"platform": "MAC"
36+
},
37+
{
38+
"browserName": "firefox",
39+
"browserVersion": "latest-1",
40+
"platform": "MAC"
41+
},
42+
{
43+
"browserName": "firefox",
44+
"browserVersion": "latest",
45+
"platform": "MAC"
46+
},
4747
{
4848
"browserName": "firefox",
4949
"browserVersion": "latest-2",
Lines changed: 63 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,69 @@
1-
const config = {
2-
firefoxOptions: {
3-
browserName: 'firefox',
4-
'moz:firefoxOptions': {
5-
args: process.env.HEADLESS_MODE === 'true' ?
6-
['-start-debugger-server', '9222', '-headless'] :
7-
['-start-debugger-server', '9222'],
8-
prefs: {
9-
'media.navigator.streams.fake': true,
10-
'media.navigator.permission.disabled': true,
11-
'media.peerconnection.video.h264_enabled': true,
12-
'media.webrtc.hw.h264.enabled': true,
13-
'media.webrtc.platformencoder': true,
14-
'devtools.chrome.enabled': true,
15-
'devtools.debugger.prompt-connection': false,
16-
'devtools.debugger.remote-enabled': true,
1+
const getConfig = () => {
2+
const platformName = process.env.PLATFORM_NAME || 'macOS 13';
3+
const macVersionMatch = platformName.match(/^macOS\s+(\d+)/);
4+
const isMacOS14OrHigher = macVersionMatch && parseInt(macVersionMatch[1], 10) >= 14;
5+
6+
return {
7+
firefoxOptions: {
8+
browserName: 'firefox',
9+
'moz:firefoxOptions': {
10+
args: process.env.HEADLESS_MODE === 'true'
11+
? ['-start-debugger-server', '9222', '-headless']
12+
: ['-start-debugger-server', '9222'],
13+
prefs: {
14+
'media.navigator.streams.fake': true,
15+
'media.navigator.permission.disabled': true,
16+
'media.peerconnection.video.h264_enabled': true,
17+
'media.webrtc.hw.h264.enabled': true,
18+
'media.webrtc.platformencoder': true,
19+
'devtools.chrome.enabled': true,
20+
'devtools.debugger.prompt-connection': false,
21+
'devtools.debugger.remote-enabled': true,
22+
},
23+
},
24+
},
25+
chromeOptions: {
26+
browserName: 'chrome',
27+
'goog:chromeOptions': {
28+
args:
29+
process.env.HEADLESS_MODE === 'true'
30+
? [
31+
'--use-fake-device-for-media-stream',
32+
'--use-fake-ui-for-media-stream',
33+
'--headless=new',
34+
'--window-size=1920,1080',
35+
'--no-sandbox',
36+
'--disable-dev-shm-usage',
37+
'--enable-webgl',
38+
'--enable-webgl2-compute-context',
39+
'--use-gl=angle',
40+
'--use-angle=swiftshader',
41+
]
42+
: [
43+
'--use-fake-device-for-media-stream',
44+
'--use-fake-ui-for-media-stream',
45+
'--window-size=1920,1080',
46+
],
1747
},
48+
...(process.env.ENABLE_BROWSER_LOGGING === 'true' && { 'goog:loggingPrefs': { browser: 'ALL' } }),
1849
},
19-
},
20-
chromeOptions: {
21-
browserName: 'chrome',
22-
'goog:chromeOptions': {
23-
args:
24-
process.env.HEADLESS_MODE === 'true'
25-
? [
26-
'--use-fake-device-for-media-stream',
27-
'--use-fake-ui-for-media-stream',
28-
'--headless=new',
29-
'--window-size=1920,1080',
30-
'--no-sandbox',
31-
'--disable-dev-shm-usage',
32-
'--enable-webgl',
33-
'--enable-webgl2-compute-context',
34-
'--use-gl=angle',
35-
'--use-angle=swiftshader',
36-
]
37-
: [
38-
'--use-fake-device-for-media-stream',
39-
'--use-fake-ui-for-media-stream',
40-
'--window-size=1920,1080',
41-
],
50+
safariOptions: {
51+
browserName: 'safari',
4252
},
43-
...(process.env.ENABLE_BROWSER_LOGGING === 'true' && { 'goog:loggingPrefs': { browser: 'ALL' } }),
44-
},
45-
safariOptions: {
46-
browserName: 'safari',
47-
// Safari doesn't support headless mode
48-
},
49-
sauceOptions: {
50-
browserName: process.env.BROWSER_NAME || 'chrome',
51-
platformName: process.env.PLATFORM_NAME || 'macOS 13',
52-
browserVersion: process.env.BROWSER_VERSION || 'latest',
53-
'sauce:options': {
54-
tunnelName: process.env.JOB_ID,
55-
username: process.env.SAUCE_USERNAME,
56-
accessKey: process.env.SAUCE_ACCESS_KEY,
57-
noSSLBumpDomains: 'all',
58-
extendedDebugging: true,
59-
screenResolution: '1920x1440',
53+
sauceOptions: {
54+
browserName: process.env.BROWSER_NAME || 'chrome',
55+
platformName,
56+
browserVersion: process.env.BROWSER_VERSION || 'latest',
57+
'sauce:options': {
58+
tunnelName: process.env.JOB_ID,
59+
username: process.env.SAUCE_USERNAME,
60+
accessKey: process.env.SAUCE_ACCESS_KEY,
61+
noSSLBumpDomains: 'all',
62+
extendedDebugging: !isMacOS14OrHigher,
63+
screenResolution: '1920x1440',
64+
},
6065
},
61-
},
66+
};
6267
};
6368

64-
module.exports = config;
69+
module.exports = getConfig;

integration/utils/ClientHelper.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ function determineSessionCount(client, logger) {
4343
const getPlatformName = (platform) => {
4444
switch (platform) {
4545
case 'MAC':
46-
return 'macOS 13';
46+
return 'macOS 26';
4747
case 'WINDOWS':
4848
return 'Windows 11';
4949
case 'LINUX':

integration/utils/WebDriverFactory.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const { Builder } = require('selenium-webdriver');
22
const { Logger, LogLevel, Log } = require('./Logger');
3-
const config = require('../configs/WebDriverBaseConfig');
3+
const getConfig = require('../configs/WebDriverBaseConfig');
44
const { DeviceFarmClient, CreateTestGridUrlCommand } = require('@aws-sdk/client-device-farm');
55

66
class WebDriverFactory {
@@ -24,6 +24,7 @@ class WebDriverFactory {
2424
}
2525

2626
async configure() {
27+
const config = getConfig();
2728
let builder = new Builder();
2829
let client;
2930
let capabilities = {};

0 commit comments

Comments
 (0)