froth-webdriverio-framework 4.0.30 → 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.
@@ -1,5 +1,5 @@
1
1
  // Function to verify text in Android app
2
- import { expect } from 'chai';
2
+ import assert from 'assert';
3
3
 
4
4
  async function assertText(elementSelector, expectedText) {
5
5
 
@@ -7,10 +7,8 @@ async function assertText(elementSelector, expectedText) {
7
7
  console.log("inside the assert text function" + elementSelector)
8
8
  try {
9
9
  let element = await $(elementSelector)
10
- let assertionStatus = false; // Initialize status
11
10
  try {
12
11
  await expect(element).toHaveText(expectedText);
13
- assertionStatus = true; // If assertion passes, set status to true
14
12
  console.log("Assertion succeeded.");
15
13
  actualText = await element.getText();
16
14
  let annotationMessage = `Assertion passed. Actual text: ${actualText}, Expected text: ${expectedText}.`;
@@ -18,18 +16,21 @@ async function assertText(elementSelector, expectedText) {
18
16
  } catch (error) {
19
17
  console.log(`Assertion failed. Expected text: ${expectedText}.`);
20
18
  let annotationMessage = `Assertion failed. Expected text: ${expectedText}.`;
21
- assert.fail(annotationMessage,"error: ",error.message);
22
- browser.testError = annotationMessage
23
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}`);
24
24
  }
25
25
 
26
26
 
27
27
  } catch (error) {
28
28
  console.error('Error occurred while verifying text:', error);
29
29
  let annotationMessage = `Error occurred while verifying text: ${error.message}.`;
30
- browser.testError = annotationMessage
31
- assert.fail(annotationMessage,"error: ",error.message);
32
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}`);
33
34
  // throw error;
34
35
  }
35
36
 
@@ -42,7 +43,6 @@ async function assertAttributeValue(elementSelector, attributeName, expectedText
42
43
  console.log("inside the assertAttributeValue function" + elementSelector)
43
44
  try {
44
45
  let element = await $(elementSelector)
45
- let assertionStatus = false; // Initialize status
46
46
  try {
47
47
  await expect(element).toHaveAttribute(attributeName, expectedText);
48
48
  let actualText;
@@ -53,16 +53,19 @@ async function assertAttributeValue(elementSelector, attributeName, expectedText
53
53
  } catch (error) {
54
54
  console.warn("Assertion failed:", error.message);
55
55
  let annotationMessage = `Assertion failed. Expected text: ${expectedText}. ,${error.message}`;
56
- browser.testError = annotationMessage
57
- assert.fail(annotationMessage,"error: ",error.message);
58
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}`);
59
61
  }
60
62
  } catch (error) {
61
63
  console.error('Error occurred while verifying text:', error);
62
64
  let annotationMessage = `Error occurred while asserting Attribute: ${error.message}.`;
63
- browser.testError = annotationMessage
64
- assert.fail(annotationMessage,"error: ",error.message);
65
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}`);
66
69
  }
67
70
 
68
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.30",
3
+ "version": "4.0.32",
4
4
  "readme": "WebdriverIO Integration",
5
5
  "description": "WebdriverIO and BrowserStack App Automate",
6
6
  "license": "MIT",