froth-webdriverio-framework 7.0.38 → 7.0.40

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.
@@ -110,6 +110,28 @@ const commonHooks = {
110
110
  }
111
111
  },
112
112
 
113
+ /* ========== ON WORKER ERROR (SESSION / DRIVER FAILURES) ========== */
114
+ onWorkerError: async function (cid, error, specs, retries) {
115
+ console.error('==== ON WORKER ERROR HOOK ====');
116
+ console.error(`Worker ID : ${cid}`);
117
+ console.error(`Specs : ${specs?.join(', ')}`);
118
+ console.error(`Retries : ${retries}`);
119
+ console.error(`Error : ${error?.message}`);
120
+ console.error(error?.stack);
121
+
122
+ // Prevent duplicate updates
123
+ if (executionUpdated) return;
124
+
125
+ const userMessage = await normalizeWdioError(error);
126
+
127
+ resultdetails.excution_status = 'FAILED';
128
+ resultdetails.comments.push(userMessage);
129
+
130
+ await safeUpdateExecution();
131
+ },
132
+ /* ========== ON ERROR ========== */
133
+
134
+
113
135
  /* ========== BEFORE SESSION ========== */
114
136
 
115
137
  beforeSession: async function (config, capabilities, specs) {
@@ -284,7 +306,6 @@ const commonHooks = {
284
306
 
285
307
  },
286
308
 
287
- /* ========== ON ERROR ========== */
288
309
 
289
310
  onError: async function (error) {
290
311
  console.error('==== ON ERROR HOOK ====');
@@ -307,6 +328,10 @@ const commonHooks = {
307
328
  onComplete: async (exitCode, _, __, results) => {
308
329
  console.log('==== ON COMPLETE ====');
309
330
  console.log(`Total: ${results.total || 0}, Passed: ${results.passed || 0}, Failed: ${results.failed || 0}`);
331
+ exitCode = exitCode ?? 0;
332
+ resultdetails.excution_status = exitCode === 0 ? 'PASSED' : 'FAILED';
333
+
334
+ await safeUpdateExecution();
310
335
 
311
336
 
312
337
  return exitCode;
@@ -315,5 +340,27 @@ const commonHooks = {
315
340
 
316
341
 
317
342
  };
343
+ async function normalizeWdioError(error) {
344
+ const msg = error?.message || String(error);
345
+
346
+ if (msg.includes('driver.version')) {
347
+ return 'Browser driver could not be initialized. Please verify browser compatibility and driver version.';
348
+ }
349
+
350
+ if (msg.toLowerCase().includes('opera')) {
351
+ return 'Opera browser is unstable on BrowserStack. Please switch to Chrome or Edge.';
352
+ }
353
+
354
+ if (msg.includes('session not created')) {
355
+ return 'Automation session could not be created. Please check browser capabilities.';
356
+ }
357
+
358
+ if (msg.includes('timeout')) {
359
+ return 'Session timed out while initializing the browser.';
360
+ }
361
+
362
+ return `Automation framework error: ${msg}`;
363
+ }
364
+
318
365
 
319
366
  module.exports = commonHooks;
@@ -0,0 +1,352 @@
1
+ [
2
+ {
3
+ "name": "sdk:testhub",
4
+ "entryType": "measure",
5
+ "startTime": 794.9964059889317,
6
+ "duration": 1306.2837010025978,
7
+ "detail": null,
8
+ "success": true,
9
+ "failure": null,
10
+ "worker": 77156
11
+ },
12
+ {
13
+ "name": "sdk:percy",
14
+ "entryType": "measure",
15
+ "startTime": 2106.6777369976044,
16
+ "duration": 0.471561998128891,
17
+ "detail": null,
18
+ "success": true,
19
+ "failure": null,
20
+ "worker": 77156
21
+ },
22
+ {
23
+ "name": "sdk:automate:local",
24
+ "entryType": "measure",
25
+ "startTime": 2107.2963140010834,
26
+ "duration": 0.4725229740142822,
27
+ "detail": null,
28
+ "success": true,
29
+ "failure": null,
30
+ "worker": 77156
31
+ },
32
+ {
33
+ "name": "sdk:automate:hub-management",
34
+ "entryType": "measure",
35
+ "startTime": 5263.33765399456,
36
+ "duration": 957.2803039848804,
37
+ "detail": null,
38
+ "success": true,
39
+ "failure": null,
40
+ "worker": 77156
41
+ },
42
+ {
43
+ "name": "sdk:automate:print-buildlink",
44
+ "entryType": "measure",
45
+ "startTime": 19483.100566983223,
46
+ "duration": 762.5939390063286,
47
+ "detail": null,
48
+ "success": true,
49
+ "failure": null,
50
+ "worker": 77156
51
+ },
52
+ {
53
+ "name": "sdk:testhub",
54
+ "entryType": "measure",
55
+ "startTime": 664.5605069994926,
56
+ "duration": 1081.4890919923782,
57
+ "detail": null,
58
+ "success": true,
59
+ "failure": null,
60
+ "worker": 77783
61
+ },
62
+ {
63
+ "name": "sdk:percy",
64
+ "entryType": "measure",
65
+ "startTime": 1752.1274409890175,
66
+ "duration": 0.35737600922584534,
67
+ "detail": null,
68
+ "success": true,
69
+ "failure": null,
70
+ "worker": 77783
71
+ },
72
+ {
73
+ "name": "sdk:automate:local",
74
+ "entryType": "measure",
75
+ "startTime": 1752.607863008976,
76
+ "duration": 0.5444999933242798,
77
+ "detail": null,
78
+ "success": true,
79
+ "failure": null,
80
+ "worker": 77783
81
+ },
82
+ {
83
+ "name": "sdk:automate:hub-management",
84
+ "entryType": "measure",
85
+ "startTime": 3704.399443000555,
86
+ "duration": 924.1338419914246,
87
+ "detail": null,
88
+ "success": true,
89
+ "failure": null,
90
+ "worker": 77783
91
+ },
92
+ {
93
+ "name": "sdk:automate:print-buildlink",
94
+ "entryType": "measure",
95
+ "startTime": 21514.17415100336,
96
+ "duration": 678.7150169909,
97
+ "detail": null,
98
+ "success": true,
99
+ "failure": null,
100
+ "worker": 77783
101
+ },
102
+ {
103
+ "name": "sdk:testhub",
104
+ "entryType": "measure",
105
+ "startTime": 705.4460999965668,
106
+ "duration": 1015.3018560111523,
107
+ "detail": null,
108
+ "success": true,
109
+ "failure": null,
110
+ "worker": 78175
111
+ },
112
+ {
113
+ "name": "sdk:percy",
114
+ "entryType": "measure",
115
+ "startTime": 1726.1555559933186,
116
+ "duration": 0.36878702044487,
117
+ "detail": null,
118
+ "success": true,
119
+ "failure": null,
120
+ "worker": 78175
121
+ },
122
+ {
123
+ "name": "sdk:automate:local",
124
+ "entryType": "measure",
125
+ "startTime": 1726.660318017006,
126
+ "duration": 0.550464004278183,
127
+ "detail": null,
128
+ "success": true,
129
+ "failure": null,
130
+ "worker": 78175
131
+ },
132
+ {
133
+ "name": "sdk:automate:hub-management",
134
+ "entryType": "measure",
135
+ "startTime": 3724.3620370030403,
136
+ "duration": 945.1162239909172,
137
+ "detail": null,
138
+ "success": true,
139
+ "failure": null,
140
+ "worker": 78175
141
+ },
142
+ {
143
+ "name": "sdk:automate:print-buildlink",
144
+ "entryType": "measure",
145
+ "startTime": 22746.781574994326,
146
+ "duration": 836.4141010046005,
147
+ "detail": null,
148
+ "success": true,
149
+ "failure": null,
150
+ "worker": 78175
151
+ },
152
+ {
153
+ "name": "sdk:testhub",
154
+ "entryType": "measure",
155
+ "startTime": 958.3535969853401,
156
+ "duration": 1348.4839110076427,
157
+ "detail": null,
158
+ "success": true,
159
+ "failure": null,
160
+ "worker": 79080
161
+ },
162
+ {
163
+ "name": "sdk:percy",
164
+ "entryType": "measure",
165
+ "startTime": 2312.3329269886017,
166
+ "duration": 0.40662598609924316,
167
+ "detail": null,
168
+ "success": true,
169
+ "failure": null,
170
+ "worker": 79080
171
+ },
172
+ {
173
+ "name": "sdk:automate:local",
174
+ "entryType": "measure",
175
+ "startTime": 2312.8729589879513,
176
+ "duration": 0.5007449984550476,
177
+ "detail": null,
178
+ "success": true,
179
+ "failure": null,
180
+ "worker": 79080
181
+ },
182
+ {
183
+ "name": "sdk:automate:hub-management",
184
+ "entryType": "measure",
185
+ "startTime": 5144.4461279809475,
186
+ "duration": 963.9513069987297,
187
+ "detail": null,
188
+ "success": true,
189
+ "failure": null,
190
+ "worker": 79080
191
+ },
192
+ {
193
+ "name": "sdk:automate:print-buildlink",
194
+ "entryType": "measure",
195
+ "startTime": 23687.286942988634,
196
+ "duration": 628.1841549873352,
197
+ "detail": null,
198
+ "success": true,
199
+ "failure": null,
200
+ "worker": 79080
201
+ },
202
+ {
203
+ "name": "sdk:testhub",
204
+ "entryType": "measure",
205
+ "startTime": 729.0398159921169,
206
+ "duration": 1785.8783230185509,
207
+ "detail": null,
208
+ "success": true,
209
+ "failure": null,
210
+ "worker": 79402
211
+ },
212
+ {
213
+ "name": "sdk:percy",
214
+ "entryType": "measure",
215
+ "startTime": 2519.73440900445,
216
+ "duration": 0.44797101616859436,
217
+ "detail": null,
218
+ "success": true,
219
+ "failure": null,
220
+ "worker": 79402
221
+ },
222
+ {
223
+ "name": "sdk:automate:local",
224
+ "entryType": "measure",
225
+ "startTime": 2520.3168550133705,
226
+ "duration": 0.49013298749923706,
227
+ "detail": null,
228
+ "success": true,
229
+ "failure": null,
230
+ "worker": 79402
231
+ },
232
+ {
233
+ "name": "sdk:automate:hub-management",
234
+ "entryType": "measure",
235
+ "startTime": 4515.642430007458,
236
+ "duration": 1022.146191984415,
237
+ "detail": null,
238
+ "success": true,
239
+ "failure": null,
240
+ "worker": 79402
241
+ },
242
+ {
243
+ "name": "sdk:automate:print-buildlink",
244
+ "entryType": "measure",
245
+ "startTime": 25391.07972201705,
246
+ "duration": 668.2325959801674,
247
+ "detail": null,
248
+ "success": true,
249
+ "failure": null,
250
+ "worker": 79402
251
+ },
252
+ {
253
+ "name": "sdk:testhub",
254
+ "entryType": "measure",
255
+ "startTime": 568.1434620022774,
256
+ "duration": 1231.5972929894924,
257
+ "detail": null,
258
+ "success": true,
259
+ "failure": null,
260
+ "worker": 79465
261
+ },
262
+ {
263
+ "name": "sdk:percy",
264
+ "entryType": "measure",
265
+ "startTime": 1804.055193990469,
266
+ "duration": 0.3996239900588989,
267
+ "detail": null,
268
+ "success": true,
269
+ "failure": null,
270
+ "worker": 79465
271
+ },
272
+ {
273
+ "name": "sdk:automate:local",
274
+ "entryType": "measure",
275
+ "startTime": 1804.5779829919338,
276
+ "duration": 0.5071429908275604,
277
+ "detail": null,
278
+ "success": true,
279
+ "failure": null,
280
+ "worker": 79465
281
+ },
282
+ {
283
+ "name": "sdk:automate:hub-management",
284
+ "entryType": "measure",
285
+ "startTime": 3393.2372449934483,
286
+ "duration": 997.4032759964466,
287
+ "detail": null,
288
+ "success": true,
289
+ "failure": null,
290
+ "worker": 79465
291
+ },
292
+ {
293
+ "name": "sdk:automate:print-buildlink",
294
+ "entryType": "measure",
295
+ "startTime": 109670.18531000614,
296
+ "duration": 659.3550909757614,
297
+ "detail": null,
298
+ "success": true,
299
+ "failure": null,
300
+ "worker": 79465
301
+ },
302
+ {
303
+ "name": "sdk:testhub",
304
+ "entryType": "measure",
305
+ "startTime": 742.3494910001755,
306
+ "duration": 1859.0317159891129,
307
+ "detail": null,
308
+ "success": true,
309
+ "failure": null,
310
+ "worker": 79869
311
+ },
312
+ {
313
+ "name": "sdk:percy",
314
+ "entryType": "measure",
315
+ "startTime": 2607.7027820050716,
316
+ "duration": 0.41398099064826965,
317
+ "detail": null,
318
+ "success": true,
319
+ "failure": null,
320
+ "worker": 79869
321
+ },
322
+ {
323
+ "name": "sdk:automate:local",
324
+ "entryType": "measure",
325
+ "startTime": 2608.250313013792,
326
+ "duration": 0.5754719972610474,
327
+ "detail": null,
328
+ "success": true,
329
+ "failure": null,
330
+ "worker": 79869
331
+ },
332
+ {
333
+ "name": "sdk:automate:hub-management",
334
+ "entryType": "measure",
335
+ "startTime": 5553.982513010502,
336
+ "duration": 934.0111009776592,
337
+ "detail": null,
338
+ "success": true,
339
+ "failure": null,
340
+ "worker": 79869
341
+ },
342
+ {
343
+ "name": "sdk:automate:print-buildlink",
344
+ "entryType": "measure",
345
+ "startTime": 130892.79791900516,
346
+ "duration": 696.7352069914341,
347
+ "detail": null,
348
+ "success": true,
349
+ "failure": null,
350
+ "worker": 79869
351
+ }
352
+ ]