testeranto 0.199.0 → 0.200.1

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.
Files changed (160) hide show
  1. package/bin/test_runner +0 -0
  2. package/bin/testeranto +0 -0
  3. package/bundle.js +5 -4
  4. package/cmd/test_runner/main.go +65 -0
  5. package/cmd/testeranto/main.go +37 -0
  6. package/dist/common/src/PM/main.js +126 -11
  7. package/dist/common/src/PM/pitonoRunner.js +54 -0
  8. package/dist/common/src/components/pure/TestPageView.js +180 -65
  9. package/dist/common/src/components/stateful/TestPage.js +50 -11
  10. package/dist/common/src/lib/abstractBase.test/index.js +1 -0
  11. package/dist/common/src/run.js +48 -82
  12. package/dist/common/src/{build.js → testeranto.js} +107 -55
  13. package/dist/common/src/utils/golingvuMetafile.js +116 -0
  14. package/dist/common/src/utils/logFiles.js +2 -1
  15. package/dist/common/src/utils/pitonoMetafile.js +67 -0
  16. package/dist/common/src/utils.js +40 -1
  17. package/dist/common/testeranto.config.js +23 -21
  18. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  19. package/dist/module/src/PM/main.js +126 -11
  20. package/dist/module/src/PM/pitonoRunner.js +47 -0
  21. package/dist/module/src/components/pure/TestPageView.js +180 -65
  22. package/dist/module/src/components/stateful/TestPage.js +50 -11
  23. package/dist/module/src/lib/abstractBase.test/index.js +1 -0
  24. package/dist/module/src/run.js +49 -45
  25. package/dist/module/src/{build.js → testeranto.js} +107 -55
  26. package/dist/module/src/utils/golingvuMetafile.js +109 -0
  27. package/dist/module/src/utils/logFiles.js +2 -1
  28. package/dist/module/src/utils/pitonoMetafile.js +60 -0
  29. package/dist/module/src/utils.js +40 -1
  30. package/dist/module/testeranto.config.js +23 -21
  31. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  32. package/dist/prebuild/App.js +81 -17
  33. package/dist/prebuild/testeranto.mjs +3249 -0
  34. package/dist/types/src/PM/main.d.ts +2 -0
  35. package/dist/types/src/PM/pitonoRunner.d.ts +7 -0
  36. package/dist/types/src/Types.d.ts +1 -1
  37. package/dist/types/src/run.d.ts +0 -1
  38. package/dist/types/src/utils/golingvuMetafile.d.ts +19 -0
  39. package/dist/types/src/utils/logFiles.d.ts +5 -1
  40. package/dist/types/src/utils/pitonoMetafile.d.ts +7 -0
  41. package/dist/types/src/utils.d.ts +5 -0
  42. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  43. package/docs/index.md +13 -13
  44. package/example/test_example.py +106 -0
  45. package/go.mod +3 -0
  46. package/package.json +2 -2
  47. package/pitono/__init__.py +54 -0
  48. package/pitono/base_given.py +131 -0
  49. package/pitono/base_suite.py +95 -0
  50. package/pitono/base_then.py +50 -0
  51. package/pitono/base_when.py +52 -0
  52. package/pitono/core_generator.py +110 -0
  53. package/pitono/pitono.egg-info/PKG-INFO +17 -0
  54. package/pitono/pitono.egg-info/SOURCES.txt +7 -0
  55. package/pitono/pitono.egg-info/dependency_links.txt +1 -0
  56. package/pitono/pitono.egg-info/entry_points.txt +2 -0
  57. package/pitono/pitono.egg-info/top_level.txt +1 -0
  58. package/pitono/pyproject.toml +26 -0
  59. package/pitono/setup.py +40 -0
  60. package/pitono/simple_adapter.py +24 -0
  61. package/pitono/types.py +78 -0
  62. package/sampleMetafile.json +56 -0
  63. package/src/PM/main.ts +146 -17
  64. package/src/PM/pitonoRunner.ts +49 -0
  65. package/src/Types.ts +1 -1
  66. package/src/components/pure/TestPageView.tsx +175 -8
  67. package/src/components/stateful/TestPage.tsx +57 -16
  68. package/src/core/types.go +36 -0
  69. package/src/golingvu/README.md +3 -0
  70. package/src/golingvu/base_given.go +76 -0
  71. package/src/golingvu/base_suite.go +39 -0
  72. package/src/golingvu/base_suite_test.go +197 -0
  73. package/src/golingvu/base_then.go +21 -0
  74. package/src/golingvu/base_when.go +21 -0
  75. package/src/golingvu/golingvu.go +179 -0
  76. package/src/golingvu/test_adapter.go +33 -0
  77. package/src/golingvu/types.go +86 -0
  78. package/src/lib/abstractBase.test/index.ts +1 -0
  79. package/src/pitono/README.md +3 -0
  80. package/src/run.ts +48 -48
  81. package/src/templates/frontpage.html +26 -17
  82. package/src/{build.ts → testeranto.ts} +128 -58
  83. package/src/utils/golingvuMetafile.ts +165 -0
  84. package/src/utils/logFiles.ts +2 -1
  85. package/src/utils/pitonoMetafile.ts +68 -0
  86. package/src/utils.ts +38 -1
  87. package/testeranto/App.js +81 -17
  88. package/testeranto/metafiles/golang/core.json +72 -0
  89. package/testeranto/metafiles/node/core.json +21 -459
  90. package/testeranto/metafiles/pure/core.json +18 -119
  91. package/testeranto/metafiles/web/core.json +37 -16797
  92. package/testeranto/reports/core/config.json +8 -40
  93. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/lint_errors.txt +6 -0
  94. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/prompt.txt +12 -1
  95. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/lint_errors.txt +2 -0
  96. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/prompt.txt +11 -1
  97. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/lint_errors.txt +2 -0
  98. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/prompt.txt +13 -3
  99. package/testeranto/reports/core/summary.json +9 -45
  100. package/testeranto.config.ts +25 -21
  101. package/tsc.log +46 -7
  102. package/dist/common/src/lib/mocks.test.js +0 -11
  103. package/dist/module/src/lib/mocks.test.js +0 -11
  104. package/dist/prebuild/ReportServer.mjs +0 -227
  105. package/dist/prebuild/build.mjs +0 -578
  106. package/dist/prebuild/mothership/index.mjs +0 -22
  107. package/dist/prebuild/run.mjs +0 -2290
  108. package/dist/tsconfig.tsbuildinfo +0 -1
  109. package/dist/types/src/lib/mocks.test.d.ts +0 -0
  110. package/src/lib/mocks.test.ts +0 -11
  111. package/testeranto/reports/core/src/Pure.test/pure/exit.log +0 -0
  112. package/testeranto/reports/core/src/Pure.test/pure/lint_errors.txt +0 -0
  113. package/testeranto/reports/core/src/Pure.test/pure/message.txt +0 -17
  114. package/testeranto/reports/core/src/Pure.test/pure/prompt.txt +0 -14
  115. package/testeranto/reports/core/src/Pure.test/pure/type_errors.txt +0 -66
  116. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/debug.log +0 -0
  117. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/error.log +0 -67
  118. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/exit.log +0 -1
  119. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/info.log +0 -2
  120. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/lint_errors.txt +0 -0
  121. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/message.txt +0 -17
  122. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/prompt.txt +0 -16
  123. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/tests.json +0 -68
  124. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/type_errors.txt +0 -56
  125. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/warn.log +0 -0
  126. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/debug.log +0 -0
  127. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/error.log +0 -22
  128. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/exit.log +0 -1
  129. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/info.log +0 -2
  130. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/lint_errors.txt +0 -13
  131. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/message.txt +0 -17
  132. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/prompt.txt +0 -16
  133. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/tests.json +0 -88
  134. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/type_errors.txt +0 -45
  135. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/warn.log +0 -0
  136. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/debug.log +0 -0
  137. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/error.log +0 -0
  138. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/exit.log +0 -1
  139. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/info.log +0 -2
  140. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/lint_errors.txt +0 -47
  141. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/message.txt +0 -17
  142. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/prompt.txt +0 -17
  143. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/tests.json +0 -57
  144. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/type_errors.txt +0 -99
  145. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/warn.log +0 -0
  146. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/exit.log +0 -1
  147. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/lint_errors.txt +0 -0
  148. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/message.txt +0 -17
  149. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/prompt.txt +0 -17
  150. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/stderr.log +0 -18
  151. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/stdout.log +0 -0
  152. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/type_errors.txt +0 -32
  153. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/exit.log +0 -1
  154. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/lint_errors.txt +0 -15
  155. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/message.txt +0 -17
  156. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/prompt.txt +0 -17
  157. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stderr.log +0 -66
  158. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stdout.log +0 -10
  159. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/type_errors.txt +0 -47
  160. /package/dist/types/src/{build.d.ts → testeranto.d.ts} +0 -0
@@ -27789,7 +27789,8 @@ Please change the parent <Route path="${parentPath}"> to <Route path="${parentPa
27789
27789
  LINT_ERRORS: "lint_errors.txt",
27790
27790
  EXIT: "exit.log",
27791
27791
  MESSAGE: "message.txt",
27792
- PROMPT: "prompt.txt"
27792
+ PROMPT: "prompt.txt",
27793
+ BUILD: "build.json"
27793
27794
  };
27794
27795
  var RUNTIME_SPECIFIC_LOGS = {
27795
27796
  node: {
@@ -33973,9 +33974,39 @@ Please change the parent <Route path="${parentPath}"> to <Route path="${parentPa
33973
33974
  const [expandedSections, setExpandedSections] = (0, import_react81.useState)({
33974
33975
  standardLogs: true,
33975
33976
  runtimeLogs: true,
33976
- sourceFiles: true
33977
+ sourceFiles: true,
33978
+ buildErrors: true
33977
33979
  });
33978
33980
  const [isNavbarCollapsed, setIsNavbarCollapsed] = (0, import_react81.useState)(false);
33981
+ const [buildErrors, setBuildErrors] = (0, import_react81.useState)({ errors: [], warnings: [] });
33982
+ (0, import_react81.useEffect)(() => {
33983
+ const metafile = logs.build_logs?.metafile;
33984
+ if (!metafile) {
33985
+ setBuildErrors({ errors: [], warnings: [] });
33986
+ return;
33987
+ }
33988
+ const sourceFilesSet = /* @__PURE__ */ new Set();
33989
+ Object.entries(metafile.outputs || {}).forEach(([outputPath, output]) => {
33990
+ const normalizedTestName = testName.replace(/\\/g, "/");
33991
+ const normalizedEntryPoint = output.entryPoint ? output.entryPoint.replace(/\\/g, "/") : "";
33992
+ if (normalizedEntryPoint.includes(normalizedTestName)) {
33993
+ Object.keys(output.inputs || {}).forEach((inputPath) => {
33994
+ sourceFilesSet.add(inputPath.replace(/\\/g, "/"));
33995
+ });
33996
+ }
33997
+ });
33998
+ const filteredErrors = (logs.build_logs?.errors || []).filter((err) => {
33999
+ if (!err.location || !err.location.file)
34000
+ return false;
34001
+ return sourceFilesSet.has(err.location.file.replace(/\\/g, "/"));
34002
+ });
34003
+ const filteredWarnings = (logs.build_logs?.warnings || []).filter((warn) => {
34004
+ if (!warn.location || !warn.location.file)
34005
+ return false;
34006
+ return sourceFilesSet.has(warn.location.file.replace(/\\/g, "/"));
34007
+ });
34008
+ setBuildErrors({ errors: filteredErrors, warnings: filteredWarnings });
34009
+ }, [logs, testName]);
33979
34010
  (0, import_react81.useEffect)(() => {
33980
34011
  if (typeof logs["message.txt"] === "string" && logs["message.txt"].trim()) {
33981
34012
  setCustomMessage(logs["message.txt"]);
@@ -34092,7 +34123,7 @@ Please change the parent <Route path="${parentPath}"> to <Route path="${parentPa
34092
34123
  },
34093
34124
  artifact.split("/").pop()
34094
34125
  ))))))
34095
- ))))));
34126
+ ))))), (buildErrors.errors.length > 0 || buildErrors.warnings.length > 0) && /* @__PURE__ */ import_react81.default.createElement("div", { className: "mb-4 card border-danger" }, /* @__PURE__ */ import_react81.default.createElement("div", { className: "card-header bg-danger text-white" }, /* @__PURE__ */ import_react81.default.createElement("h4", null, "Build Errors and Warnings")), /* @__PURE__ */ import_react81.default.createElement("div", { className: "card-body" }, buildErrors.errors.length > 0 && /* @__PURE__ */ import_react81.default.createElement(import_react81.default.Fragment, null, /* @__PURE__ */ import_react81.default.createElement("h5", null, "Errors"), /* @__PURE__ */ import_react81.default.createElement("ul", null, buildErrors.errors.map((error, idx) => /* @__PURE__ */ import_react81.default.createElement("li", { key: `build-error-${idx}` }, /* @__PURE__ */ import_react81.default.createElement("strong", null, error.text), error.location && /* @__PURE__ */ import_react81.default.createElement("div", null, "File: ", error.location.file, " Line: ", error.location.line, " Column: ", error.location.column))))), buildErrors.warnings.length > 0 && /* @__PURE__ */ import_react81.default.createElement(import_react81.default.Fragment, null, /* @__PURE__ */ import_react81.default.createElement("h5", null, "Warnings"), /* @__PURE__ */ import_react81.default.createElement("ul", null, buildErrors.warnings.map((warning6, idx) => /* @__PURE__ */ import_react81.default.createElement("li", { key: `build-warning-${idx}` }, /* @__PURE__ */ import_react81.default.createElement("strong", null, warning6.text), warning6.location && /* @__PURE__ */ import_react81.default.createElement("div", null, "File: ", warning6.location.file, " Line: ", warning6.location.line, " Column: ", warning6.location.column))))))));
34096
34127
  };
34097
34128
  console.log("Rendering TestPageView with logs:", {
34098
34129
  logKeys: Object.keys(logs),
@@ -34215,8 +34246,8 @@ Please change the parent <Route path="${parentPath}"> to <Route path="${parentPa
34215
34246
  /* @__PURE__ */ import_react81.default.createElement("i", { className: `bi bi-chevron-${expandedSections.standardLogs ? "down" : "right"} me-1` }),
34216
34247
  /* @__PURE__ */ import_react81.default.createElement("span", null, "Standard Logs")
34217
34248
  ), expandedSections.standardLogs && /* @__PURE__ */ import_react81.default.createElement("div", null, Object.values(STANDARD_LOGS).map((logName) => {
34218
- const logContent = logs[logName];
34219
- const exists = logContent !== void 0 && (typeof logContent === "string" && logContent.trim() !== "" || typeof logContent === "object" && Object.keys(logContent).length > 0);
34249
+ const logContent = logs ? logs[logName] : void 0;
34250
+ const exists = logContent !== void 0 && (typeof logContent === "string" && logContent.trim() !== "" || typeof logContent === "object" && logContent !== null && Object.keys(logContent).length > 0);
34220
34251
  return /* @__PURE__ */ import_react81.default.createElement(
34221
34252
  FileTreeItem,
34222
34253
  {
@@ -34246,7 +34277,7 @@ This file was not generated during the test run.`,
34246
34277
  }
34247
34278
  }
34248
34279
  );
34249
- }))), Object.values(RUNTIME_SPECIFIC_LOGS[runtime]).length > 0 && /* @__PURE__ */ import_react81.default.createElement("div", { className: "p-2" }, /* @__PURE__ */ import_react81.default.createElement(
34280
+ }))), runtime && RUNTIME_SPECIFIC_LOGS[runtime] && Object.values(RUNTIME_SPECIFIC_LOGS[runtime]).length > 0 && /* @__PURE__ */ import_react81.default.createElement("div", { className: "p-2" }, /* @__PURE__ */ import_react81.default.createElement(
34250
34281
  "div",
34251
34282
  {
34252
34283
  className: "d-flex align-items-center text-muted mb-1",
@@ -34256,8 +34287,8 @@ This file was not generated during the test run.`,
34256
34287
  /* @__PURE__ */ import_react81.default.createElement("i", { className: `bi bi-chevron-${expandedSections.runtimeLogs ? "down" : "right"} me-1` }),
34257
34288
  /* @__PURE__ */ import_react81.default.createElement("span", null, "Runtime Logs")
34258
34289
  ), expandedSections.runtimeLogs && /* @__PURE__ */ import_react81.default.createElement("div", null, Object.values(RUNTIME_SPECIFIC_LOGS[runtime]).map((logName) => {
34259
- const logContent = logs[logName];
34260
- const exists = logContent !== void 0 && (typeof logContent === "string" && logContent.trim() !== "" || typeof logContent === "object" && Object.keys(logContent).length > 0);
34290
+ const logContent = logs ? logs[logName] : void 0;
34291
+ const exists = logContent !== void 0 && (typeof logContent === "string" && logContent.trim() !== "" || typeof logContent === "object" && logContent !== null && Object.keys(logContent).length > 0);
34261
34292
  return /* @__PURE__ */ import_react81.default.createElement(
34262
34293
  FileTreeItem,
34263
34294
  {
@@ -34287,7 +34318,7 @@ This file was not generated during the test run.`,
34287
34318
  }
34288
34319
  }
34289
34320
  );
34290
- }))), logs.source_files && /* @__PURE__ */ import_react81.default.createElement("div", { className: "p-2" }, /* @__PURE__ */ import_react81.default.createElement(
34321
+ }))), logs && logs.source_files && /* @__PURE__ */ import_react81.default.createElement("div", { className: "p-2" }, /* @__PURE__ */ import_react81.default.createElement(
34291
34322
  "div",
34292
34323
  {
34293
34324
  className: "d-flex align-items-center text-muted mb-1",
@@ -34353,7 +34384,14 @@ This file was not generated during the test run.`,
34353
34384
  className: "btn btn-sm btn-outline-primary"
34354
34385
  },
34355
34386
  "Open Full Size"
34356
- ))), selectedFile?.path.endsWith(".json") && !selectedFile.path.endsWith("tests.json") && /* @__PURE__ */ import_react81.default.createElement("pre", { className: "bg-light p-2 small" }, /* @__PURE__ */ import_react81.default.createElement("code", null, selectedFile.content)), selectedFile?.path.includes("source_files") && /* @__PURE__ */ import_react81.default.createElement("div", null, /* @__PURE__ */ import_react81.default.createElement("div", { className: "mb-2 small text-muted" }, /* @__PURE__ */ import_react81.default.createElement("i", { className: "bi bi-file-earmark-text me-1" }), selectedFile.path.split("/").pop()), /* @__PURE__ */ import_react81.default.createElement(
34387
+ ))), selectedFile?.path.endsWith("build.json") && /* @__PURE__ */ import_react81.default.createElement("div", null, /* @__PURE__ */ import_react81.default.createElement("h5", null, "Build Information"), (() => {
34388
+ try {
34389
+ const buildData = JSON.parse(selectedFile.content);
34390
+ return /* @__PURE__ */ import_react81.default.createElement(import_react81.default.Fragment, null, buildData.errors?.length > 0 && /* @__PURE__ */ import_react81.default.createElement("div", { className: "mb-3" }, /* @__PURE__ */ import_react81.default.createElement("h6", { className: "text-danger" }, "Errors (", buildData.errors.length, ")"), /* @__PURE__ */ import_react81.default.createElement("ul", { className: "list-unstyled" }, buildData.errors.map((error, index2) => /* @__PURE__ */ import_react81.default.createElement("li", { key: index2, className: "mb-2 p-2 bg-light rounded" }, /* @__PURE__ */ import_react81.default.createElement("div", { className: "text-danger fw-bold" }, error.text), error.location && /* @__PURE__ */ import_react81.default.createElement("div", { className: "small text-muted" }, "File: ", error.location.file, "Line: ", error.location.line, "Column: ", error.location.column), error.notes && error.notes.length > 0 && /* @__PURE__ */ import_react81.default.createElement("div", { className: "small" }, "Notes:", /* @__PURE__ */ import_react81.default.createElement("ul", null, error.notes.map((note, noteIndex) => /* @__PURE__ */ import_react81.default.createElement("li", { key: noteIndex }, note.text)))))))), buildData.warnings?.length > 0 && /* @__PURE__ */ import_react81.default.createElement("div", { className: "mb-3" }, /* @__PURE__ */ import_react81.default.createElement("h6", { className: "text-warning" }, "Warnings (", buildData.warnings.length, ")"), /* @__PURE__ */ import_react81.default.createElement("ul", { className: "list-unstyled" }, buildData.warnings.map((warning6, index2) => /* @__PURE__ */ import_react81.default.createElement("li", { key: index2, className: "mb-2 p-2 bg-light rounded" }, /* @__PURE__ */ import_react81.default.createElement("div", { className: "text-warning fw-bold" }, warning6.text), warning6.location && /* @__PURE__ */ import_react81.default.createElement("div", { className: "small text-muted" }, "File: ", warning6.location.file, "Line: ", warning6.location.line, "Column: ", warning6.location.column), warning6.notes && warning6.notes.length > 0 && /* @__PURE__ */ import_react81.default.createElement("div", { className: "small" }, "Notes:", /* @__PURE__ */ import_react81.default.createElement("ul", null, warning6.notes.map((note, noteIndex) => /* @__PURE__ */ import_react81.default.createElement("li", { key: noteIndex }, note.text)))))))), (!buildData.errors || buildData.errors.length === 0) && (!buildData.warnings || buildData.warnings.length === 0) && /* @__PURE__ */ import_react81.default.createElement("div", { className: "alert alert-success" }, "No build errors or warnings"));
34391
+ } catch (e) {
34392
+ return /* @__PURE__ */ import_react81.default.createElement("div", { className: "alert alert-danger" }, "Error parsing build.json: ", e.message);
34393
+ }
34394
+ })()), selectedFile?.path.endsWith(".json") && !selectedFile.path.endsWith("tests.json") && !selectedFile.path.endsWith("build.json") && /* @__PURE__ */ import_react81.default.createElement("pre", { className: "bg-light p-2 small" }, /* @__PURE__ */ import_react81.default.createElement("code", null, selectedFile.content)), selectedFile?.path.includes("source_files") && /* @__PURE__ */ import_react81.default.createElement("div", null, /* @__PURE__ */ import_react81.default.createElement("div", { className: "mb-2 small text-muted" }, /* @__PURE__ */ import_react81.default.createElement("i", { className: "bi bi-file-earmark-text me-1" }), selectedFile.path.split("/").pop()), /* @__PURE__ */ import_react81.default.createElement(
34357
34395
  Button_default2,
34358
34396
  {
34359
34397
  variant: "outline-primary",
@@ -34448,6 +34486,7 @@ This file was not generated during the test run.`,
34448
34486
  const receivedLogs = await testResponse.logs;
34449
34487
  console.log("Received logs:", Object.keys(receivedLogs));
34450
34488
  let sourceFiles = {};
34489
+ let buildLogs = {};
34451
34490
  if (metafileRes.ok) {
34452
34491
  const metafile = await metafileRes.json();
34453
34492
  if (metafile?.metafile?.outputs) {
@@ -34457,19 +34496,22 @@ This file was not generated during the test run.`,
34457
34496
  const normalizedTestPath = testPath.replace(/\./g, "_");
34458
34497
  const testFileName = testPath.split("/").pop();
34459
34498
  const testBaseName = testFileName?.split(".").slice(0, -1).join(".");
34460
- return output.entryPoint === testEntryPoint || outputPath.includes(normalizedTestPath) || testBaseName && outputPath.includes(testBaseName);
34499
+ const normalizedOutputPath = outputPath.replace(/\//g, "_");
34500
+ return output.entryPoint === testEntryPoint || outputPath.includes(normalizedTestPath) || normalizedOutputPath.includes(normalizedTestPath) || testBaseName && outputPath.includes(testBaseName);
34461
34501
  });
34462
34502
  matchingOutputs.forEach(([_2, output]) => {
34463
34503
  Object.keys(output.inputs).forEach((inputPath) => {
34464
- if ((inputPath.endsWith(".ts") || inputPath.endsWith(".tsx")) && !inputPath.includes("node_modules")) {
34504
+ if ((inputPath.endsWith(".ts") || inputPath.endsWith(".tsx") || inputPath.endsWith(".go")) && !inputPath.includes("node_modules")) {
34465
34505
  const inputDetails = metafile.metafile.inputs[inputPath];
34466
34506
  if (inputDetails) {
34467
34507
  tsSources.add(inputPath);
34468
- inputDetails.imports.forEach((imp) => {
34469
- if ((imp.path.endsWith(".ts") || imp.path.endsWith(".tsx")) && !imp.path.includes("node_modules") && !imp.external) {
34470
- tsSources.add(imp.path);
34471
- }
34472
- });
34508
+ if (inputPath.endsWith(".ts") || inputPath.endsWith(".tsx")) {
34509
+ inputDetails.imports.forEach((imp) => {
34510
+ if ((imp.path.endsWith(".ts") || imp.path.endsWith(".tsx")) && !imp.path.includes("node_modules") && !imp.external) {
34511
+ tsSources.add(imp.path);
34512
+ }
34513
+ });
34514
+ }
34473
34515
  }
34474
34516
  }
34475
34517
  });
@@ -34513,10 +34555,13 @@ This file was not generated during the test run.`,
34513
34555
  });
34514
34556
  });
34515
34557
  sourceFiles = fileTree;
34558
+ buildLogs = metafile;
34516
34559
  }
34517
34560
  }
34518
34561
  receivedLogs["source_files"] = sourceFiles;
34562
+ receivedLogs["build_logs"] = buildLogs;
34519
34563
  console.log("Source files structure:", sourceFiles);
34564
+ console.log("Build logs:", buildLogs);
34520
34565
  if (receivedLogs["tests.json"]) {
34521
34566
  console.log("tests.json content type:", typeof receivedLogs["tests.json"]);
34522
34567
  try {
@@ -34547,6 +34592,25 @@ This file was not generated during the test run.`,
34547
34592
  } catch (err) {
34548
34593
  console.error("Failed to load summary:", err);
34549
34594
  }
34595
+ try {
34596
+ const pathParts2 = testPath.split("/");
34597
+ const fileName = pathParts2.pop();
34598
+ const directoryPath = pathParts2.join("/");
34599
+ const buildUrl = `/reports/${projectName}/${directoryPath}/${runtime}/build.json`;
34600
+ console.log(`Fetching build.json from: ${buildUrl}`);
34601
+ const buildResponse = await fetch(buildUrl);
34602
+ if (buildResponse.ok) {
34603
+ const buildData = await buildResponse.json();
34604
+ console.log("Build data received:", buildData);
34605
+ receivedLogs["build.json"] = buildData;
34606
+ } else {
34607
+ console.log("Build.json not found or not accessible, status:", buildResponse.status);
34608
+ receivedLogs["build.json"] = { errors: [], warnings: [] };
34609
+ }
34610
+ } catch (err) {
34611
+ console.log("No build.json found or error fetching it:", err);
34612
+ receivedLogs["build.json"] = { errors: [], warnings: [] };
34613
+ }
34550
34614
  } catch (err) {
34551
34615
  setError(err instanceof Error ? err.message : "Unknown error");
34552
34616
  setTestsExist(false);