testeranto 0.146.2 → 0.146.4

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 (197) hide show
  1. package/dist/common/src/Node.js +9 -6
  2. package/dist/common/src/PM/PM_WithEslintAndTsc.js +75 -58
  3. package/dist/common/src/PM/main.js +131 -79
  4. package/dist/common/src/PM/node.js +1 -14
  5. package/dist/common/src/PM/nodeSidecar.js +0 -1
  6. package/dist/common/src/Pure.js +17 -1
  7. package/dist/common/src/Pure.test.js +172 -0
  8. package/dist/common/src/build.js +0 -1
  9. package/dist/common/src/esbuildConfigs/consoleDetectorPlugin.js +22 -11
  10. package/dist/common/src/esbuildConfigs/nativeImportDetectorPlugin.js +24 -0
  11. package/dist/common/src/esbuildConfigs/pure.js +2 -1
  12. package/dist/common/src/esbuildConfigs/rebuildPlugin.js +1 -4
  13. package/dist/common/src/lib/BaseSuite.js +89 -0
  14. package/dist/common/src/lib/BaseSuite.test/node.test.js +9 -0
  15. package/dist/common/src/lib/BaseSuite.test/pure.test.js +9 -0
  16. package/dist/common/src/lib/BaseSuite.test/test.js +232 -0
  17. package/dist/common/src/lib/BaseSuite.test/web.test.js +9 -0
  18. package/dist/common/src/lib/abstractBase.js +1 -90
  19. package/dist/common/src/lib/abstractBase.test/MockGiven.js +17 -0
  20. package/dist/common/src/lib/abstractBase.test/MockThen.js +13 -0
  21. package/dist/common/src/lib/abstractBase.test/MockWhen.js +13 -0
  22. package/dist/common/src/lib/abstractBase.test/implementation.js +42 -0
  23. package/dist/common/src/lib/abstractBase.test/index.js +17 -0
  24. package/dist/common/src/lib/abstractBase.test/interface.js +12 -0
  25. package/dist/common/src/lib/abstractBase.test/specification.js +19 -0
  26. package/dist/common/src/lib/abstractBase.test/types.js +2 -0
  27. package/dist/common/src/lib/baseBuilder.test/TestBaseBuilder.js +36 -0
  28. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.implementation.js +97 -0
  29. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.interface.js +17 -0
  30. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.node.js +11 -0
  31. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.pure.js +11 -0
  32. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.specification.js +13 -0
  33. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.types.js +2 -0
  34. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.web.js +11 -0
  35. package/dist/common/src/lib/basebuilder.js +2 -1
  36. package/dist/common/src/lib/classBuilder.test/TestClassBuilder.js +41 -0
  37. package/dist/common/src/lib/classBuilder.test/classBuilder.test.implementation.js +182 -0
  38. package/dist/common/src/lib/classBuilder.test/classBuilder.test.interface.js +17 -0
  39. package/dist/common/src/lib/classBuilder.test/classBuilder.test.js +11 -0
  40. package/dist/common/src/lib/classBuilder.test/classBuilder.test.specification.js +41 -0
  41. package/dist/common/src/lib/classBuilder.test/classBuilder.test.types.js +2 -0
  42. package/dist/common/src/lib/core.js +4 -13
  43. package/dist/common/src/lib/core.test/MockCore.js +25 -0
  44. package/dist/common/src/lib/core.test/core.test.implementation.js +102 -0
  45. package/dist/common/src/lib/core.test/core.test.interface.js +18 -0
  46. package/dist/common/src/lib/core.test/core.test.js +17 -0
  47. package/dist/common/src/lib/core.test/core.test.specification.js +33 -0
  48. package/dist/common/src/lib/core.test/core.test.types.js +2 -0
  49. package/dist/common/src/lib/pmProxy.js +9 -166
  50. package/dist/common/src/lib/pmProxy.test/implementation.js +76 -0
  51. package/dist/common/src/lib/pmProxy.test/index.js +15 -0
  52. package/dist/common/src/lib/pmProxy.test/interface.js +37 -0
  53. package/dist/common/src/lib/pmProxy.test/mockPM.js +34 -0
  54. package/dist/common/src/lib/pmProxy.test/mockPMBase.js +115 -0
  55. package/dist/common/src/lib/pmProxy.test/specification.js +39 -0
  56. package/dist/common/src/lib/pmProxy.test/types.js +2 -0
  57. package/dist/common/src/run.js +6 -6
  58. package/dist/common/testeranto.config.js +33 -18
  59. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  60. package/dist/module/src/Node.js +9 -6
  61. package/dist/module/src/PM/PM_WithEslintAndTsc.js +75 -58
  62. package/dist/module/src/PM/main.js +131 -79
  63. package/dist/module/src/PM/node.js +1 -14
  64. package/dist/module/src/PM/nodeSidecar.js +0 -1
  65. package/dist/module/src/Pure.js +17 -1
  66. package/dist/module/src/Pure.test.js +167 -0
  67. package/dist/module/src/build.js +0 -1
  68. package/dist/module/src/esbuildConfigs/consoleDetectorPlugin.js +19 -11
  69. package/dist/module/src/esbuildConfigs/nativeImportDetectorPlugin.js +21 -0
  70. package/dist/module/src/esbuildConfigs/pure.js +2 -1
  71. package/dist/module/src/esbuildConfigs/rebuildPlugin.js +1 -4
  72. package/dist/module/src/lib/BaseSuite.js +85 -0
  73. package/dist/module/src/lib/BaseSuite.test/node.test.js +4 -0
  74. package/dist/module/src/lib/BaseSuite.test/pure.test.js +4 -0
  75. package/dist/module/src/lib/BaseSuite.test/test.js +227 -0
  76. package/dist/module/src/lib/BaseSuite.test/web.test.js +4 -0
  77. package/dist/module/src/lib/abstractBase.js +1 -89
  78. package/dist/module/src/lib/abstractBase.test/MockGiven.js +13 -0
  79. package/dist/module/src/lib/abstractBase.test/MockThen.js +9 -0
  80. package/dist/module/src/lib/abstractBase.test/MockWhen.js +9 -0
  81. package/dist/module/src/lib/abstractBase.test/implementation.js +39 -0
  82. package/dist/module/src/lib/abstractBase.test/index.js +12 -0
  83. package/dist/module/src/lib/abstractBase.test/interface.js +9 -0
  84. package/dist/module/src/lib/abstractBase.test/specification.js +15 -0
  85. package/dist/module/src/lib/abstractBase.test/types.js +1 -0
  86. package/dist/module/src/lib/baseBuilder.test/TestBaseBuilder.js +32 -0
  87. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.implementation.js +94 -0
  88. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.interface.js +14 -0
  89. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.node.js +6 -0
  90. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.pure.js +6 -0
  91. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.specification.js +9 -0
  92. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.types.js +1 -0
  93. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.web.js +6 -0
  94. package/dist/module/src/lib/basebuilder.js +2 -1
  95. package/dist/module/src/lib/classBuilder.test/TestClassBuilder.js +37 -0
  96. package/dist/module/src/lib/classBuilder.test/classBuilder.test.implementation.js +179 -0
  97. package/dist/module/src/lib/classBuilder.test/classBuilder.test.interface.js +14 -0
  98. package/dist/module/src/lib/classBuilder.test/classBuilder.test.js +6 -0
  99. package/dist/module/src/lib/classBuilder.test/classBuilder.test.specification.js +37 -0
  100. package/dist/module/src/lib/classBuilder.test/classBuilder.test.types.js +1 -0
  101. package/dist/module/src/lib/core.js +3 -12
  102. package/dist/module/src/lib/core.test/MockCore.js +18 -0
  103. package/dist/module/src/lib/core.test/core.test.implementation.js +99 -0
  104. package/dist/module/src/lib/core.test/core.test.interface.js +15 -0
  105. package/dist/module/src/lib/core.test/core.test.js +12 -0
  106. package/dist/module/src/lib/core.test/core.test.specification.js +29 -0
  107. package/dist/module/src/lib/core.test/core.test.types.js +1 -0
  108. package/dist/module/src/lib/pmProxy.js +9 -166
  109. package/dist/module/src/lib/pmProxy.test/implementation.js +73 -0
  110. package/dist/module/src/lib/pmProxy.test/index.js +10 -0
  111. package/dist/module/src/lib/pmProxy.test/interface.js +34 -0
  112. package/dist/module/src/lib/pmProxy.test/mockPM.js +30 -0
  113. package/dist/module/src/lib/pmProxy.test/mockPMBase.js +111 -0
  114. package/dist/module/src/lib/pmProxy.test/specification.js +35 -0
  115. package/dist/module/src/lib/pmProxy.test/types.js +1 -0
  116. package/dist/module/src/run.js +6 -6
  117. package/dist/module/testeranto.config.js +33 -18
  118. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  119. package/dist/prebuild/Project.js +16 -15
  120. package/dist/prebuild/TestReport.js +14 -12
  121. package/dist/prebuild/build.mjs +34 -34
  122. package/dist/prebuild/run.mjs +259 -173
  123. package/dist/tsconfig.tsbuildinfo +1 -1
  124. package/dist/types/src/PM/PM_WithEslintAndTsc.d.ts +2 -1
  125. package/dist/types/src/PM/main.d.ts +5 -2
  126. package/dist/types/src/Pure.d.ts +2 -2
  127. package/dist/types/src/Pure.test.d.ts +36 -0
  128. package/dist/types/src/Types.d.ts +7 -6
  129. package/dist/types/src/Web.d.ts +1 -1
  130. package/dist/types/src/esbuildConfigs/consoleDetectorPlugin.d.ts +1 -1
  131. package/dist/types/src/esbuildConfigs/nativeImportDetectorPlugin.d.ts +2 -0
  132. package/dist/types/src/lib/BaseSuite.d.ts +39 -0
  133. package/dist/types/src/lib/BaseSuite.test/node.test.d.ts +3 -0
  134. package/dist/types/src/lib/BaseSuite.test/pure.test.d.ts +3 -0
  135. package/dist/types/src/lib/BaseSuite.test/test.d.ts +42 -0
  136. package/dist/types/src/lib/BaseSuite.test/web.test.d.ts +3 -0
  137. package/dist/types/src/lib/abstractBase.d.ts +1 -36
  138. package/dist/types/src/lib/abstractBase.test/MockGiven.d.ts +7 -0
  139. package/dist/types/src/lib/abstractBase.test/MockThen.d.ts +6 -0
  140. package/dist/types/src/lib/abstractBase.test/MockWhen.d.ts +6 -0
  141. package/dist/types/src/lib/abstractBase.test/implementation.d.ts +3 -0
  142. package/dist/types/src/lib/abstractBase.test/index.d.ts +3 -0
  143. package/dist/types/src/lib/abstractBase.test/interface.d.ts +3 -0
  144. package/dist/types/src/lib/abstractBase.test/specification.d.ts +3 -0
  145. package/dist/types/src/lib/abstractBase.test/types.d.ts +39 -0
  146. package/dist/types/src/lib/baseBuilder.test/TestBaseBuilder.d.ts +15 -0
  147. package/dist/types/src/lib/baseBuilder.test/baseBuilder.test.implementation.d.ts +3 -0
  148. package/dist/types/src/lib/baseBuilder.test/baseBuilder.test.interface.d.ts +3 -0
  149. package/dist/types/src/lib/baseBuilder.test/baseBuilder.test.node.d.ts +3 -0
  150. package/dist/types/src/lib/baseBuilder.test/baseBuilder.test.pure.d.ts +3 -0
  151. package/dist/types/src/lib/baseBuilder.test/baseBuilder.test.specification.d.ts +3 -0
  152. package/dist/types/src/lib/baseBuilder.test/baseBuilder.test.types.d.ts +20 -0
  153. package/dist/types/src/lib/baseBuilder.test/baseBuilder.test.web.d.ts +3 -0
  154. package/dist/types/src/lib/classBuilder.test/TestClassBuilder.d.ts +21 -0
  155. package/dist/types/src/lib/classBuilder.test/classBuilder.test.d.ts +3 -0
  156. package/dist/types/src/lib/classBuilder.test/classBuilder.test.implementation.d.ts +3 -0
  157. package/dist/types/src/lib/classBuilder.test/classBuilder.test.interface.d.ts +3 -0
  158. package/dist/types/src/lib/classBuilder.test/classBuilder.test.specification.d.ts +3 -0
  159. package/dist/types/src/lib/classBuilder.test/classBuilder.test.types.d.ts +56 -0
  160. package/dist/types/src/lib/core.d.ts +1 -1
  161. package/dist/types/src/lib/core.test/MockCore.d.ts +10 -0
  162. package/dist/types/src/lib/core.test/core.test.d.ts +3 -0
  163. package/dist/types/src/lib/core.test/core.test.implementation.d.ts +3 -0
  164. package/dist/types/src/lib/core.test/core.test.interface.d.ts +3 -0
  165. package/dist/types/src/lib/core.test/core.test.specification.d.ts +3 -0
  166. package/dist/types/src/lib/core.test/core.test.types.d.ts +46 -0
  167. package/dist/types/src/lib/index.d.ts +2 -1
  168. package/dist/types/src/lib/pmProxy.d.ts +11 -6
  169. package/dist/types/src/lib/pmProxy.test/implementation.d.ts +3 -0
  170. package/dist/types/src/lib/pmProxy.test/index.d.ts +7 -0
  171. package/dist/types/src/lib/pmProxy.test/interface.d.ts +3 -0
  172. package/dist/types/src/lib/pmProxy.test/mockPM.d.ts +10 -0
  173. package/dist/types/src/lib/pmProxy.test/mockPMBase.d.ts +39 -0
  174. package/dist/types/src/lib/pmProxy.test/specification.d.ts +3 -0
  175. package/dist/types/src/lib/pmProxy.test/types.d.ts +42 -0
  176. package/dist/types/src/lib/types.d.ts +2 -1
  177. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  178. package/docs.html +35 -33
  179. package/index.html +23 -30
  180. package/package.json +3 -2
  181. package/testeranto/index.html +1 -1
  182. package/testeranto/reports/allTests/index.html +1 -1
  183. package/testeranto/reports/allTests/src/Pure.test/pure/index.html +1 -1
  184. package/testeranto/reports/allTests/src/Pure.test/pure/logs.txt +2 -2
  185. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/index.html +1 -1
  186. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/index.html +1 -1
  187. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/logs.txt +2 -2
  188. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/index.html +1 -1
  189. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/index.html +1 -1
  190. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/index.html +1 -1
  191. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/index.html +1 -1
  192. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/index.html +1 -1
  193. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/index.html +1 -1
  194. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/index.html +1 -1
  195. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/logs.txt +3 -3
  196. package/testeranto.config.ts +1 -1
  197. package/tsc.log +36 -38
@@ -51,6 +51,7 @@ const node_crypto_1 = __importDefault(require("node:crypto"));
51
51
  const utils_1 = require("../utils");
52
52
  const queue_js_1 = require("../utils/queue.js");
53
53
  const PM_WithEslintAndTsc_js_1 = require("./PM_WithEslintAndTsc.js");
54
+ const ansi_colors_2 = __importDefault(require("ansi-colors"));
54
55
  const changes = {};
55
56
  const fileHashes = {};
56
57
  const files = {};
@@ -71,12 +72,12 @@ async function fileHash(filePath, algorithm = "md5") {
71
72
  });
72
73
  });
73
74
  }
74
- const statusMessagePretty = (failures, test) => {
75
+ const statusMessagePretty = (failures, test, runtime) => {
75
76
  if (failures === 0) {
76
- console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`> ${test} completed successfully?!?`)));
77
+ console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`${runtime} > ${test} completed successfully`)));
77
78
  }
78
79
  else {
79
- console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`> ${test} failed ${failures} times`)));
80
+ console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`${runtime} > ${test} failed ${failures} times`)));
80
81
  }
81
82
  };
82
83
  async function writeFileAndCreateDir(filePath, data) {
@@ -110,8 +111,6 @@ async function pollForFile(path, timeout = 2000) {
110
111
  const intervalObj = setInterval(function () {
111
112
  const file = path;
112
113
  const fileExists = fs_1.default.existsSync(file);
113
- // console.log("Checking for: ", file);
114
- // console.log("Exists: ", fileExists);
115
114
  if (fileExists) {
116
115
  clearInterval(intervalObj);
117
116
  }
@@ -131,7 +130,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
131
130
  return (0, utils_1.getRunnables)(tests, testName, payload);
132
131
  };
133
132
  this.launchPure = async (src, dest) => {
134
- console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`! pure, ${src}`)));
133
+ console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`pure < ${src}`)));
135
134
  this.bddTestIsRunning(src);
136
135
  const reportDest = `testeranto/reports/${this.name}/${src
137
136
  .split(".")
@@ -161,11 +160,11 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
161
160
  });
162
161
  }
163
162
  else if (testConfigResource.ports > 0) {
164
- const openPorts = Object.entries(this.ports).filter(([portnumber, portopen]) => portopen);
163
+ const openPorts = Object.entries(this.ports).filter(([portnumber, status]) => status === "");
165
164
  if (openPorts.length >= testConfigResource.ports) {
166
165
  for (let i = 0; i < testConfigResource.ports; i++) {
167
166
  portsToUse.push(openPorts[i][0]);
168
- this.ports[openPorts[i][0]] = false; // port is now closed
167
+ this.ports[openPorts[i][0]] = src; // port is now claimed
169
168
  }
170
169
  argz = JSON.stringify({
171
170
  scheduled: true,
@@ -219,11 +218,11 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
219
218
  .then(async (results) => {
220
219
  // this.receiveFeatures(results.features, destFolder, src, "pure");
221
220
  // this.receiveFeaturesV2(reportDest, src, "pure");
222
- statusMessagePretty(results.fails, src);
221
+ statusMessagePretty(results.fails, src, "pure");
223
222
  this.bddTestIsNowDone(src, results.fails);
224
223
  })
225
224
  .catch((e) => {
226
- console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`launchPure - ${src} errored with: ${e}`)));
225
+ console.log(ansi_colors_1.default.red(`launchPure - ${src} errored with: ${e}`));
227
226
  this.bddTestIsNowDone(src, -1);
228
227
  });
229
228
  // .finally(() => {
@@ -231,28 +230,28 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
231
230
  // });
232
231
  })
233
232
  .catch((e) => {
234
- console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`${src} errored with: ${e}. Check ${reportDest}/error.txt for more info`)));
235
- this.writeFileSync(`${reportDest}/error.txt`, e.stack, src);
233
+ console.log(ansi_colors_2.default.red(`pure ! ${src} failed to execute. No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`));
234
+ this.writeFileSync(`${reportDest}/logs.txt`, e.stack, src);
236
235
  this.bddTestIsNowDone(src, -1);
237
- statusMessagePretty(-1, src);
236
+ statusMessagePretty(-1, src, "pure");
238
237
  // console.error(e);
239
238
  });
240
239
  });
241
240
  }
242
241
  catch (e) {
243
- console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`${src} errored with: ${e}. Check ${reportDest}/error.txt for more info`)));
244
- this.writeFileSync(`${reportDest}/error.txt`, e.stack, src);
242
+ console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`${src} 1 errored with: ${e}. Check ${reportDest}/logs.txt for more info`)));
243
+ this.writeFileSync(`${reportDest}/logs.txt`, e.stack, src);
245
244
  this.bddTestIsNowDone(src, -1);
246
- statusMessagePretty(-1, src);
245
+ statusMessagePretty(-1, src, "pure");
247
246
  }
248
247
  for (let i = 0; i <= portsToUse.length; i++) {
249
248
  if (portsToUse[i]) {
250
- this.ports[portsToUse[i]] = true; //port is open again
249
+ this.ports[portsToUse[i]] = ""; //port is open again
251
250
  }
252
251
  }
253
252
  };
254
253
  this.launchNode = async (src, dest) => {
255
- console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`! node, ${src}`)));
254
+ console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`node < ${src}`)));
256
255
  this.bddTestIsRunning(src);
257
256
  const reportDest = `testeranto/reports/${this.name}/${src
258
257
  .split(".")
@@ -273,7 +272,6 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
273
272
  const testConfigResource = testConfig[2];
274
273
  const portsToUse = [];
275
274
  if (testConfigResource.ports === 0) {
276
- console.error("portsToUse?!", []);
277
275
  const t = {
278
276
  name: src,
279
277
  // ports: portsToUse.map((v) => Number(v)),
@@ -284,13 +282,12 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
284
282
  testResources = JSON.stringify(t);
285
283
  }
286
284
  else if (testConfigResource.ports > 0) {
287
- const openPorts = Object.entries(this.ports).filter(([portnumber, portopen]) => portopen);
285
+ const openPorts = Object.entries(this.ports).filter(([portnumber, portopen]) => portopen === "");
288
286
  if (openPorts.length >= testConfigResource.ports) {
289
287
  for (let i = 0; i < testConfigResource.ports; i++) {
290
288
  portsToUse.push(openPorts[i][0]);
291
- this.ports[openPorts[i][0]] = false; // port is now closed
289
+ this.ports[openPorts[i][0]] = src; // port is now claimed
292
290
  }
293
- console.error("portsToUse", portsToUse);
294
291
  testResources = JSON.stringify({
295
292
  scheduled: true,
296
293
  name: src,
@@ -300,7 +297,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
300
297
  });
301
298
  }
302
299
  else {
303
- console.log("Not enough ports! Enqueuing test job...");
300
+ console.log(ansi_colors_1.default.red(`node: cannot run ${src} because there are no open ports ATM. This job will be enqueued and run again run a port is available`));
304
301
  this.queue.push(src);
305
302
  return;
306
303
  }
@@ -312,9 +309,9 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
312
309
  const builtfile = dest;
313
310
  let haltReturns = false;
314
311
  const ipcfile = "/tmp/tpipe_" + Math.random();
315
- const child = (0, node_child_process_1.spawn)("node",
312
+ const child = (0, node_child_process_1.spawn)(
316
313
  // "node --inspect-brk ",
317
- [builtfile, testResources, ipcfile], {
314
+ "node", [builtfile, testResources, ipcfile], {
318
315
  stdio: ["pipe", "pipe", "pipe", "ipc"],
319
316
  });
320
317
  let buffer = new Buffer("");
@@ -355,8 +352,8 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
355
352
  }
356
353
  });
357
354
  });
358
- const oStream = fs_1.default.createWriteStream(`${reportDest}/console_log.txt`);
359
- const errFile = `${reportDest}/error.txt`;
355
+ const oStream = fs_1.default.createWriteStream(`${reportDest}/logs.txt`);
356
+ const errFile = `${reportDest}/logs.txt`;
360
357
  if (fs_1.default.existsSync(errFile)) {
361
358
  fs_1.default.rmSync(errFile);
362
359
  }
@@ -368,21 +365,22 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
368
365
  (_b = child.stdout) === null || _b === void 0 ? void 0 : _b.on("data", (data) => {
369
366
  oStream.write(`stdout > ${data}`);
370
367
  });
368
+ child.on("error", (err) => { });
371
369
  child.on("close", (code) => {
372
370
  oStream.close();
373
371
  server.close();
374
- // this.receiveFeaturesV2(reportDest, src, "node");
375
- if (code === null) {
372
+ if (code === 255) {
373
+ console.log(ansi_colors_2.default.red(`node ! ${src} failed to execute. No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`));
376
374
  this.bddTestIsNowDone(src, -1);
377
- statusMessagePretty(-1, src);
375
+ statusMessagePretty(-1, src, "node");
378
376
  }
379
377
  else if (code === 0) {
380
378
  this.bddTestIsNowDone(src, 0);
381
- statusMessagePretty(0, src);
379
+ statusMessagePretty(0, src, "node");
382
380
  }
383
381
  else {
384
382
  this.bddTestIsNowDone(src, code);
385
- statusMessagePretty(code, src);
383
+ statusMessagePretty(code, src, "node");
386
384
  }
387
385
  haltReturns = true;
388
386
  });
@@ -390,24 +388,21 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
390
388
  haltReturns = true;
391
389
  for (let i = 0; i <= portsToUse.length; i++) {
392
390
  if (portsToUse[i]) {
393
- this.ports[portsToUse[i]] = true; //port is open again
391
+ this.ports[portsToUse[i]] = ""; //port is open again
394
392
  }
395
393
  }
396
394
  });
397
395
  child.on("error", (e) => {
398
396
  console.log("error");
399
397
  haltReturns = true;
400
- console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`${src} errored with: ${e.name}. Check ${errFile}for more info`)));
401
- this.writeFileSync(`${reportDest}/error.txt`, e.toString(), src);
398
+ console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`${src} errored with: ${e.name}. Check ${errFile} for more info`)));
399
+ this.writeFileSync(`${reportDest}/logs.txt`, e.toString(), src);
402
400
  this.bddTestIsNowDone(src, -1);
403
- statusMessagePretty(-1, src);
401
+ statusMessagePretty(-1, src, "node");
404
402
  });
405
403
  });
406
404
  };
407
- this.launchWebSideCar = async (
408
- // src: string,
409
- // dest: string,
410
- testConfig) => {
405
+ this.launchWebSideCar = async (testConfig) => {
411
406
  const src = testConfig[0];
412
407
  const dest = src.split(".").slice(0, -1).join(".");
413
408
  // const d = dest + ".mjs";
@@ -415,7 +410,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
415
410
  console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`launchWebSideCar ${src}`)));
416
411
  const fileStreams2 = [];
417
412
  const doneFileStream2 = [];
418
- const oStream = fs_1.default.createWriteStream(`${destFolder}/console_log.txt`);
413
+ const oStream = fs_1.default.createWriteStream(`${destFolder}/logs.txt`);
419
414
  return new Promise((res, rej) => {
420
415
  this.browser
421
416
  .newPage()
@@ -487,7 +482,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
487
482
  .then(async ({ fails, failed, features }) => {
488
483
  // this.receiveFeatures(features, destFolder, src, "web");
489
484
  // this.receiveFeaturesV2(reportDest, src, "web");
490
- statusMessagePretty(fails, src);
485
+ statusMessagePretty(fails, src, "web");
491
486
  this.bddTestIsNowDone(src, fails);
492
487
  })
493
488
  .catch((e) => {
@@ -534,13 +529,12 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
534
529
  // };
535
530
  }
536
531
  else if (testReq.ports > 0) {
537
- const openPorts = Object.entries(this.ports).filter(([portnumber, portopen]) => portopen);
532
+ const openPorts = Object.entries(this.ports).filter(([portnumber, portopen]) => portopen === "");
538
533
  if (openPorts.length >= testReq.ports) {
539
534
  for (let i = 0; i < testReq.ports; i++) {
540
535
  portsToUse.push(openPorts[i][0]);
541
- this.ports[openPorts[i][0]] = false; // port is now closed
536
+ this.ports[openPorts[i][0]] = src; // port is now closed
542
537
  }
543
- console.log("nodeSideCar portsToUse", portsToUse);
544
538
  argz.ports = portsToUse;
545
539
  const builtfile = destFolder + ".mjs";
546
540
  let haltReturns = false;
@@ -578,13 +572,13 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
578
572
  });
579
573
  });
580
574
  });
581
- const oStream = fs_1.default.createWriteStream(`${reportDest}/console_log.txt`);
575
+ const oStream = fs_1.default.createWriteStream(`${reportDest}/logs.txt`);
582
576
  const child = (0, node_child_process_1.spawn)("node", [builtfile, JSON.stringify(argz)], {
583
577
  stdio: ["pipe", "pipe", "pipe", "ipc"],
584
578
  // silent: true
585
579
  });
586
580
  const p = "/tmp/tpipe" + Math.random();
587
- const errFile = `${reportDest}/error.txt`;
581
+ const errFile = `${reportDest}/logs.txt`;
588
582
  server.listen(p, () => {
589
583
  var _a, _b;
590
584
  (_a = child.stderr) === null || _a === void 0 ? void 0 : _a.on("data", (data) => {
@@ -602,7 +596,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
602
596
  haltReturns = true;
603
597
  for (let i = 0; i <= portsToUse.length; i++) {
604
598
  if (portsToUse[i]) {
605
- this.ports[portsToUse[i]] = true; //port is open again
599
+ this.ports[portsToUse[i]] = ""; //port is open again
606
600
  }
607
601
  }
608
602
  });
@@ -612,7 +606,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
612
606
  }
613
607
  haltReturns = true;
614
608
  console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`launchNodeSideCar - ${src} errored with: ${e.name}. Check ${errFile}for more info`)));
615
- this.writeFileSync(`${reportDest}/error.txt`, e.toString(), src);
609
+ this.writeFileSync(`${reportDest}/logs.txt`, e.toString(), src);
616
610
  // this.bddTestIsNowDone(src, -1);
617
611
  // statusMessagePretty(-1, src);
618
612
  });
@@ -623,7 +617,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
623
617
  return [r, argz];
624
618
  }
625
619
  else {
626
- console.log("Not enough open ports!", openPorts, testReq.ports);
620
+ console.log(ansi_colors_1.default.red(`cannot ${src} because there are no open ports. the job will be unqueued`));
627
621
  this.queue.push(sidecar[0]);
628
622
  return [Math.random(), argz];
629
623
  }
@@ -659,12 +653,11 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
659
653
  };
660
654
  }
661
655
  else if (testConfigResource.ports > 0) {
662
- const openPorts = Object.entries(this.ports).filter(([portnumber, portopen]) => portopen);
663
- // console.log("openPorts", openPorts);
656
+ const openPorts = Object.entries(this.ports).filter(([portnumber, portopen]) => portopen === "");
664
657
  if (openPorts.length >= testConfigResource.ports) {
665
658
  for (let i = 0; i < testConfigResource.ports; i++) {
666
659
  portsToUse.push(openPorts[i][0]);
667
- this.ports[openPorts[i][0]] = false; // port is now closed
660
+ this.ports[openPorts[i][0]] = src; // port is now claimed
668
661
  }
669
662
  argz = {
670
663
  // scheduled: true,
@@ -697,7 +690,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
697
690
  // }
698
691
  };
699
692
  this.launchWeb = async (src, dest) => {
700
- console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`! web ${src}`)));
693
+ console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`web < ${src}`)));
701
694
  this.bddTestIsRunning(src);
702
695
  const reportDest = `testeranto/reports/${this.name}/${src
703
696
  .split(".")
@@ -724,7 +717,8 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
724
717
  console.log("fail", e)
725
718
  }
726
719
  })`;
727
- const oStream = fs_1.default.createWriteStream(`${reportDest}/console_log.txt`);
720
+ const ofile = `${reportDest}/logs.txt`;
721
+ const oStream = fs_1.default.createWriteStream(ofile);
728
722
  this.browser
729
723
  .newPage()
730
724
  .then((page) => {
@@ -763,22 +757,21 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
763
757
  });
764
758
  };
765
759
  page.on("pageerror", (err) => {
766
- console.debug(`Error from ${src}: [${err.name}] `);
760
+ console.log(ansi_colors_2.default.red(`web ! ${src} failed to execute. No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`));
767
761
  oStream.write(err.name);
768
762
  oStream.write("\n");
769
763
  if (err.cause) {
770
- console.debug(`Error from ${src} cause: [${err.cause}] `);
771
764
  oStream.write(err.cause);
772
765
  oStream.write("\n");
773
766
  }
774
767
  if (err.stack) {
775
- console.debug(`Error from stack ${src}: [${err.stack}] `);
776
768
  oStream.write(err.stack);
777
769
  oStream.write("\n");
778
770
  }
779
- console.debug(`Error from message ${src}: [${err.message}] `);
780
- oStream.write(err.message);
781
- oStream.write("\n");
771
+ if (err.message) {
772
+ oStream.write(err.message);
773
+ oStream.write("\n");
774
+ }
782
775
  this.bddTestIsNowDone(src, -1);
783
776
  close();
784
777
  });
@@ -797,16 +790,23 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
797
790
  .then(async ({ fails, failed, features }) => {
798
791
  // this.receiveFeatures(features, destFolder, src, "web");
799
792
  // this.receiveFeaturesV2(reportDest, src, "web");
800
- statusMessagePretty(fails, src);
793
+ statusMessagePretty(fails, src, "web");
801
794
  this.bddTestIsNowDone(src, fails);
795
+ close();
802
796
  })
803
797
  .catch((e) => {
804
- console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`launchweb - ${src} errored with: ${e}`)));
798
+ // console.log(ansiC.red(ansiC.inverse(e)));
799
+ // console.log(
800
+ // ansiC.red(
801
+ // ansiC.inverse(
802
+ // `web ! ${src} failed to execute. No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`
803
+ // )
804
+ // )
805
+ // );
806
+ this.bddTestIsNowDone(src, -1);
805
807
  })
806
808
  .finally(() => {
807
- this.bddTestIsNowDone(src, -1);
808
809
  // process.exit(-1);
809
- close();
810
810
  });
811
811
  return page;
812
812
  });
@@ -814,10 +814,8 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
814
814
  this.receiveFeaturesV2 = (reportDest, srcTest, platform) => {
815
815
  const featureDestination = path_1.default.resolve(process.cwd(), "reports", "features", "strings", srcTest.split(".").slice(0, -1).join(".") + ".features.txt");
816
816
  const testReport = JSON.parse(fs_1.default.readFileSync(`${reportDest}/tests.json`).toString());
817
- // console.log("mark2", testReport);
818
817
  testReport.features
819
818
  .reduce(async (mm, featureStringKey) => {
820
- // console.log("mark4", featureStringKey);
821
819
  const accum = await mm;
822
820
  const isUrl = isValidUrl(featureStringKey);
823
821
  if (isUrl) {
@@ -877,13 +875,55 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
877
875
  // this.summary[srcTest].failingFeatures = f;
878
876
  this.writeBigBoard();
879
877
  };
878
+ this.checkForShutdown = () => {
879
+ // console.log(ansiC.inverse(JSON.stringify(this.summary, null, 2)));
880
+ this.checkQueue();
881
+ console.log(ansi_colors_1.default.inverse(`The following jobs are awaiting resources: ${JSON.stringify(this.queue)}`));
882
+ console.log(ansi_colors_1.default.inverse(`The status of ports: ${JSON.stringify(this.ports)}`));
883
+ this.writeBigBoard();
884
+ if (this.mode === "dev")
885
+ return;
886
+ let inflight = false;
887
+ Object.keys(this.summary).forEach((k) => {
888
+ if (this.summary[k].prompt === "?") {
889
+ console.log(ansi_colors_1.default.blue(ansi_colors_1.default.inverse(`🕕 prompt ${k}`)));
890
+ inflight = true;
891
+ }
892
+ });
893
+ Object.keys(this.summary).forEach((k) => {
894
+ if (this.summary[k].runTimeErrors === "?") {
895
+ console.log(ansi_colors_1.default.blue(ansi_colors_1.default.inverse(`🕕 runTimeError ${k}`)));
896
+ inflight = true;
897
+ }
898
+ });
899
+ Object.keys(this.summary).forEach((k) => {
900
+ if (this.summary[k].staticErrors === "?") {
901
+ console.log(ansi_colors_1.default.blue(ansi_colors_1.default.inverse(`🕕 staticErrors ${k}`)));
902
+ inflight = true;
903
+ }
904
+ });
905
+ Object.keys(this.summary).forEach((k) => {
906
+ if (this.summary[k].typeErrors === "?") {
907
+ console.log(ansi_colors_1.default.blue(ansi_colors_1.default.inverse(`🕕 typeErrors ${k}`)));
908
+ inflight = true;
909
+ }
910
+ });
911
+ this.writeBigBoard();
912
+ if (!inflight) {
913
+ this.browser.disconnect().then(() => {
914
+ console.log(ansi_colors_1.default.inverse(`${this.name} has been tested. Goodbye.`));
915
+ process.exit();
916
+ });
917
+ }
918
+ };
919
+ this.launchers = {};
880
920
  this.ports = {};
881
921
  this.queue = [];
882
922
  this.nodeSidecars = {};
883
923
  this.webSidecars = {};
884
924
  this.pureSidecars = {};
885
925
  this.configs.ports.forEach((element) => {
886
- this.ports[element] = true; // set ports as open
926
+ this.ports[element] = ""; // set ports as open
887
927
  });
888
928
  }
889
929
  async stopSideCar(uid) {
@@ -1043,16 +1083,18 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
1043
1083
  ].forEach(async ([eps, launcher, runtime, watcher]) => {
1044
1084
  const metafile = `./testeranto/bundles/${runtime}/${this.name}/metafile.json`;
1045
1085
  await pollForFile(metafile);
1046
- Object.entries(eps).forEach(async ([k, outputFile]) => {
1047
- // await pollForFile(outputFile);
1048
- launcher(k, outputFile);
1086
+ Object.entries(eps).forEach(async ([inputFile, outputFile]) => {
1087
+ // await pollForFile(outputFile);\
1088
+ this.launchers[inputFile] = () => launcher(inputFile, outputFile);
1089
+ this.launchers[inputFile]();
1049
1090
  try {
1050
1091
  (0, fs_1.watch)(outputFile, async (e, filename) => {
1051
1092
  const hash = await fileHash(outputFile);
1052
- if (fileHashes[k] !== hash) {
1053
- fileHashes[k] = hash;
1093
+ if (fileHashes[inputFile] !== hash) {
1094
+ fileHashes[inputFile] = hash;
1054
1095
  console.log(ansi_colors_1.default.yellow(ansi_colors_1.default.inverse(`< ${e} ${filename}`)));
1055
- launcher(k, outputFile);
1096
+ // launcher(inputFile, outputFile);
1097
+ this.launchers[inputFile]();
1056
1098
  }
1057
1099
  });
1058
1100
  }
@@ -1092,8 +1134,6 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
1092
1134
  // `testeranto/externalTests/${externalTestName}/stderr.txt`,
1093
1135
  // stderr
1094
1136
  // );
1095
- // // console.log(`externalTest stdout: ${stdout}`);
1096
- // // console.error(`externalTest stderr: ${stderr}`);
1097
1137
  // });
1098
1138
  }
1099
1139
  async stop() {
@@ -1140,13 +1180,25 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
1140
1180
  this.tscCheck({
1141
1181
  platform,
1142
1182
  addableFiles,
1143
- entrypoint: "./" + entrypoint,
1183
+ entrypoint: entrypoint,
1144
1184
  });
1145
- this.eslintCheck("./" + entrypoint, platform, addableFiles);
1146
- this.makePrompt("./" + entrypoint, addableFiles, platform);
1185
+ this.eslintCheck(entrypoint, platform, addableFiles);
1186
+ this.makePrompt(entrypoint, addableFiles, platform);
1147
1187
  }
1148
1188
  }
1149
1189
  });
1150
1190
  }
1191
+ checkQueue() {
1192
+ const x = this.queue.pop();
1193
+ if (!x) {
1194
+ ansi_colors_1.default.inverse(`The following queue is empty`);
1195
+ return;
1196
+ }
1197
+ const test = this.configs.tests.find((t) => t[0] === x);
1198
+ if (!test)
1199
+ throw `test is undefined ${x}`;
1200
+ // const [src, runtime, ...xx]: [string, IRunTime, ...any] = test;
1201
+ this.launchers[test[0]]();
1202
+ }
1151
1203
  }
1152
1204
  exports.PM_Main = PM_Main;
@@ -21,25 +21,13 @@ class PM_Node extends _1.PM {
21
21
  });
22
22
  }
23
23
  start() {
24
- throw new Error("DEPREFECATED");
25
- // console.log("START");
26
- // return new Promise((res) => {
27
- // process.on("message", (message: { path?: string }) => {
28
- // console.log("MESSAGE");
29
- // if (message.path) {
30
- // this.client = net.createConnection(message.path, () => {
31
- // res();
32
- // });
33
- // }
34
- // });
35
- // });
24
+ throw new Error("DEPRECATED");
36
25
  }
37
26
  stop() {
38
27
  throw new Error("stop not implemented.");
39
28
  }
40
29
  send(command, ...argz) {
41
30
  const key = Math.random().toString();
42
- // console.log("SEND", key, command, ...argz);
43
31
  if (!this.client) {
44
32
  console.error(`Tried to send "${command} (${argz})" but the test has not been started and the IPC client is not established. Exiting as failure!`);
45
33
  process.exit(-1);
@@ -127,7 +115,6 @@ class PM_Node extends _1.PM {
127
115
  return await this.send("write", ...arguments);
128
116
  }
129
117
  async writeFileSync(filepath, contents) {
130
- // console.log("mark55");
131
118
  return await this.send("writeFileSync", this.testResourceConfiguration.fs + "/" + filepath, contents, this.testResourceConfiguration.name);
132
119
  }
133
120
  async createWriteStream(filepath) {
@@ -20,7 +20,6 @@ class PM_Node_Sidecar extends sidecar_1.PM_sidecar {
20
20
  return new Promise((res) => {
21
21
  process.on("message", async (message) => {
22
22
  if (message === "stop") {
23
- console.log("STOP!", stopper.toString());
24
23
  await stopper();
25
24
  process.exit();
26
25
  }
@@ -16,7 +16,12 @@ class PureTesteranto extends core_js_1.default {
16
16
  async receiveTestResourceConfig(partialTestResource) {
17
17
  const t = JSON.parse(partialTestResource);
18
18
  const pm = new pure_js_1.PM_Pure(t);
19
- return await this.testJobs[0].receiveTestResourceConfig(pm);
19
+ try {
20
+ return await this.testJobs[0].receiveTestResourceConfig(pm);
21
+ }
22
+ catch (e) {
23
+ return -2;
24
+ }
20
25
  // const { failed, artifacts, logPromise, features, fails } =
21
26
  // await this.testJobs[0].receiveTestResourceConfig(pm);
22
27
  // // pm.customclose();
@@ -26,4 +31,15 @@ class PureTesteranto extends core_js_1.default {
26
31
  exports.PureTesteranto = PureTesteranto;
27
32
  exports.default = async (input, testSpecification, testImplementation, testInterface, testResourceRequirement = index_js_1.defaultTestResourceRequirement) => {
28
33
  return new PureTesteranto(input, testSpecification, testImplementation, testResourceRequirement, testInterface);
34
+ // try {
35
+ // return new PureTesteranto<I, O, M>(
36
+ // input,
37
+ // testSpecification,
38
+ // testImplementation,
39
+ // testResourceRequirement,
40
+ // testInterface
41
+ // );
42
+ // } catch (e) {
43
+ // return -1;
44
+ // }
29
45
  };