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
- // Load env-specific config
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 = await Promise.all(
84
- capsArray.map(async (capabilities) => {
85
- const bsOpts = capabilities['bstack:options'] || {};
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
- // ⚠️ NEVER assign env vars like this inside code
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
- capabilities['bstack:options'] = bsOpts;
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
- console.log('🟢 Existing bstack:options (After Modification):');
103
- console.log(JSON.stringify(bsOpts, null, 2));
81
+ capability['bstack:options'] = bsOpts;
104
82
 
105
- return capabilities;
106
- })
107
- );
83
+ return capability;
84
+ });
108
85
 
109
- // Return in original shape
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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "froth-webdriverio-framework",
3
- "version": "7.0.80",
3
+ "version": "7.0.81",
4
4
  "readme": "WebdriverIO Integration",
5
5
  "description": "WebdriverIO and BrowserStack App Automate",
6
6
  "license": "MIT",