testeranto 0.125.2 → 0.128.0

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 (98) hide show
  1. package/dist/common/src/Node.js +5 -0
  2. package/dist/common/src/PM/base.js +6 -0
  3. package/dist/common/src/PM/index.js +0 -1
  4. package/dist/common/src/PM/main.js +75 -20
  5. package/dist/common/src/PM/web.js +1 -1
  6. package/dist/common/src/ReportServer.js +39 -2
  7. package/dist/common/src/build.js +41 -6
  8. package/dist/common/src/lib/abstractBase.js +22 -107
  9. package/dist/common/src/lib/basebuilder.js +20 -21
  10. package/dist/common/src/lib/classBuilder.js +12 -1
  11. package/dist/common/src/lib/core.js +1 -8
  12. package/dist/common/src/lib/index.js +2 -5
  13. package/dist/common/src/lib/pmProxy.js +294 -0
  14. package/dist/common/testeranto.config.js +43 -34
  15. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  16. package/dist/module/src/Node.js +5 -0
  17. package/dist/module/src/PM/base.js +6 -0
  18. package/dist/module/src/PM/index.js +0 -1
  19. package/dist/module/src/PM/main.js +75 -20
  20. package/dist/module/src/PM/web.js +1 -1
  21. package/dist/module/src/Project.js +6 -6
  22. package/dist/module/src/ReportClient.js +3 -3
  23. package/dist/module/src/ReportServer.js +39 -2
  24. package/dist/module/src/build.js +41 -6
  25. package/dist/module/src/lib/abstractBase.js +22 -107
  26. package/dist/module/src/lib/basebuilder.js +20 -21
  27. package/dist/module/src/lib/classBuilder.js +12 -1
  28. package/dist/module/src/lib/core.js +1 -8
  29. package/dist/module/src/lib/index.js +2 -5
  30. package/dist/module/src/lib/pmProxy.js +285 -0
  31. package/dist/module/testeranto.config.js +40 -34
  32. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  33. package/dist/prebuild/Project.css +1 -26
  34. package/dist/prebuild/Project.js +4 -4
  35. package/dist/prebuild/ReportClient.css +1 -26
  36. package/dist/prebuild/ReportClient.js +3 -3
  37. package/dist/prebuild/ReportServer.mjs +1 -2
  38. package/dist/prebuild/TestReport.css +1 -26
  39. package/dist/prebuild/build.mjs +42 -7
  40. package/dist/prebuild/run.mjs +82 -18
  41. package/dist/tsconfig.tsbuildinfo +1 -1
  42. package/dist/types/src/PM/web.d.ts +1 -1
  43. package/dist/types/src/Types.d.ts +2 -1
  44. package/dist/types/src/lib/abstractBase.d.ts +4 -6
  45. package/dist/types/src/lib/index.d.ts +1 -1
  46. package/dist/types/src/lib/pmProxy.d.ts +7 -0
  47. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  48. package/package.json +14 -6
  49. package/src/Init.ts +1 -0
  50. package/src/Node.ts +6 -0
  51. package/src/PM/base.ts +8 -0
  52. package/src/PM/index.ts +2 -7
  53. package/src/PM/main.ts +112 -23
  54. package/src/PM/web.ts +3 -3
  55. package/src/Project.tsx +6 -6
  56. package/src/ReportClient.tsx +3 -3
  57. package/src/ReportServer.ts +43 -2
  58. package/src/Types.ts +3 -2
  59. package/src/build.ts +47 -6
  60. package/src/lib/abstractBase.ts +45 -184
  61. package/src/lib/basebuilder.ts +25 -28
  62. package/src/lib/classBuilder.ts +13 -2
  63. package/src/lib/core.ts +10 -14
  64. package/src/lib/index.ts +6 -29
  65. package/src/lib/pmProxy.ts +366 -0
  66. package/testeranto/bundles/node/{react → redux}/metafile.json +186 -254
  67. package/testeranto/bundles/pure/redux/metafile.json +554 -0
  68. package/testeranto/bundles/web/redux/metafile.json +504 -0
  69. package/testeranto/bundles/web/{react/src/SubPackages/react-test-renderer/component → redux}/test/web.html +1 -1
  70. package/testeranto/index.html +1 -1
  71. package/testeranto/reports/{react → redux}/config.json +26 -10
  72. package/testeranto/reports/{react → redux}/index.html +5 -5
  73. package/testeranto/reports/redux/summary.json +20 -0
  74. package/testeranto.config.ts +46 -34
  75. package/tsc.log +3 -1
  76. package/testeranto/bundles/node/react/src/SubPackages/react-test-renderer/component/test/node.mjs +0 -24687
  77. package/testeranto/bundles/pure/react/metafile.json +0 -8
  78. package/testeranto/bundles/pure/react/src/SubPackages/react-test-renderer/component/test/pure.mjs +0 -24625
  79. package/testeranto/bundles/web/react/metafile.json +0 -8
  80. package/testeranto/bundles/web/react/src/SubPackages/react-test-renderer/component/test/web.mjs +0 -21290
  81. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/node/node/console_log.txt +0 -0
  82. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/pure/pure/bdd_errors.txt +0 -1
  83. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/pure/pure/featurePrompt.txt +0 -0
  84. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/pure/pure/lint_errors.json +0 -3381
  85. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/pure/pure/littleBoard.html +0 -20
  86. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/pure/pure/log.txt +0 -40
  87. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/pure/pure/prompt.txt +0 -24
  88. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/pure/pure/tests.json +0 -132
  89. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/pure/pure/type_errors.txt +0 -17
  90. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/web/web/bdd_errors.txt +0 -1
  91. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/web/web/console_log.txt +0 -1
  92. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/web/web/lint_errors.json +0 -2947
  93. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/web/web/littleBoard.html +0 -20
  94. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/web/web/log.txt +0 -40
  95. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/web/web/prompt.txt +0 -23
  96. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/web/web/tests.json +0 -132
  97. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/web/web/type_errors.txt +0 -18
  98. package/testeranto/reports/react/summary.json +0 -8
@@ -2030,10 +2030,6 @@ progress {
2030
2030
  display: block;
2031
2031
  padding: 0;
2032
2032
  }
2033
- .form-control::-moz-placeholder {
2034
- color: var(--bs-secondary-color);
2035
- opacity: 1;
2036
- }
2037
2033
  .form-control::placeholder {
2038
2034
  color: var(--bs-secondary-color);
2039
2035
  opacity: 1;
@@ -2513,19 +2509,10 @@ textarea.form-control-lg {
2513
2509
  .form-floating > .form-control-plaintext {
2514
2510
  padding: 1rem .75rem;
2515
2511
  }
2516
- .form-floating > .form-control-plaintext::-moz-placeholder,
2517
- .form-floating > .form-control::-moz-placeholder {
2518
- color: transparent;
2519
- }
2520
2512
  .form-floating > .form-control-plaintext::placeholder,
2521
2513
  .form-floating > .form-control::placeholder {
2522
2514
  color: transparent;
2523
2515
  }
2524
- .form-floating > .form-control-plaintext:not(:-moz-placeholder),
2525
- .form-floating > .form-control:not(:-moz-placeholder) {
2526
- padding-top: 1.625rem;
2527
- padding-bottom: .625rem;
2528
- }
2529
2516
  .form-floating > .form-control-plaintext:focus,
2530
2517
  .form-floating > .form-control-plaintext:not(:placeholder-shown),
2531
2518
  .form-floating > .form-control:focus,
@@ -2543,9 +2530,6 @@ textarea.form-control-lg {
2543
2530
  padding-bottom: .625rem;
2544
2531
  padding-left: .75rem;
2545
2532
  }
2546
- .form-floating > .form-control:not(:-moz-placeholder) ~ label {
2547
- transform: scale(.85) translateY(-.5rem) translateX(.15rem);
2548
- }
2549
2533
  .form-floating > .form-control-plaintext ~ label,
2550
2534
  .form-floating > .form-control:focus ~ label,
2551
2535
  .form-floating > .form-control:not(:placeholder-shown) ~ label,
@@ -2555,15 +2539,6 @@ textarea.form-control-lg {
2555
2539
  .form-floating > .form-control:-webkit-autofill ~ label {
2556
2540
  transform: scale(.85) translateY(-.5rem) translateX(.15rem);
2557
2541
  }
2558
- .form-floating > textarea:not(:-moz-placeholder) ~ label::after {
2559
- position: absolute;
2560
- inset: 1rem 0.375rem;
2561
- z-index: -1;
2562
- height: 1.5em;
2563
- content: "";
2564
- background-color: var(--bs-body-bg);
2565
- border-radius: var(--bs-border-radius);
2566
- }
2567
2542
  .form-floating > textarea:focus ~ label::after,
2568
2543
  .form-floating > textarea:not(:placeholder-shown) ~ label::after {
2569
2544
  position: absolute;
@@ -11360,7 +11335,7 @@ footer {
11360
11335
 
11361
11336
  bootstrap/dist/css/bootstrap.min.css:
11362
11337
  (*!
11363
- * Bootstrap v5.3.4 (https://getbootstrap.com/)
11338
+ * Bootstrap v5.3.5 (https://getbootstrap.com/)
11364
11339
  * Copyright 2011-2025 The Bootstrap Authors
11365
11340
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
11366
11341
  *)
@@ -24539,8 +24539,8 @@
24539
24539
  const x = projects.map(async (p) => {
24540
24540
  return [
24541
24541
  p,
24542
- await (await fetch(`/kokomoBay/testeranto/reports/${p}/config.json`)).json(),
24543
- await (await fetch(`/kokomoBay/testeranto/reports/${p}/summary.json`)).json()
24542
+ await (await fetch(`./reports/${p}/config.json`)).json(),
24543
+ await (await fetch(`./reports/${p}/summary.json`)).json()
24544
24544
  ];
24545
24545
  });
24546
24546
  Promise.all(x).then((v) => {
@@ -24563,7 +24563,7 @@
24563
24563
  return /* @__PURE__ */ import_react3.default.createElement(import_react3.default.Fragment, null, /* @__PURE__ */ import_react3.default.createElement("tr", null, /* @__PURE__ */ import_react3.default.createElement("th", null, s[0])), ...s[1].tests.map((t) => {
24564
24564
  const x = `${s[0]}/${t[0].split(".").slice(0, -1).join(".")}/${t[1]}`;
24565
24565
  const y = s[2][t[0]];
24566
- return /* @__PURE__ */ import_react3.default.createElement("tr", null, /* @__PURE__ */ import_react3.default.createElement("td", null, t[0]), /* @__PURE__ */ import_react3.default.createElement("td", null, t[1]), /* @__PURE__ */ import_react3.default.createElement("td", null, /* @__PURE__ */ import_react3.default.createElement("a", { href: `/kokomoBay/testeranto/reports/${x}/littleBoard.html` }, y.runTimeError)), /* @__PURE__ */ import_react3.default.createElement("td", null, /* @__PURE__ */ import_react3.default.createElement("a", { href: `/kokomoBay/testeranto/reports/${x}/lint_errors.json` }, y.staticErrors)), /* @__PURE__ */ import_react3.default.createElement("td", null, /* @__PURE__ */ import_react3.default.createElement("a", { href: `/kokomoBay/testeranto/reports/${x}/type_errors.txt` }, y.typeErrors)), /* @__PURE__ */ import_react3.default.createElement("td", null, /* @__PURE__ */ import_react3.default.createElement("pre", null, s[2][t[0]].prompt)));
24566
+ return /* @__PURE__ */ import_react3.default.createElement("tr", null, /* @__PURE__ */ import_react3.default.createElement("td", null, t[0]), /* @__PURE__ */ import_react3.default.createElement("td", null, t[1]), /* @__PURE__ */ import_react3.default.createElement("td", null, /* @__PURE__ */ import_react3.default.createElement("a", { href: `./reports/${x}/index.html` }, y.runTimeError)), /* @__PURE__ */ import_react3.default.createElement("td", null, /* @__PURE__ */ import_react3.default.createElement("a", { href: `./reports/${x}/lint_errors.json` }, y.staticErrors)), /* @__PURE__ */ import_react3.default.createElement("td", null, /* @__PURE__ */ import_react3.default.createElement("a", { href: `./reports/${x}/type_errors.txt` }, y.typeErrors)), /* @__PURE__ */ import_react3.default.createElement("td", null, /* @__PURE__ */ import_react3.default.createElement("pre", null, s[2][t[0]].prompt)));
24567
24567
  }));
24568
24568
  }))), /* @__PURE__ */ import_react3.default.createElement(Footer, null));
24569
24569
  };
@@ -24573,7 +24573,7 @@
24573
24573
  import_client.default.createRoot(elem).render(import_react3.default.createElement(BigBoard, {}));
24574
24574
  }
24575
24575
  });
24576
- console.log("hello BigBoard!");
24576
+ console.log("hello Project!");
24577
24577
  })();
24578
24578
  /*! Bundled license information:
24579
24579
 
@@ -2030,10 +2030,6 @@ progress {
2030
2030
  display: block;
2031
2031
  padding: 0;
2032
2032
  }
2033
- .form-control::-moz-placeholder {
2034
- color: var(--bs-secondary-color);
2035
- opacity: 1;
2036
- }
2037
2033
  .form-control::placeholder {
2038
2034
  color: var(--bs-secondary-color);
2039
2035
  opacity: 1;
@@ -2513,19 +2509,10 @@ textarea.form-control-lg {
2513
2509
  .form-floating > .form-control-plaintext {
2514
2510
  padding: 1rem .75rem;
2515
2511
  }
2516
- .form-floating > .form-control-plaintext::-moz-placeholder,
2517
- .form-floating > .form-control::-moz-placeholder {
2518
- color: transparent;
2519
- }
2520
2512
  .form-floating > .form-control-plaintext::placeholder,
2521
2513
  .form-floating > .form-control::placeholder {
2522
2514
  color: transparent;
2523
2515
  }
2524
- .form-floating > .form-control-plaintext:not(:-moz-placeholder),
2525
- .form-floating > .form-control:not(:-moz-placeholder) {
2526
- padding-top: 1.625rem;
2527
- padding-bottom: .625rem;
2528
- }
2529
2516
  .form-floating > .form-control-plaintext:focus,
2530
2517
  .form-floating > .form-control-plaintext:not(:placeholder-shown),
2531
2518
  .form-floating > .form-control:focus,
@@ -2543,9 +2530,6 @@ textarea.form-control-lg {
2543
2530
  padding-bottom: .625rem;
2544
2531
  padding-left: .75rem;
2545
2532
  }
2546
- .form-floating > .form-control:not(:-moz-placeholder) ~ label {
2547
- transform: scale(.85) translateY(-.5rem) translateX(.15rem);
2548
- }
2549
2533
  .form-floating > .form-control-plaintext ~ label,
2550
2534
  .form-floating > .form-control:focus ~ label,
2551
2535
  .form-floating > .form-control:not(:placeholder-shown) ~ label,
@@ -2555,15 +2539,6 @@ textarea.form-control-lg {
2555
2539
  .form-floating > .form-control:-webkit-autofill ~ label {
2556
2540
  transform: scale(.85) translateY(-.5rem) translateX(.15rem);
2557
2541
  }
2558
- .form-floating > textarea:not(:-moz-placeholder) ~ label::after {
2559
- position: absolute;
2560
- inset: 1rem 0.375rem;
2561
- z-index: -1;
2562
- height: 1.5em;
2563
- content: "";
2564
- background-color: var(--bs-body-bg);
2565
- border-radius: var(--bs-border-radius);
2566
- }
2567
2542
  .form-floating > textarea:focus ~ label::after,
2568
2543
  .form-floating > textarea:not(:placeholder-shown) ~ label::after {
2569
2544
  position: absolute;
@@ -11360,7 +11335,7 @@ footer {
11360
11335
 
11361
11336
  bootstrap/dist/css/bootstrap.min.css:
11362
11337
  (*!
11363
- * Bootstrap v5.3.4 (https://getbootstrap.com/)
11338
+ * Bootstrap v5.3.5 (https://getbootstrap.com/)
11364
11339
  * Copyright 2011-2025 The Bootstrap Authors
11365
11340
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
11366
11341
  *)
@@ -24532,7 +24532,7 @@
24532
24532
  const [configs, setConfigs] = (0, import_react3.useState)();
24533
24533
  (0, import_react3.useEffect)(() => {
24534
24534
  (async () => {
24535
- fetch(`/kokomoBay/testeranto/reports/${window.location.pathname.split("/").pop()}/config.json`).then((response) => response.json()).then((json) => {
24535
+ fetch(`./reports/${window.location.pathname.split("/").pop()}/config.json`).then((response) => response.json()).then((json) => {
24536
24536
  setConfigs(json);
24537
24537
  }).catch((error) => console.error(error));
24538
24538
  })();
@@ -24540,7 +24540,7 @@
24540
24540
  const [bigBoard, setBigBoard] = (0, import_react3.useState)({});
24541
24541
  (0, import_react3.useEffect)(() => {
24542
24542
  (async () => {
24543
- fetch("/kokomoBay/docs/summary.json").then((response) => response.json()).then((json) => {
24543
+ fetch("./docs/summary.json").then((response) => response.json()).then((json) => {
24544
24544
  setBigBoard(json);
24545
24545
  }).catch((error) => console.error(error));
24546
24546
  })();
@@ -24571,7 +24571,7 @@
24571
24571
  import_client.default.createRoot(elem).render(import_react3.default.createElement(BigBoard, {}, []));
24572
24572
  }
24573
24573
  });
24574
- console.log("hello BigBoard!");
24574
+ console.log("hello ReportClient!");
24575
24575
  })();
24576
24576
  /*! Bundled license information:
24577
24577
 
@@ -4,8 +4,7 @@ import { createRequire } from 'module';const require = createRequire(import.meta
4
4
  import staticServer from "node-static";
5
5
  import http from "http";
6
6
  var main = async () => {
7
- process.chdir("../");
8
- const fileServer = new staticServer.Server(".", {});
7
+ const fileServer = new staticServer.Server("./testeranto", {});
9
8
  http.createServer(function(request, response) {
10
9
  request.addListener("end", function() {
11
10
  fileServer.serve(request, response);
@@ -2030,10 +2030,6 @@ progress {
2030
2030
  display: block;
2031
2031
  padding: 0;
2032
2032
  }
2033
- .form-control::-moz-placeholder {
2034
- color: var(--bs-secondary-color);
2035
- opacity: 1;
2036
- }
2037
2033
  .form-control::placeholder {
2038
2034
  color: var(--bs-secondary-color);
2039
2035
  opacity: 1;
@@ -2513,19 +2509,10 @@ textarea.form-control-lg {
2513
2509
  .form-floating > .form-control-plaintext {
2514
2510
  padding: 1rem .75rem;
2515
2511
  }
2516
- .form-floating > .form-control-plaintext::-moz-placeholder,
2517
- .form-floating > .form-control::-moz-placeholder {
2518
- color: transparent;
2519
- }
2520
2512
  .form-floating > .form-control-plaintext::placeholder,
2521
2513
  .form-floating > .form-control::placeholder {
2522
2514
  color: transparent;
2523
2515
  }
2524
- .form-floating > .form-control-plaintext:not(:-moz-placeholder),
2525
- .form-floating > .form-control:not(:-moz-placeholder) {
2526
- padding-top: 1.625rem;
2527
- padding-bottom: .625rem;
2528
- }
2529
2516
  .form-floating > .form-control-plaintext:focus,
2530
2517
  .form-floating > .form-control-plaintext:not(:placeholder-shown),
2531
2518
  .form-floating > .form-control:focus,
@@ -2543,9 +2530,6 @@ textarea.form-control-lg {
2543
2530
  padding-bottom: .625rem;
2544
2531
  padding-left: .75rem;
2545
2532
  }
2546
- .form-floating > .form-control:not(:-moz-placeholder) ~ label {
2547
- transform: scale(.85) translateY(-.5rem) translateX(.15rem);
2548
- }
2549
2533
  .form-floating > .form-control-plaintext ~ label,
2550
2534
  .form-floating > .form-control:focus ~ label,
2551
2535
  .form-floating > .form-control:not(:placeholder-shown) ~ label,
@@ -2555,15 +2539,6 @@ textarea.form-control-lg {
2555
2539
  .form-floating > .form-control:-webkit-autofill ~ label {
2556
2540
  transform: scale(.85) translateY(-.5rem) translateX(.15rem);
2557
2541
  }
2558
- .form-floating > textarea:not(:-moz-placeholder) ~ label::after {
2559
- position: absolute;
2560
- inset: 1rem 0.375rem;
2561
- z-index: -1;
2562
- height: 1.5em;
2563
- content: "";
2564
- background-color: var(--bs-body-bg);
2565
- border-radius: var(--bs-border-radius);
2566
- }
2567
2542
  .form-floating > textarea:focus ~ label::after,
2568
2543
  .form-floating > textarea:not(:placeholder-shown) ~ label::after {
2569
2544
  position: absolute;
@@ -11360,7 +11335,7 @@ footer {
11360
11335
 
11361
11336
  bootstrap/dist/css/bootstrap.min.css:
11362
11337
  (*!
11363
- * Bootstrap v5.3.4 (https://getbootstrap.com/)
11338
+ * Bootstrap v5.3.5 (https://getbootstrap.com/)
11364
11339
  * Copyright 2011-2025 The Bootstrap Authors
11365
11340
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
11366
11341
  *)
@@ -306,6 +306,7 @@ if (mode !== "once" && mode !== "dev") {
306
306
  }
307
307
  console.log("testeranto is building", testName, mode);
308
308
  import(process.cwd() + "/testeranto.config.ts").then(async (module) => {
309
+ const pckge = (await import(`${process.cwd()}/package.json`)).default;
309
310
  const bigConfig = module.default;
310
311
  const project = bigConfig.projects[testName];
311
312
  if (!project) {
@@ -389,12 +390,12 @@ import(process.cwd() + "/testeranto.config.ts").then(async (module) => {
389
390
  <head>
390
391
  <meta name="description" content="Webpage description goes here" />
391
392
  <meta charset="utf-8" />
392
- <title>kokomoBay - testeranto</title>
393
+ <title>${pckge.name} - testeranto</title>
393
394
  <meta name="viewport" content="width=device-width, initial-scale=1" />
394
395
  <meta name="author" content="" />
395
396
 
396
- <link rel="stylesheet" href="/kokomoBay/testeranto/ReportClient.css" />
397
- <script type="module" src="/kokomoBay/testeranto/ReportClient.js"></script>
397
+ <link rel="stylesheet" href="../ReportClient.css" />
398
+ <script type="module" src="../ReportClient.js"></script>
398
399
 
399
400
  </head>
400
401
 
@@ -420,7 +421,7 @@ import(process.cwd() + "/testeranto.config.ts").then(async (module) => {
420
421
  <head>
421
422
  <meta name="description" content="Webpage description goes here" />
422
423
  <meta charset="utf-8" />
423
- <title>kokomoBay - testeranto</title>
424
+ <title>${pckge.name} - testeranto</title>
424
425
  <meta name="viewport" content="width=device-width, initial-scale=1" />
425
426
  <meta name="author" content="" />
426
427
 
@@ -428,8 +429,8 @@ import(process.cwd() + "/testeranto.config.ts").then(async (module) => {
428
429
  ${JSON.stringify(Object.keys(bigConfig.projects))}
429
430
  </script>
430
431
 
431
- <link rel="stylesheet" href="/kokomoBay/testeranto/Project.css" />
432
- <script type="module" src="/kokomoBay/testeranto/Project.js"></script>
432
+ <link rel="stylesheet" href="Project.css" />
433
+ <script type="module" src="Project.js"></script>
433
434
 
434
435
  </head>
435
436
 
@@ -456,7 +457,7 @@ import(process.cwd() + "/testeranto.config.ts").then(async (module) => {
456
457
  );
457
458
  const jsfilePath = `./${sourceFileNameMinusJs}.mjs`;
458
459
  return fs2.promises.mkdir(path4.dirname(htmlFilePath), { recursive: true }).then(
459
- (x) => fs2.writeFileSync(
460
+ (x2) => fs2.writeFileSync(
460
461
  htmlFilePath,
461
462
  web_html_default(jsfilePath, htmlFilePath)
462
463
  )
@@ -464,6 +465,40 @@ import(process.cwd() + "/testeranto.config.ts").then(async (module) => {
464
465
  })
465
466
  )
466
467
  );
468
+ const x = [
469
+ ["pure", Object.keys(importEntryPoints)],
470
+ ["node", Object.keys(nodeEntryPoints)],
471
+ ["web", Object.keys(webEntryPoints)]
472
+ ];
473
+ x.forEach(async ([runtime, keys]) => {
474
+ keys.forEach(async (k) => {
475
+ const folder = `testeranto/reports/${testName}/${k.split(".").slice(0, -1).join(".")}/${runtime}`;
476
+ await fs2.mkdirSync(folder, { recursive: true });
477
+ fs2.writeFileSync(
478
+ `${folder}/index.html`,
479
+ `
480
+ <!DOCTYPE html>
481
+ <html lang="en">
482
+
483
+ <head>
484
+ <meta name="description" content="Webpage description goes here" />
485
+ <meta charset="utf-8" />
486
+ <title>${testName} - testeranto</title>
487
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
488
+ <meta name="author" content="" />
489
+
490
+ <link rel="stylesheet" href="../../../../../TestReport.css" />
491
+ <script src="../../../../../TestReport.js"></script>
492
+
493
+ </head>
494
+
495
+ <body>
496
+ <div id="root"/>
497
+ </body>
498
+ `
499
+ );
500
+ });
501
+ });
467
502
  await Promise.all([
468
503
  ...[
469
504
  [pure_default, importEntryPoints, onImportDone],
@@ -199,7 +199,13 @@ var PM_Base = class {
199
199
  });
200
200
  }
201
201
  async createWriteStream(filepath, testName2) {
202
+ const folder = filepath.split("/").slice(0, -1).join("/");
202
203
  return new Promise((res) => {
204
+ if (!fs.existsSync(folder)) {
205
+ return fs.mkdirSync(folder, {
206
+ recursive: true
207
+ });
208
+ }
203
209
  const f = fs.createWriteStream(filepath);
204
210
  fileStreams3.push(f);
205
211
  if (!files[testName2]) {
@@ -396,7 +402,6 @@ var PM_Main = class extends PM_Base {
396
402
  configFilePath: "tsconfig.json",
397
403
  // config to inherit from (optional)
398
404
  compilerOptions: {
399
- rootDir: "src",
400
405
  outDir: tscPather(entrypoint, platform, this.name),
401
406
  // declaration: true,
402
407
  // skipLibCheck: true,
@@ -608,20 +613,46 @@ ${addableFiles.map((x) => {
608
613
  }
609
614
  const builtfile = dest;
610
615
  const webSideCares = [];
611
- await import(`${builtfile}?cacheBust=${Date.now()}`).then((module) => {
612
- return module.default.then((defaultModule) => {
613
- defaultModule.receiveTestResourceConfig(argz).then(async (results) => {
614
- this.receiveFeatures(results.features, destFolder, src, "pure");
615
- statusMessagePretty(results.fails, src);
616
- this.bddTestIsNowDone(src, results.fails);
616
+ try {
617
+ await import(`${builtfile}?cacheBust=${Date.now()}`).then((module) => {
618
+ return module.default.then((defaultModule) => {
619
+ defaultModule.receiveTestResourceConfig(argz).then(async (results) => {
620
+ this.receiveFeatures(results.features, destFolder, src, "pure");
621
+ statusMessagePretty(results.fails, src);
622
+ this.bddTestIsNowDone(src, results.fails);
623
+ }).catch((e) => {
624
+ console.log(
625
+ ansiC.red(ansiC.inverse(`${src} errored with: ${e}`))
626
+ );
627
+ this.bddTestIsNowDone(src, -1);
628
+ }).finally(() => {
629
+ webSideCares.forEach((webSideCar) => webSideCar.close());
630
+ });
617
631
  }).catch((e) => {
618
- console.log(ansiC.red(ansiC.inverse(`${src} errored with: ${e}`)));
632
+ console.log(
633
+ ansiC.red(
634
+ ansiC.inverse(
635
+ `${src} errored with: ${e}. Check ${reportDest}/error.txt for more info`
636
+ )
637
+ )
638
+ );
639
+ this.writeFileSync(`${reportDest}/error.txt`, e.stack, src);
619
640
  this.bddTestIsNowDone(src, -1);
620
- }).finally(() => {
621
- webSideCares.forEach((webSideCar) => webSideCar.close());
641
+ statusMessagePretty(-1, src);
622
642
  });
623
643
  });
624
- });
644
+ } catch (e) {
645
+ console.log(
646
+ ansiC.red(
647
+ ansiC.inverse(
648
+ `${src} errored with: ${e}. Check ${reportDest}/error.txt for more info`
649
+ )
650
+ )
651
+ );
652
+ this.writeFileSync(`${reportDest}/error.txt`, e.stack, src);
653
+ this.bddTestIsNowDone(src, -1);
654
+ statusMessagePretty(-1, src);
655
+ }
625
656
  for (let i = 0; i <= portsToUse.length; i++) {
626
657
  if (portsToUse[i]) {
627
658
  this.ports[portsToUse[i]] = "true";
@@ -641,7 +672,9 @@ ${addableFiles.map((x) => {
641
672
  return t[0] === src;
642
673
  });
643
674
  if (!testConfig) {
644
- console.log(ansiC.inverse("missing test config! Exiting ungracefully!"));
675
+ console.log(
676
+ ansiC.inverse(`missing test config! Exiting ungracefully for '${src}'`)
677
+ );
645
678
  process.exit(-1);
646
679
  }
647
680
  const testConfigResource = testConfig[2];
@@ -715,11 +748,19 @@ ${addableFiles.map((x) => {
715
748
  });
716
749
  });
717
750
  const oStream = fs2.createWriteStream(`${reportDest}/console_log.txt`);
718
- const child = spawn("node", [builtfile, testResources], {
719
- stdio: ["pipe", "pipe", "pipe", "ipc"]
720
- // silent: true
721
- });
751
+ const child = spawn(
752
+ "node",
753
+ [builtfile, testResources, "--trace-warnings"],
754
+ {
755
+ stdio: ["pipe", "pipe", "pipe", "ipc"]
756
+ // silent: true
757
+ }
758
+ );
722
759
  const p = destFolder + "/pipe";
760
+ const errFile = `${reportDest}/error.txt`;
761
+ if (fs2.existsSync(errFile)) {
762
+ fs2.rmSync(errFile);
763
+ }
723
764
  server.listen(p, () => {
724
765
  child.stderr?.on("data", (data) => {
725
766
  oStream.write(`stderr data ${data}`);
@@ -740,8 +781,29 @@ ${addableFiles.map((x) => {
740
781
  this.bddTestIsNowDone(src, code);
741
782
  statusMessagePretty(code, src);
742
783
  }
784
+ if (fs2.existsSync(p)) {
785
+ fs2.rmSync(p);
786
+ }
787
+ haltReturns = true;
743
788
  });
744
789
  child.on("exit", (code) => {
790
+ haltReturns = true;
791
+ });
792
+ child.on("error", (e) => {
793
+ haltReturns = true;
794
+ if (fs2.existsSync(p)) {
795
+ fs2.rmSync(p);
796
+ }
797
+ console.log(
798
+ ansiC.red(
799
+ ansiC.inverse(
800
+ `${src} errored with: ${e.name}. Check ${errFile}for more info`
801
+ )
802
+ )
803
+ );
804
+ this.writeFileSync(`${reportDest}/error.txt`, e.toString(), src);
805
+ this.bddTestIsNowDone(src, -1);
806
+ statusMessagePretty(-1, src);
745
807
  });
746
808
  });
747
809
  child.send({ path: p });
@@ -1166,7 +1228,9 @@ ${addableFiles.map((x) => {
1166
1228
  const hash = await fileHash(outputFile);
1167
1229
  if (fileHashes[k] !== hash) {
1168
1230
  fileHashes[k] = hash;
1169
- console.log(ansiC.green(ansiC.inverse(`< ${e} ${filename}`)));
1231
+ console.log(
1232
+ ansiC.yellow(ansiC.inverse(`< ${e} ${filename}`))
1233
+ );
1170
1234
  launcher(k, outputFile);
1171
1235
  }
1172
1236
  });
@@ -1179,7 +1243,7 @@ ${addableFiles.map((x) => {
1179
1243
  watcher(
1180
1244
  watch(metafile, async (e, filename) => {
1181
1245
  console.log(
1182
- ansiC.green(ansiC.inverse(`< ${e} ${filename} (${runtime})`))
1246
+ ansiC.yellow(ansiC.inverse(`< ${e} ${filename} (${runtime})`))
1183
1247
  );
1184
1248
  this.metafileOutputs(runtime);
1185
1249
  })