qagentic-reporter 0.1.36 → 0.1.38

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.
@@ -911,7 +911,6 @@ var QAgenticCypressReporter = class {
911
911
  end: /* @__PURE__ */ new Date(),
912
912
  duration: 0
913
913
  };
914
- this.failedTestResults = [];
915
914
  this.pendingTests = [];
916
915
  this.projectName = process.env.QAGENTIC_PROJECT_NAME || config.projectId || "Cypress E2E Tests";
917
916
  this.environment = process.env.QAGENTIC_ENVIRONMENT || process.env.NODE_ENV || "e2e";
@@ -997,83 +996,80 @@ var QAgenticCypressReporter = class {
997
996
  type: testResult.errorType,
998
997
  hasStackTrace: !!testResult.stackTrace
999
998
  });
1000
- this.failedTestResults.push({
1001
- testResult,
1002
- test
1003
- });
1004
999
  }
1005
1000
  this.stats.tests++;
1006
1001
  if (test.state === "passed") this.stats.passes++;
1007
1002
  if (test.state === "failed") this.stats.failures++;
1008
1003
  if (test.state === "pending") this.stats.pending++;
1009
- this.pendingTests.push(testResult);
1004
+ this.pendingTests.push({
1005
+ testResult,
1006
+ test
1007
+ });
1010
1008
  } catch (error) {
1011
1009
  console.warn("[QAagentic] Failed to report test:", error);
1012
1010
  }
1013
1011
  }
1014
1012
  async attachScreenshots() {
1015
- console.log("[QAagentic] Attaching screenshots to failed tests, count:", this.failedTestResults.length);
1016
- for (const { testResult, test } of this.failedTestResults) {
1017
- if (test.invocationDetails?.relativeFile) {
1018
- const testFileName = test.invocationDetails.relativeFile.replace(/\.ts$/, "");
1019
- const testName = test.title[test.title.length - 1];
1020
- const fullTestTitle = test.title.join(", ");
1021
- const screenshotPaths = [
1022
- // Mochawesome report assets location with full title
1023
- path2.join(
1024
- process.cwd(),
1025
- "cypress/reports/assets",
1026
- testFileName,
1027
- `${fullTestTitle} -- ${testName} (failed).png`
1028
- ),
1029
- // Alternative: without full title path
1030
- path2.join(
1031
- process.cwd(),
1032
- "cypress/reports/assets",
1033
- testFileName,
1034
- `${testName} (failed).png`
1035
- ),
1036
- // Legacy cypress/screenshots location
1037
- path2.join(
1038
- process.cwd(),
1039
- "cypress/screenshots",
1040
- `${testFileName} -- ${testName} (failed).png`
1041
- )
1042
- ];
1043
- let screenshotFound = false;
1044
- for (const screenshotPath of screenshotPaths) {
1045
- console.log("[QAagentic] Looking for screenshot at:", screenshotPath);
1046
- if (fs2.existsSync(screenshotPath)) {
1047
- try {
1048
- const screenshotContent = fs2.readFileSync(screenshotPath);
1049
- const attachment = {
1050
- id: v4(),
1051
- name: "screenshot",
1052
- type: "image/png",
1053
- extension: "png",
1054
- content: screenshotContent.toString("base64"),
1055
- size: screenshotContent.length,
1056
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
1057
- };
1058
- testResult.attachments.push(attachment);
1059
- console.log("[QAagentic] Added screenshot attachment:", screenshotPath);
1060
- screenshotFound = true;
1061
- break;
1062
- } catch (err) {
1063
- console.warn("[QAagentic] Failed to read screenshot:", err);
1064
- }
1013
+ console.log("[QAagentic] Attaching screenshots to pending tests, count:", this.pendingTests.length);
1014
+ for (const { testResult, test } of this.pendingTests) {
1015
+ if (test.state !== "failed" || !test.invocationDetails?.relativeFile) {
1016
+ continue;
1017
+ }
1018
+ const testFileName = test.invocationDetails.relativeFile.replace(/\.ts$/, "");
1019
+ const testName = test.title[test.title.length - 1];
1020
+ const fullTestTitle = test.title.join(", ");
1021
+ const screenshotPaths = [
1022
+ // Mochawesome report assets location with full title
1023
+ path2.join(
1024
+ process.cwd(),
1025
+ "cypress/reports/assets",
1026
+ testFileName,
1027
+ `${fullTestTitle} -- ${testName} (failed).png`
1028
+ ),
1029
+ // Alternative: without full title path
1030
+ path2.join(
1031
+ process.cwd(),
1032
+ "cypress/reports/assets",
1033
+ testFileName,
1034
+ `${testName} (failed).png`
1035
+ ),
1036
+ // Legacy cypress/screenshots location
1037
+ path2.join(
1038
+ process.cwd(),
1039
+ "cypress/screenshots",
1040
+ `${testFileName} -- ${testName} (failed).png`
1041
+ )
1042
+ ];
1043
+ let screenshotFound = false;
1044
+ for (const screenshotPath of screenshotPaths) {
1045
+ if (fs2.existsSync(screenshotPath)) {
1046
+ try {
1047
+ const screenshotContent = fs2.readFileSync(screenshotPath);
1048
+ testResult.attachments.push({
1049
+ id: v4(),
1050
+ name: "screenshot",
1051
+ type: "image/png",
1052
+ extension: "png",
1053
+ content: screenshotContent.toString("base64"),
1054
+ size: screenshotContent.length,
1055
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
1056
+ });
1057
+ console.log("[QAagentic] Added screenshot for:", testName);
1058
+ screenshotFound = true;
1059
+ break;
1060
+ } catch (err) {
1061
+ console.warn("[QAagentic] Failed to read screenshot:", err);
1065
1062
  }
1066
1063
  }
1067
- if (!screenshotFound) {
1068
- console.log("[QAagentic] No screenshots found for test:", testName);
1069
- }
1064
+ }
1065
+ if (!screenshotFound) {
1066
+ console.log("[QAagentic] No screenshot found for:", testName);
1070
1067
  }
1071
1068
  }
1072
- this.failedTestResults = [];
1073
1069
  }
1074
1070
  async sendPendingTests() {
1075
1071
  console.log("[QAagentic] Sending", this.pendingTests.length, "pending tests to API");
1076
- for (const testResult of this.pendingTests) {
1072
+ for (const { testResult } of this.pendingTests) {
1077
1073
  await this.reporter.reportTest(testResult);
1078
1074
  }
1079
1075
  this.pendingTests = [];