testeranto 0.146.2 → 0.146.5

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 (215) 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 -20
  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 -20
  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 +8 -18
  181. package/src/lib/basebuilder.ts +0 -24
  182. package/testeranto/Project.css +1 -26
  183. package/testeranto/Project.js +3337 -385
  184. package/testeranto/TestReport.css +1 -26
  185. package/testeranto/TestReport.js +43 -16
  186. package/testeranto/bundles/node/allTests/metafile.json +1 -1
  187. package/testeranto/bundles/pure/allTests/metafile.json +1 -1
  188. package/testeranto/bundles/web/allTests/metafile.json +1 -1
  189. package/testeranto/index.html +1 -1
  190. package/testeranto/reports/allTests/index.html +1 -1
  191. package/testeranto/reports/allTests/src/Pure.test/pure/index.html +1 -1
  192. package/testeranto/reports/allTests/src/Pure.test/pure/lint_errors.json +137 -1539
  193. package/testeranto/reports/allTests/src/Pure.test/pure/logs.txt +2 -2
  194. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/index.html +1 -1
  195. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/lint_errors.json +58 -620
  196. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/index.html +1 -1
  197. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/lint_errors.json +58 -620
  198. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/logs.txt +2 -2
  199. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/index.html +1 -1
  200. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/lint_errors.json +58 -620
  201. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/index.html +1 -1
  202. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/lint_errors.json +104 -966
  203. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/index.html +1 -1
  204. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/lint_errors.json +104 -966
  205. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/index.html +1 -1
  206. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/lint_errors.json +104 -966
  207. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/index.html +1 -1
  208. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/lint_errors.json +63 -791
  209. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/index.html +1 -1
  210. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/lint_errors.json +39 -416
  211. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/index.html +1 -1
  212. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/lint_errors.json +156 -1724
  213. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/logs.txt +3 -3
  214. package/testeranto.config.ts +1 -1
  215. package/tsc.log +36 -38
@@ -8,6 +8,7 @@ const core_js_1 = __importDefault(require("./lib/core.js"));
8
8
  const index_js_1 = require("./lib/index.js");
9
9
  const node_js_1 = require("./PM/node.js");
10
10
  let ipcfile;
11
+ console.log("mark4");
11
12
  class NodeTesteranto extends core_js_1.default {
12
13
  constructor(input, testSpecification, testImplementation, testResourceRequirement, testInterface) {
13
14
  super(input, testSpecification, testImplementation, testResourceRequirement, testInterface, () => {
@@ -15,6 +16,7 @@ class NodeTesteranto extends core_js_1.default {
15
16
  });
16
17
  }
17
18
  async receiveTestResourceConfig(partialTestResource) {
19
+ console.log("receiveTestResourceConfig", partialTestResource);
18
20
  const t = JSON.parse(partialTestResource);
19
21
  const pm = new node_js_1.PM_Node(t, ipcfile);
20
22
  return await this.testJobs[0].receiveTestResourceConfig(pm);
@@ -26,13 +28,14 @@ class NodeTesteranto extends core_js_1.default {
26
28
  }
27
29
  exports.NodeTesteranto = NodeTesteranto;
28
30
  const testeranto = async (input, testSpecification, testImplementation, testInterface, testResourceRequirement = index_js_1.defaultTestResourceRequirement) => {
29
- const t = new NodeTesteranto(input, testSpecification, testImplementation, testResourceRequirement, testInterface);
30
- process.on("unhandledRejection", (reason, promise) => {
31
- console.error("Unhandled Rejection at:", promise, "reason:", reason);
32
- // Optionally, terminate the process or perform cleanup
33
- // t.registerUncaughtPromise(reason, promise);
34
- });
35
31
  try {
32
+ const t = new NodeTesteranto(input, testSpecification, testImplementation, testResourceRequirement, testInterface);
33
+ console.log("args", process.argv);
34
+ process.on("unhandledRejection", (reason, promise) => {
35
+ console.error("Unhandled Rejection at:", promise, "reason:", reason);
36
+ // Optionally, terminate the process or perform cleanup
37
+ // t.registerUncaughtPromise(reason, promise);
38
+ });
36
39
  ipcfile = process.argv[3];
37
40
  const f = await t.receiveTestResourceConfig(process.argv[2]);
38
41
  console.error("goodbye node with failures", f.fails);
@@ -24,7 +24,16 @@ class PM_WithEslintAndTsc extends base_js_1.PM_Base {
24
24
  this.summary = {};
25
25
  this.tscCheck = async ({ entrypoint, addableFiles, platform, }) => {
26
26
  console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`tsc < ${entrypoint}`)));
27
- this.typeCheckIsRunning(entrypoint);
27
+ try {
28
+ this.typeCheckIsRunning(entrypoint);
29
+ }
30
+ catch (e) {
31
+ console.error("error in tscCheck");
32
+ console.error(e);
33
+ console.error(entrypoint);
34
+ console.error(JSON.stringify(this.summary, null, 2));
35
+ process.exit(-1);
36
+ }
28
37
  const program = tsc_prog_1.default.createProgramFromConfig({
29
38
  basePath: process.cwd(), // always required, used for relative paths
30
39
  configFilePath: "tsconfig.json", // config to inherit from (optional)
@@ -56,7 +65,16 @@ class PM_WithEslintAndTsc extends base_js_1.PM_Base {
56
65
  };
57
66
  this.eslintCheck = async (entrypoint, platform, addableFiles) => {
58
67
  console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`eslint < ${entrypoint}`)));
59
- this.lintIsRunning(entrypoint);
68
+ try {
69
+ this.lintIsRunning(entrypoint);
70
+ }
71
+ catch (e) {
72
+ console.error("error in eslintCheck");
73
+ console.error(e);
74
+ console.error(entrypoint);
75
+ console.error(JSON.stringify(this.summary, null, 2));
76
+ process.exit(-1);
77
+ }
60
78
  const results = (await eslint.lintFiles(addableFiles))
61
79
  .filter((r) => r.messages.length)
62
80
  .filter((r) => {
@@ -74,7 +92,7 @@ class PM_WithEslintAndTsc extends base_js_1.PM_Base {
74
92
  const promptPath = (0, utils_1.promptPather)(entryPoint, platform, this.name);
75
93
  const testPaths = path_1.default.join("testeranto", "reports", this.name, entryPoint.split(".").slice(0, -1).join("."), platform, `tests.json`);
76
94
  const featuresPath = path_1.default.join("testeranto", "reports", this.name, platform, entryPoint.split(".").slice(0, -1).join("."), `featurePrompt.txt`);
77
- const logPath = path_1.default.join("testeranto", "reports", this.name, entryPoint.split(".").slice(0, -1).join("."), platform, `console_log.txt`);
95
+ const logPath = path_1.default.join("testeranto", "reports", this.name, entryPoint.split(".").slice(0, -1).join("."), platform, `logs.txt`);
78
96
  const lintPath = path_1.default.join("testeranto", "reports", this.name, entryPoint.split(".").slice(0, -1).join("."), platform, `lint_errors.json`);
79
97
  const typePath = path_1.default.join("testeranto", "reports", this.name, entryPoint.split(".").slice(0, -1).join("."), platform, `type_errors.txt`);
80
98
  const messagePath = path_1.default.join("testeranto", "reports", this.name, entryPoint.split(".").slice(0, -1).join("."), platform, `message`);
@@ -98,92 +116,91 @@ ${addableFiles
98
116
  this.checkForShutdown();
99
117
  };
100
118
  this.typeCheckIsRunning = (src) => {
119
+ if (!this.summary[src]) {
120
+ throw `this.summary[${src}] is undefined`;
121
+ }
101
122
  this.summary[src].typeErrors = "?";
102
123
  };
103
124
  this.typeCheckIsNowDone = (src, failures) => {
125
+ if (!this.summary[src]) {
126
+ throw `this.summary[${src}] is undefined`;
127
+ }
128
+ if (failures === 0) {
129
+ console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`tsc > ${src}`)));
130
+ }
131
+ else {
132
+ console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`tsc > ${src} failed ${failures} times`)));
133
+ }
104
134
  this.summary[src].typeErrors = failures;
105
135
  this.writeBigBoard();
106
136
  this.checkForShutdown();
107
137
  };
108
138
  this.lintIsRunning = (src) => {
139
+ if (!this.summary[src]) {
140
+ throw `this.summary[${src}] is undefined`;
141
+ }
109
142
  this.summary[src].staticErrors = "?";
110
143
  this.writeBigBoard();
111
144
  };
112
145
  this.lintIsNowDone = (src, failures) => {
146
+ if (!this.summary[src]) {
147
+ throw `this.summary[${src}] is undefined`;
148
+ }
149
+ if (failures === 0) {
150
+ console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`eslint > ${src}`)));
151
+ }
152
+ else {
153
+ console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`eslint > ${src} failed ${failures} times`)));
154
+ }
113
155
  this.summary[src].staticErrors = failures;
114
156
  this.writeBigBoard();
115
157
  this.checkForShutdown();
116
158
  };
117
159
  this.bddTestIsRunning = (src) => {
118
- this.summary[src].runTimeError = "?";
160
+ if (!this.summary[src]) {
161
+ throw `this.summary[${src}] is undefined`;
162
+ }
163
+ this.summary[src].runTimeErrors = "?";
119
164
  this.writeBigBoard();
120
165
  };
121
166
  this.bddTestIsNowDone = (src, failures) => {
122
- this.summary[src].runTimeError = failures;
167
+ if (!this.summary[src]) {
168
+ throw `this.summary[${src}] is undefined`;
169
+ }
170
+ this.summary[src].runTimeErrors = failures;
123
171
  this.writeBigBoard();
124
172
  this.checkForShutdown();
125
173
  };
126
174
  this.writeBigBoard = () => {
127
175
  fs_1.default.writeFileSync(`./testeranto/reports/${this.name}/summary.json`, JSON.stringify(this.summary, null, 2));
128
176
  };
129
- this.checkForShutdown = () => {
130
- console.log(ansi_colors_1.default.inverse(`checkForShutdown`));
131
- this.writeBigBoard();
132
- if (this.mode === "dev")
133
- return;
134
- let inflight = false;
135
- Object.keys(this.summary).forEach((k) => {
136
- if (this.summary[k].prompt === "?") {
137
- console.log(ansi_colors_1.default.blue(ansi_colors_1.default.inverse(`🕕 prompt ${k}`)));
138
- inflight = true;
139
- }
140
- });
141
- Object.keys(this.summary).forEach((k) => {
142
- if (this.summary[k].runTimeError === "?") {
143
- console.log(ansi_colors_1.default.blue(ansi_colors_1.default.inverse(`🕕 runTimeError ${k}`)));
144
- inflight = true;
145
- }
146
- });
147
- Object.keys(this.summary).forEach((k) => {
148
- if (this.summary[k].staticErrors === "?") {
149
- console.log(ansi_colors_1.default.blue(ansi_colors_1.default.inverse(`🕕 staticErrors ${k}`)));
150
- inflight = true;
151
- }
152
- });
153
- Object.keys(this.summary).forEach((k) => {
154
- if (this.summary[k].typeErrors === "?") {
155
- console.log(ansi_colors_1.default.blue(ansi_colors_1.default.inverse(`🕕 typeErrors ${k}`)));
156
- inflight = true;
157
- }
158
- });
159
- this.writeBigBoard();
160
- if (!inflight) {
161
- this.browser.disconnect().then(() => {
162
- console.log(ansi_colors_1.default.inverse(`${this.name} has been tested. Goodbye.`));
163
- process.exit();
164
- });
165
- }
166
- };
167
177
  this.name = name;
168
178
  this.mode = mode;
179
+ this.summary = {};
180
+ // Initialize all test entries first
169
181
  this.configs.tests.forEach(([t, rt, tr, sidecars]) => {
170
- this.summary[t] = {
171
- runTimeError: "?",
172
- typeErrors: "?",
173
- staticErrors: "?",
174
- prompt: "?",
175
- failingFeatures: {},
176
- };
177
- sidecars.forEach(([t]) => {
178
- this.summary[t] = {
179
- // runTimeError: "?",
180
- typeErrors: "?",
181
- staticErrors: "?",
182
- // prompt: "?",
183
- // failingFeatures: {},
184
- };
182
+ this.ensureSummaryEntry(t);
183
+ sidecars.forEach(([sidecarName]) => {
184
+ this.ensureSummaryEntry(sidecarName, true);
185
185
  });
186
186
  });
187
187
  }
188
+ ensureSummaryEntry(src, isSidecar = false) {
189
+ if (!this.summary[src]) {
190
+ this.summary[src] = {
191
+ typeErrors: undefined,
192
+ staticErrors: undefined,
193
+ runTimeErrors: undefined,
194
+ prompt: undefined,
195
+ failingFeatures: {},
196
+ };
197
+ if (isSidecar) {
198
+ // Sidecars don't need all fields
199
+ // delete this.summary[src].runTimeError;
200
+ // delete this.summary[src].prompt;
201
+ }
202
+ }
203
+ return this.summary[src];
204
+ }
188
205
  }
189
206
  exports.PM_WithEslintAndTsc = PM_WithEslintAndTsc;