Skip to content

Commit 1a979b9

Browse files
authored
Merge pull request #867 from browserstack/cypress_split_mac_win_npm
Add changes for splitting mac and win config
2 parents 8c975cb + 69bb193 commit 1a979b9

File tree

6 files changed

+47
-4
lines changed

6 files changed

+47
-4
lines changed

bin/helpers/archiver.js

+23-2
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,30 @@ const archiveSpecs = (runSettings, filePath, excludeFiles, md5data) => {
7272
});
7373
}
7474

75+
// Split mac and win configs
76+
let macPackageJSON = {};
77+
let winPackageJSON = {};
78+
Object.assign(macPackageJSON, packageJSON);
79+
Object.assign(winPackageJSON, packageJSON);
80+
81+
if (typeof runSettings.npm_dependencies === 'object') {
82+
let macNpmDependencies = Object.assign({}, runSettings.npm_dependencies, runSettings.mac_npm_dependencies || {});
83+
let winNpmDependencies = Object.assign({}, runSettings.npm_dependencies, runSettings.win_npm_dependencies || {});
84+
85+
Object.assign(macPackageJSON, {
86+
devDependencies: macNpmDependencies,
87+
});
88+
89+
Object.assign(winPackageJSON, {
90+
devDependencies: winNpmDependencies,
91+
});
92+
}
93+
7594
if (Object.keys(packageJSON).length > 0) {
76-
let packageJSONString = JSON.stringify(packageJSON, null, 4);
77-
archive.append(packageJSONString, {name: `${cypressAppendFilesZipLocation}browserstack-package.json`});
95+
const macPackageJSONString = JSON.stringify(macPackageJSON, null, 4);
96+
const winPackageJSONString = JSON.stringify(winPackageJSON, null, 4);
97+
archive.append(macPackageJSONString, {name: `${cypressAppendFilesZipLocation}browserstack-mac-package.json`});
98+
archive.append(winPackageJSONString, {name: `${cypressAppendFilesZipLocation}browserstack-win-package.json`});
7899
}
79100

80101
//Create copy of package.json

bin/helpers/checkUploaded.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
'use strict';
22
const request = require('request');
3+
const { combineMacWinNpmDependencies } = require('./helper');
34

45
const crypto = require('crypto'),
56
Constants = require('./constants'),
@@ -59,7 +60,7 @@ const checkPackageMd5 = (runSettings) => {
5960

6061
if (typeof runSettings.npm_dependencies === 'object') {
6162
Object.assign(packageJSON, {
62-
devDependencies: utils.sortJsonKeys(runSettings.npm_dependencies),
63+
devDependencies: utils.sortJsonKeys(combineMacWinNpmDependencies(runSettings)),
6364
});
6465
}
6566

bin/helpers/constants.js

+4
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,11 @@ const filesToIgnoreWhileUploading = [
343343
"package.json",
344344
"**/package.json",
345345
"browserstack-package.json",
346+
"browserstack-mac-package.json",
347+
"browserstack-win-package.json",
346348
"**/browserstack-package.json",
349+
"**/browserstack-mac-package.json",
350+
"**/browserstack-win-package.json",
347351
"tests.zip",
348352
"**/tests.zip",
349353
"cypress.json",

bin/helpers/helper.js

+4
Original file line numberDiff line numberDiff line change
@@ -441,3 +441,7 @@ exports.truncateString = (field, truncateSizeInBytes) => {
441441

442442
return field;
443443
};
444+
445+
exports.combineMacWinNpmDependencies = (runSettings) => {
446+
return Object.assign({}, runSettings.npm_dependencies, runSettings.win_npm_dependencies || {}, runSettings.mac_npm_dependencies || {})
447+
};

bin/helpers/packageInstaller.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
cliUtils = require("./utils"),
1313
util = require('util');
1414

15+
const { combineMacWinNpmDependencies } = require("./helper");
16+
1517
let nodeProcess;
1618

1719
const setupPackageFolder = (runSettings, directoryPath) => {
@@ -29,9 +31,10 @@ const setupPackageFolder = (runSettings, directoryPath) => {
2931
Object.assign(packageJSON, runSettings.package_config_options);
3032
}
3133

34+
// Combine win and mac specific dependencies if present
3235
if (typeof runSettings.npm_dependencies === 'object') {
3336
Object.assign(packageJSON, {
34-
devDependencies: runSettings.npm_dependencies,
37+
devDependencies: combineMacWinNpmDependencies(runSettings),
3538
});
3639
}
3740

bin/helpers/utils.js

+10
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,16 @@ exports.setDefaults = (bsConfig, args) => {
222222
bsConfig.run_settings.npm_dependencies = {}
223223
}
224224

225+
// setting win_npm_dependencies to {} if not present
226+
if (bsConfig.run_settings && this.isUndefined(bsConfig.run_settings.win_npm_dependencies)) {
227+
bsConfig.run_settings.win_npm_dependencies = {}
228+
}
229+
230+
// setting mac_npm_dependencies to {} if not present
231+
if (bsConfig.run_settings && this.isUndefined(bsConfig.run_settings.mac_npm_dependencies)) {
232+
bsConfig.run_settings.mac_npm_dependencies = {}
233+
}
234+
225235
// setting connection_settings to {} if not present
226236
if (this.isUndefined(bsConfig.connection_settings)) {
227237
bsConfig.connection_settings = {};

0 commit comments

Comments
 (0)