froth-webdriverio-framework 7.0.80 → 7.0.81
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -22,7 +22,7 @@ try {
|
|
|
22
22
|
process.env.BROWSERSTACK_ACCESS_KEY = Buffer.from(bsCaps.accessKey, 'base64').toString('utf-8')
|
|
23
23
|
// Merge chrome-specific options if applicable
|
|
24
24
|
await setAllDetails.setExecutionDetails()
|
|
25
|
-
|
|
25
|
+
|
|
26
26
|
} catch (e) {
|
|
27
27
|
console.error('❌ Failed to load capability YAML:', err.message);
|
|
28
28
|
process.exit(1);
|
|
@@ -49,22 +49,8 @@ console.log('====> BS SESSION TYPE :', process.env.BS_SESSION_TYPE);
|
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
// --------------------
|
|
52
|
-
//
|
|
52
|
+
// Inject media files into BrowserStack capabilities
|
|
53
53
|
// --------------------
|
|
54
|
-
if (PLATFORM === 'browserstack' || PLATFORM === 'browserstacklocal') {
|
|
55
|
-
envConfig =
|
|
56
|
-
OS === 'web'
|
|
57
|
-
? require('./browserstack/web.config')
|
|
58
|
-
: require('./browserstack/mobile.config');
|
|
59
|
-
} else {
|
|
60
|
-
envConfig =
|
|
61
|
-
OS === 'web'
|
|
62
|
-
? require('./local/web.config')
|
|
63
|
-
: require('./local/mobile.config');
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
console.log('====> envConfig :', envConfig);
|
|
67
|
-
envConfig = await getBrowserStackCapabilities(envConfig)
|
|
68
54
|
async function getBrowserStackCapabilities(baseCaps) {
|
|
69
55
|
if (
|
|
70
56
|
process.env.PLATFORM !== 'browserstack' &&
|
|
@@ -76,39 +62,33 @@ async function getBrowserStackCapabilities(baseCaps) {
|
|
|
76
62
|
console.log('🟡 Raw Capabilities (Before):');
|
|
77
63
|
console.log(JSON.stringify(baseCaps, null, 2));
|
|
78
64
|
|
|
79
|
-
// ✅ Normalize to array
|
|
80
65
|
const isArray = Array.isArray(baseCaps);
|
|
81
66
|
const capsArray = isArray ? baseCaps : [baseCaps];
|
|
82
67
|
|
|
83
|
-
const updatedCaps =
|
|
84
|
-
|
|
85
|
-
|
|
68
|
+
const updatedCaps = capsArray.map(async (capability) => {
|
|
69
|
+
capability['bstack:options'] = capability['bstack:options'] || {};
|
|
70
|
+
const bsOpts = capability['bstack:options'];
|
|
86
71
|
|
|
87
|
-
console.log('🟢 Existing bstack:options (Before Modification):');
|
|
88
|
-
console.log(JSON.stringify(bsOpts, null, 2));
|
|
89
72
|
|
|
90
|
-
|
|
91
|
-
// process.env.BS_UPLOAD_MEDIA = "..."
|
|
92
|
-
process.env.BS_UPLOAD_MEDIA = "media://8440f686585de9b46e1c966ce764703836f918bc,media://2952ee7b9b7f0751624b0d4208d7c00b56d4e49b"
|
|
93
|
-
if (process.env.BS_UPLOAD_MEDIA) {
|
|
94
|
-
bsOpts.uploadMedia = process.env.BS_UPLOAD_MEDIA
|
|
95
|
-
.split(',')
|
|
96
|
-
.map(x => x.trim());
|
|
97
|
-
}
|
|
98
|
-
// capabilities['browserstack.uploadMedia'] = '{"media://8440f686585de9b46e1c966ce764703836f918bc","media://2952ee7b9b7f0751624b0d4208d7c00b56d4e49b"}'
|
|
73
|
+
const mediaFiles = JSON.parse(process.env.MEDIA_FILES);
|
|
99
74
|
|
|
100
|
-
|
|
75
|
+
// ✅ Inject media files from YAML if present
|
|
76
|
+
if (Array.isArray(mediaFiles) && mediaFiles.length > 0) {
|
|
77
|
+
bsOpts.uploadMedia = mediaFiles;
|
|
78
|
+
console.log('🟢 Uploading media files:', bsOpts.uploadMedia);
|
|
79
|
+
}
|
|
101
80
|
|
|
102
|
-
|
|
103
|
-
console.log(JSON.stringify(bsOpts, null, 2));
|
|
81
|
+
capability['bstack:options'] = bsOpts;
|
|
104
82
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
);
|
|
83
|
+
return capability;
|
|
84
|
+
});
|
|
108
85
|
|
|
109
|
-
|
|
110
|
-
return isArray ? updatedCaps : updatedCaps[0];
|
|
86
|
+
// return isArray ? updatedCaps : updatedCaps[0];
|
|
111
87
|
}
|
|
112
88
|
|
|
89
|
+
// Apply media injection
|
|
90
|
+
envConfig = await getBrowserStackCapabilities(envConfig, bsCaps);
|
|
91
|
+
|
|
92
|
+
console.log('====> Final Env Config:', JSON.stringify(envConfig, null, 2));
|
|
113
93
|
exports.config = deepmerge(baseConfig, envConfig(bsCaps));
|
|
114
94
|
|