froth-webdriverio-framework 4.0.31 → 4.0.32

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.
@@ -16,18 +16,21 @@ async function assertText(elementSelector, expectedText) {
16
16
  } catch (error) {
17
17
  console.log(`Assertion failed. Expected text: ${expectedText}.`);
18
18
  let annotationMessage = `Assertion failed. Expected text: ${expectedText}.`;
19
- assert.fail(annotationMessage, "error: ", error.message);
20
- browser.testError = annotationMessage
21
19
  await amendToBrowserstack(annotationMessage, "error");
20
+ if (!browser.testErrors) browser.testErrors = [];
21
+ browser.testErrors.push(`Assertion failed.: ${error.message}`);
22
+
23
+ // assert.fail(`Text assertion failed: ${error.message}`);
22
24
  }
23
25
 
24
26
 
25
27
  } catch (error) {
26
28
  console.error('Error occurred while verifying text:', error);
27
29
  let annotationMessage = `Error occurred while verifying text: ${error.message}.`;
28
- browser.testError = annotationMessage
29
- assert.fail(annotationMessage, "error: ", error.message);
30
30
  await amendToBrowserstack(annotationMessage, "error");
31
+ if (!browser.testErrors) browser.testErrors = [];
32
+ browser.testErrors.push(`Assertion failed.: ${error.message}`);
33
+ // assert.fail(`Text assertion failed: ${error.message}`);
31
34
  // throw error;
32
35
  }
33
36
 
@@ -50,16 +53,19 @@ async function assertAttributeValue(elementSelector, attributeName, expectedText
50
53
  } catch (error) {
51
54
  console.warn("Assertion failed:", error.message);
52
55
  let annotationMessage = `Assertion failed. Expected text: ${expectedText}. ,${error.message}`;
53
- browser.testError = annotationMessage
54
- assert.fail(annotationMessage, "error: ", error.message);
55
56
  await amendToBrowserstack(annotationMessage, "error");
57
+ console.log("Assertion failed. Expected text: ", expectedText);
58
+ if (!browser.testErrors) browser.testErrors = [];
59
+ browser.testErrors.push(`Assertion failed.: ${error.message}`);
60
+ // assert.fail(`Text assertion failed: ${error.message}`);
56
61
  }
57
62
  } catch (error) {
58
63
  console.error('Error occurred while verifying text:', error);
59
64
  let annotationMessage = `Error occurred while asserting Attribute: ${error.message}.`;
60
- browser.testError = annotationMessage
61
- assert.fail(annotationMessage, "error: ", error.message);
62
65
  await amendToBrowserstack(annotationMessage, "error");
66
+ if (!browser.testErrors) browser.testErrors = [];
67
+ browser.testErrors.push(`Assertion failed.: ${error.message}`);
68
+ // assert.fail(`Text assertion failed: ${error.message}`);
63
69
  }
64
70
 
65
71
 
@@ -18,6 +18,7 @@ const resultdetails = {
18
18
  excution_status: null, // Pass/Fail
19
19
  excution_time: null, // Execution time in milliseconds
20
20
  };
21
+ browser.testErrors = [];
21
22
  // Description: This file contains the common configuration for the webdriverio framework.
22
23
  const commonconfig = {
23
24
 
@@ -169,31 +170,32 @@ const commonconfig = {
169
170
  console.log(`====> Status of test: ${passed}`);
170
171
 
171
172
  let scriptresult = "NOT RUN";
172
- let localError = null;
173
-
174
- // if (browser.testError) {
175
- // console.error("Test Error:", browser.testError);
176
- // localError = browser.testError;
177
- // resultdetails.comments.push(`${test.title} - failed: ${localError}`);
178
- // browser.testError = null; // clear it
179
- // scriptresult = "FAILED"
180
- // passed = false; // Mark test as failed
181
- // result = 1; // Update the result status
182
-
183
- // // throw err; // causes test to fail after execution
184
- // }
185
- if (passed) {
173
+ // Default assumption: test passed (unless soft assertion failed)
174
+ let finalPassed = passed;
175
+ // Check soft assertion failures
176
+ const softErrors = browser.testErrors || [];
177
+ if (softErrors.length > 0) {
178
+ finalPassed = false; // Override status
179
+ const softErrorMessage = `Soft assertion errors: ${softErrors.join('<br>')}`;
180
+ console.log('====> Soft Assertion Failures Detected:\n' + softErrorMessage);
181
+
182
+ // Log in resultdetails
183
+ resultdetails.comments.push(`${test.title} - failed: ${softErrorMessage}`);
184
+
185
+ // Overwrite the error param so your logic can pick it up
186
+ error = new Error(softErrorMessage);
187
+ }
188
+ if (finalPassed) {
186
189
  scriptresult = "PASSED"
187
190
  resultdetails.comments.push(`${test.title} - passed`);
188
191
  }
189
- else if (!passed || error) {
192
+ else if (!finalPassed || error) {
190
193
  scriptresult = "FAILED"
191
194
  // if (!resultdetails.comments.some(comment => typeof comment === 'string' && comment.includes(test.title)))
192
195
  console.log(`====> Failed or error while executing the test: ${error ? error.message : "Test failed"}`);
193
196
  resultdetails.comments.push(`${test.title} - failed: ${error ? error.message : "Test failed"}`);
194
197
 
195
198
  }
196
-
197
199
 
198
200
  let scriptDetails = BUFFER.getItem("FROTHE_SUITE_DETAILS");
199
201
  if (typeof scriptDetails === "string") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "froth-webdriverio-framework",
3
- "version": "4.0.31",
3
+ "version": "4.0.32",
4
4
  "readme": "WebdriverIO Integration",
5
5
  "description": "WebdriverIO and BrowserStack App Automate",
6
6
  "license": "MIT",