testeranto 0.171.0 → 0.173.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 (195) hide show
  1. package/README.md +2 -4
  2. package/dist/common/src/PM/base.js +4 -0
  3. package/dist/common/src/PM/main.js +11 -4
  4. package/dist/common/src/PM/node.js +1 -1
  5. package/dist/common/src/PM/web.js +3 -3
  6. package/dist/common/src/ReportServer.js +2 -126
  7. package/dist/common/src/ReportServer.test.ts/index.js +78 -0
  8. package/dist/common/src/ReportServerLib.js +135 -0
  9. package/dist/common/src/components/pure/ProjectPageView.test/implementation.js +1 -1
  10. package/dist/common/src/lib/abstractBase.js +2 -0
  11. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.implementation.js +10 -9
  12. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.specification.js +7 -7
  13. package/dist/common/src/lib/basebuilder.js +8 -2
  14. package/dist/common/src/lib/pmProxy.js +54 -150
  15. package/dist/common/testeranto.config.js +35 -20
  16. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  17. package/dist/module/src/PM/base.js +4 -0
  18. package/dist/module/src/PM/main.js +11 -4
  19. package/dist/module/src/PM/node.js +1 -1
  20. package/dist/module/src/PM/web.js +3 -3
  21. package/dist/module/src/ReportServer.js +2 -123
  22. package/dist/module/src/ReportServer.test.ts/index.js +73 -0
  23. package/dist/module/src/ReportServerLib.js +128 -0
  24. package/dist/module/src/TestPage.js +29 -17
  25. package/dist/module/src/components/pure/ProjectPageView.test/implementation.js +1 -1
  26. package/dist/module/src/components/pure/TestPageView.js +29 -17
  27. package/dist/module/src/lib/abstractBase.js +2 -0
  28. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.implementation.js +10 -9
  29. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.specification.js +7 -7
  30. package/dist/module/src/lib/basebuilder.js +8 -2
  31. package/dist/module/src/lib/pmProxy.js +54 -150
  32. package/dist/module/testeranto.config.js +35 -20
  33. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  34. package/dist/prebuild/App.css +13 -9
  35. package/dist/prebuild/App.js +102 -99
  36. package/dist/prebuild/ReportServer.mjs +15 -9
  37. package/dist/prebuild/run.mjs +14 -4
  38. package/dist/types/src/PM/node.d.ts +1 -1
  39. package/dist/types/src/PM/web.d.ts +1 -1
  40. package/dist/types/src/ReportServer.test.ts/index.d.ts +29 -0
  41. package/dist/types/src/ReportServerLib.d.ts +2 -0
  42. package/dist/types/src/Types.d.ts +0 -1
  43. package/dist/types/src/components/pure/ProjectPageView.test/index.d.ts +1 -1
  44. package/dist/types/src/lib/abstractBase.d.ts +1 -1
  45. package/dist/types/src/lib/baseBuilder.test/baseBuilder.test.types.d.ts +7 -4
  46. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  47. package/package.json +6 -5
  48. package/src/PM/base.ts +5 -0
  49. package/src/PM/main.ts +12 -4
  50. package/src/PM/node.ts +1 -1
  51. package/src/PM/web.ts +3 -3
  52. package/src/ReportServer.test.ts/index.ts +194 -0
  53. package/src/ReportServer.ts +2 -132
  54. package/src/ReportServerLib.ts +144 -0
  55. package/src/TestPage.tsx +65 -5
  56. package/src/Types.ts +0 -1
  57. package/src/components/pure/ProjectPageView.test/implementation.tsx +1 -1
  58. package/src/components/pure/TestPageView.tsx +65 -5
  59. package/src/lib/abstractBase.ts +4 -1
  60. package/src/lib/baseBuilder.test/baseBuilder.test.implementation.ts +22 -10
  61. package/src/lib/baseBuilder.test/baseBuilder.test.specification.ts +9 -9
  62. package/src/lib/baseBuilder.test/baseBuilder.test.types.ts +7 -4
  63. package/src/lib/basebuilder.ts +7 -4
  64. package/src/lib/pmProxy.ts +78 -155
  65. package/testeranto/App.css +13 -9
  66. package/testeranto/App.js +102 -99
  67. package/testeranto/bundles/node/allTests/metafile.json +38 -781
  68. package/testeranto/bundles/node/allTests/src/lib/baseBuilder.test/baseBuilder.test.node.mjs +983 -24
  69. package/testeranto/bundles/node/core/metafile.json +486 -0
  70. package/testeranto/bundles/{pure/allTests/chunk-VMUSFSZM.mjs → node/core/src/lib/baseBuilder.test/baseBuilder.test.node.mjs} +797 -412
  71. package/testeranto/bundles/node/staticSite/metafile.json +593 -0
  72. package/testeranto/bundles/node/staticSite/src/ReportServer.test.ts/index.mjs +1594 -0
  73. package/testeranto/bundles/pure/allTests/metafile.json +157 -585
  74. package/testeranto/bundles/pure/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure.mjs +740 -27
  75. package/testeranto/bundles/pure/core/metafile.json +626 -0
  76. package/testeranto/bundles/{web/allTests/chunk-U7AW26HL.mjs → pure/core/src/lib/baseBuilder.test/baseBuilder.test.pure.mjs} +507 -410
  77. package/testeranto/bundles/pure/staticSite/metafile.json +8 -0
  78. package/testeranto/bundles/web/allTests/metafile.json +107 -15292
  79. package/testeranto/bundles/web/allTests/src/lib/baseBuilder.test/baseBuilder.test.web.mjs +893 -45
  80. package/testeranto/bundles/web/core/metafile.json +780 -0
  81. package/testeranto/bundles/web/core/src/lib/baseBuilder.test/baseBuilder.test.web.html +19 -0
  82. package/testeranto/bundles/web/{allTests/chunk-RLDR6LJN.mjs → core/src/lib/baseBuilder.test/baseBuilder.test.web.mjs} +580 -518
  83. package/testeranto/bundles/web/staticSite/metafile.json +8 -0
  84. package/testeranto/projects.json +2 -1
  85. package/testeranto/reports/allTests/config.json +0 -64
  86. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/lint_errors.txt +2 -0
  87. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/logs.txt +11 -13
  88. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/prompt.txt +10 -0
  89. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/suite-0/given-testInitialization/then-0/butThen/hello.txt +1 -0
  90. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/tests.json +10 -18
  91. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/type_errors.txt +25 -13
  92. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/lint_errors.txt +2 -0
  93. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/prompt.txt +8 -0
  94. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/type_errors.txt +24 -12
  95. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/lint_errors.txt +2 -0
  96. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/logs.txt +49 -55
  97. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/prompt.txt +12 -2
  98. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/suite-0/given-testInitialization/then-0/butThen/hello.txt +1 -0
  99. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/tests.json +10 -18
  100. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/type_errors.txt +24 -12
  101. package/testeranto/reports/allTests/summary.json +6 -62
  102. package/testeranto/reports/core/config.json +24 -0
  103. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/lint_errors.txt +2 -0
  104. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/logs.txt +32 -0
  105. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/message.txt +2 -0
  106. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/prompt.txt +26 -0
  107. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/suite-0/given-testInitialization/then-0/butThen/hello.txt +1 -0
  108. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/tests.json +69 -0
  109. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/type_errors.txt +74 -0
  110. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/lint_errors.txt +2 -0
  111. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/message.txt +2 -0
  112. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/prompt.txt +26 -0
  113. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/type_errors.txt +74 -0
  114. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/lint_errors.txt +2 -0
  115. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/logs.txt +61 -0
  116. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/message.txt +2 -0
  117. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/prompt.txt +26 -0
  118. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/suite-0/given-testInitialization/then-0/butThen/hello.txt +1 -0
  119. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/tests.json +69 -0
  120. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/type_errors.txt +74 -0
  121. package/testeranto/reports/core/summary.json +23 -0
  122. package/testeranto/reports/staticSite/config.json +24 -0
  123. package/testeranto/reports/staticSite/src/ReportServer.test.ts/index/node/lint_errors.txt +5 -0
  124. package/testeranto/reports/staticSite/src/ReportServer.test.ts/index/node/logs.txt +44 -0
  125. package/testeranto/reports/staticSite/src/ReportServer.test.ts/index/node/message.txt +2 -0
  126. package/testeranto/reports/staticSite/src/ReportServer.test.ts/index/node/prompt.txt +23 -0
  127. package/testeranto/reports/{allTests/src/lib/core.test/core.test → staticSite/src/ReportServer.test.ts/index}/node/type_errors.txt +21 -32
  128. package/testeranto/reports/staticSite/summary.json +9 -0
  129. package/testeranto/reportsnode_build_errors +17 -0
  130. package/testeranto.config.ts +37 -20
  131. package/testeranto/bundles/node/allTests/chunk-3EUGBAOM.mjs +0 -113
  132. package/testeranto/bundles/node/allTests/chunk-E75CSRER.mjs +0 -800
  133. package/testeranto/bundles/node/allTests/chunk-M6DO7VMB.mjs +0 -252
  134. package/testeranto/bundles/node/allTests/src/lib/BaseSuite.test/node.test.mjs +0 -323
  135. package/testeranto/bundles/node/allTests/src/lib/classBuilder.test/classBuilder.test.mjs +0 -411
  136. package/testeranto/bundles/node/allTests/src/lib/core.test/core.test.mjs +0 -528
  137. package/testeranto/bundles/node/allTests/src/lib/pmProxy.test/index.mjs +0 -4650
  138. package/testeranto/bundles/pure/allTests/chunk-KHDVEHF7.mjs +0 -185
  139. package/testeranto/bundles/pure/allTests/src/Pure.test.mjs +0 -429
  140. package/testeranto/bundles/pure/allTests/src/lib/BaseSuite.test/pure.test.mjs +0 -425
  141. package/testeranto/bundles/web/allTests/chunk-HPYA4YZC.mjs +0 -2283
  142. package/testeranto/bundles/web/allTests/src/components/pure/ProjectPageView.test/index.html +0 -19
  143. package/testeranto/bundles/web/allTests/src/components/pure/ProjectPageView.test/index.mjs +0 -37524
  144. package/testeranto/bundles/web/allTests/src/lib/BaseSuite.test/web.test.html +0 -19
  145. package/testeranto/bundles/web/allTests/src/lib/BaseSuite.test/web.test.mjs +0 -440
  146. package/testeranto/reports/allTests/src/Pure.test/pure/lint_errors.txt +0 -0
  147. package/testeranto/reports/allTests/src/Pure.test/pure/message.txt +0 -2
  148. package/testeranto/reports/allTests/src/Pure.test/pure/prompt.txt +0 -13
  149. package/testeranto/reports/allTests/src/Pure.test/pure/type_errors.txt +0 -101
  150. package/testeranto/reports/allTests/src/components/pure/ProjectPageView.test/index/web/lint_errors.txt +0 -13
  151. package/testeranto/reports/allTests/src/components/pure/ProjectPageView.test/index/web/logs.txt +0 -50
  152. package/testeranto/reports/allTests/src/components/pure/ProjectPageView.test/index/web/message.txt +0 -2
  153. package/testeranto/reports/allTests/src/components/pure/ProjectPageView.test/index/web/prompt.txt +0 -17
  154. package/testeranto/reports/allTests/src/components/pure/ProjectPageView.test/index/web/tests.json +0 -32
  155. package/testeranto/reports/allTests/src/components/pure/ProjectPageView.test/index/web/type_errors.txt +0 -68
  156. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/lint_errors.txt +0 -0
  157. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/logs.txt +0 -52
  158. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/message.txt +0 -2
  159. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/prompt.txt +0 -13
  160. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/tests.json +0 -31
  161. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/type_errors.txt +0 -111
  162. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/bdd_errors.txt +0 -1
  163. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/lint_errors.txt +0 -0
  164. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/message.txt +0 -2
  165. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/prompt.txt +0 -14
  166. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/tests.json +0 -31
  167. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/type_errors.txt +0 -111
  168. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/bdd_errors.txt +0 -1
  169. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/lint_errors.txt +0 -0
  170. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/logs.txt +0 -108
  171. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/message.txt +0 -2
  172. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/prompt.txt +0 -14
  173. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/tests.json +0 -31
  174. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/type_errors.txt +0 -111
  175. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/bdd_errors.txt +0 -1
  176. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/lint_errors.txt +0 -0
  177. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/logs.txt +0 -700
  178. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/message.txt +0 -2
  179. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/prompt.txt +0 -16
  180. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/tests.json +0 -164
  181. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/type_errors.txt +0 -138
  182. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/lint_errors.txt +0 -21
  183. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/logs.txt +0 -7
  184. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/message.txt +0 -2
  185. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/prompt.txt +0 -18
  186. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/bdd_errors.txt +0 -1
  187. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/lint_errors.txt +0 -20
  188. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/logs.txt +0 -31
  189. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/message.txt +0 -2
  190. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/prompt.txt +0 -16
  191. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/tests.json +0 -134
  192. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/type_errors.txt +0 -76
  193. package/testeranto/reportsweb_build_errors +0 -25
  194. /package/testeranto/reports/{allTests/src/components/pure/ProjectPageView.test/index/web → core/src/lib/baseBuilder.test/baseBuilder.test.node/node}/bdd_errors.txt +0 -0
  195. /package/testeranto/reports/{allTests/src/lib/BaseSuite.test/node.test/node → core/src/lib/baseBuilder.test/baseBuilder.test.web/web}/bdd_errors.txt +0 -0
package/README.md CHANGED
@@ -34,6 +34,8 @@
34
34
 
35
35
  ## Quick Start
36
36
 
37
+ 0. Install Aider and signup for a LLM service.
38
+
37
39
  1. Install testeranto:
38
40
 
39
41
  ```bash
@@ -92,7 +94,6 @@ yarn t-build rectangle.test.ts yourProject once && yarn t-run rectangle.test.ts
92
94
  | `yarn t-build <YOUR_TESTS> dev\|once` | Build test bundles (watch or single-run mode) |
93
95
  | `yarn t-run <YOUR_TESTS> dev\|once` | Run tests (watch or single-run mode) |
94
96
  | `yarn t-report` | Launch test report server |
95
- | `yarn t-aider` | Fix failing tests with AI |
96
97
 
97
98
  ## Example workflow:
98
99
 
@@ -111,9 +112,6 @@ yarn t-run test/rectangle.test.ts dev
111
112
  # Or for single-run mode:
112
113
  yarn t-build test/rectangle.test.ts once
113
114
  yarn t-run test/rectangle.test.ts once
114
-
115
- # Get AI help with failures
116
- yarn t-aider
117
115
  ```
118
116
 
119
117
  ## Aider
@@ -119,6 +119,10 @@ class PM_Base {
119
119
  return false;
120
120
  }
121
121
  async writeFileSync(filepath, contents, testName) {
122
+ console.log("writeFileSync");
123
+ console.log("filepath", filepath);
124
+ console.log("contents", contents);
125
+ console.log("testName", testName);
122
126
  return new Promise(async (res) => {
123
127
  fs_1.default.mkdirSync(path_1.default.dirname(filepath), {
124
128
  recursive: true,
@@ -108,10 +108,12 @@ function isValidUrl(string) {
108
108
  }
109
109
  // Wait for file to exist, checks every 2 seconds by default
110
110
  async function pollForFile(path, timeout = 2000) {
111
+ console.log(`pollForFile: ${path}...`);
111
112
  const intervalObj = setInterval(function () {
112
113
  const file = path;
113
114
  const fileExists = fs_1.default.existsSync(file);
114
115
  if (fileExists) {
116
+ console.log(`metafile found: ${path}!`);
115
117
  clearInterval(intervalObj);
116
118
  }
117
119
  }, timeout);
@@ -320,7 +322,12 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
320
322
  const ipcfile = "/tmp/tpipe_" + Math.random();
321
323
  const child = (0, node_child_process_1.spawn)("node",
322
324
  // "node",
323
- ["--inspect-brk", builtfile, testResources, ipcfile], {
325
+ [
326
+ // "--inspect-brk",
327
+ builtfile,
328
+ testResources,
329
+ ipcfile,
330
+ ], {
324
331
  stdio: ["pipe", "pipe", "pipe", "ipc"],
325
332
  });
326
333
  let buffer = new Buffer("");
@@ -797,7 +804,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
797
804
  close();
798
805
  });
799
806
  page.on("console", (log) => {
800
- console.log("console message: ", log.text());
807
+ // console.log("console message: ", log.text());
801
808
  if (oStream.closed) {
802
809
  console.log("missed console message: ", log.text());
803
810
  return;
@@ -1034,9 +1041,9 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
1034
1041
  slowMo: 1,
1035
1042
  waitForInitialPage: false,
1036
1043
  executablePath,
1037
- headless: false,
1044
+ headless: true,
1038
1045
  dumpio: false,
1039
- devtools: true,
1046
+ devtools: false,
1040
1047
  args: [
1041
1048
  "--disable-features=site-per-process",
1042
1049
  "--allow-file-access-from-files",
@@ -114,7 +114,7 @@ class PM_Node extends _1.PM {
114
114
  async write(uid, contents) {
115
115
  return await this.send("write", ...arguments);
116
116
  }
117
- async writeFileSync(filepath, contents) {
117
+ async writeFileSync([filepath, contents]) {
118
118
  return await this.send("writeFileSync", this.testResourceConfiguration.fs + "/" + filepath, contents, this.testResourceConfiguration.name);
119
119
  }
120
120
  async createWriteStream(filepath) {
@@ -70,8 +70,8 @@ class PM_Web extends _1.PM {
70
70
  customScreenShot(x, y) {
71
71
  const opts = x[0];
72
72
  const page = x[1];
73
- console.log("customScreenShot 2 opts", opts);
74
- console.log("customScreenShot 2 page", page);
73
+ // console.log("customScreenShot 2 opts", opts);
74
+ // console.log("customScreenShot 2 page", page);
75
75
  return window["customScreenShot"](Object.assign(Object.assign({}, opts), { path: this.testResourceConfiguration.fs + "/" + opts.path }), this.testResourceConfiguration.name, page);
76
76
  }
77
77
  existsSync(destFolder) {
@@ -83,7 +83,7 @@ class PM_Web extends _1.PM {
83
83
  write(uid, contents) {
84
84
  return window["write"](uid, contents);
85
85
  }
86
- writeFileSync(filepath, contents) {
86
+ writeFileSync([filepath, contents]) {
87
87
  return window["writeFileSync"](this.testResourceConfiguration.fs + "/" + filepath, contents, this.testResourceConfiguration.name);
88
88
  }
89
89
  createWriteStream(filepath) {
@@ -1,129 +1,5 @@
1
1
  "use strict";
2
2
  // simple http server to preview reports
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
3
  Object.defineProperty(exports, "__esModule", { value: true });
7
- const node_static_1 = __importDefault(require("node-static"));
8
- const http_1 = __importDefault(require("http"));
9
- const path_1 = __importDefault(require("path"));
10
- const fs_1 = __importDefault(require("fs"));
11
- const fileServer = new node_static_1.default.Server("./", {
12
- cache: false,
13
- headers: {
14
- "Cache-Control": "no-cache, no-store, must-revalidate",
15
- "Pragma": "no-cache",
16
- "Expires": "0"
17
- }
18
- });
19
- const server = http_1.default.createServer((req, res) => {
20
- // Handle potential double responses
21
- let responded = false;
22
- const safeResponse = (handler) => {
23
- if (responded)
24
- return;
25
- responded = true;
26
- try {
27
- handler();
28
- }
29
- catch (err) {
30
- console.error('Error handling request:', err);
31
- if (!res.headersSent) {
32
- res.writeHead(500);
33
- }
34
- res.end('Internal Server Error');
35
- }
36
- };
37
- req.on('error', (err) => {
38
- console.error('Request error:', err);
39
- safeResponse(() => {
40
- if (!res.headersSent) {
41
- res.writeHead(400);
42
- }
43
- res.end('Bad Request');
44
- });
45
- });
46
- req.on('end', () => {
47
- safeResponse(() => {
48
- const filePath = path_1.default.join(process.cwd(), req.url || '');
49
- // First check if file exists
50
- fs_1.default.stat(filePath, (err, stats) => {
51
- if (err || !stats.isFile()) {
52
- // Check if directory exists
53
- fs_1.default.stat(filePath, (dirErr, dirStats) => {
54
- if (!dirErr && dirStats.isDirectory()) {
55
- // Serve directory listing
56
- fs_1.default.readdir(filePath, (readErr, files) => {
57
- if (readErr) {
58
- res.writeHead(500);
59
- return res.end('Error reading directory');
60
- }
61
- res.writeHead(200, { 'Content-Type': 'text/html' });
62
- res.write(`
63
- <html>
64
- <head>
65
- <title>Directory Listing: ${req.url}</title>
66
- <style>
67
- body { font-family: sans-serif; margin: 2rem; }
68
- h1 { color: #333; }
69
- ul { list-style: none; padding: 0; }
70
- li { padding: 0.5rem; }
71
- li a { color: #0366d6; text-decoration: none; }
72
- li a:hover { text-decoration: underline; }
73
- </style>
74
- </head>
75
- <body>
76
- <h1>Directory: ${req.url}</h1>
77
- <ul>
78
- ${files.map(file => `
79
- <li>
80
- <a href="${path_1.default.join(req.url || '', file)}">
81
- ${file}${file.endsWith('/') ? '/' : ''}
82
- </a>
83
- </li>
84
- `).join('')}
85
- </ul>
86
- </body>
87
- </html>
88
- `);
89
- res.end();
90
- });
91
- }
92
- else {
93
- // Neither file nor directory exists - send 404
94
- if (!res.headersSent) {
95
- res.writeHead(404, { 'Content-Type': 'text/plain' });
96
- res.end('File not found');
97
- }
98
- }
99
- });
100
- return;
101
- }
102
- // File exists - serve it through node-static
103
- const serve = () => {
104
- fileServer.serve(req, res, (err) => {
105
- if (err && !res.headersSent) {
106
- res.writeHead(err.status || 500);
107
- res.end(err.message);
108
- }
109
- });
110
- };
111
- // Ensure we don't double-serve
112
- if (!res.headersSent) {
113
- serve();
114
- }
115
- });
116
- });
117
- });
118
- req.resume();
119
- });
120
- server.listen(8080, () => {
121
- console.log('Server running on http://localhost:8080');
122
- console.log('Serving files from:', process.cwd());
123
- });
124
- server.on('error', (err) => {
125
- console.error('Server error:', err);
126
- });
127
- process.on('uncaughtException', (err) => {
128
- console.error('Uncaught exception:', err);
129
- });
4
+ const ReportServerLib_1 = require("./ReportServerLib");
5
+ (0, ReportServerLib_1.ReportServerOfPort)(process.argv[2]);
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ /* eslint-disable @typescript-eslint/no-unused-vars */
4
+ /* eslint-disable @typescript-eslint/no-empty-object-type */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const Node_1 = __importDefault(require("../Node"));
10
+ const ReportServerLib_1 = require("../ReportServerLib");
11
+ const specification = (Suite, Given, When, Then) => [
12
+ Suite.Default("the http server which is used in development", {
13
+ initialization: Given["the http server which is used in development"](["It should serve the front page", "It should serve the ReportApp"], [], [
14
+ Then["the frontpage looks good"](),
15
+ // Then["the projects page looks good"](),
16
+ // Then["a project page looks good"](),
17
+ // Then["a test page looks good"](),
18
+ ]),
19
+ }),
20
+ ];
21
+ const implementation = {
22
+ suites: {
23
+ Default: "the http server which is used in development",
24
+ },
25
+ givens: {
26
+ "the http server which is used in development": function (subject) {
27
+ // throw new Error("Function not implemented.");
28
+ return subject;
29
+ },
30
+ },
31
+ // There are no "whens", it is a stateless server.
32
+ whens: {},
33
+ thens: {
34
+ "the frontpage looks good": async (port, utils) => {
35
+ // throw new Error("Function not implemented.");
36
+ // utils.newPage(`localhost:${port}`);
37
+ debugger;
38
+ const page = await utils.newPage();
39
+ utils.goto(page, `localhost:${port}`);
40
+ utils.customScreenShot({ path: `frontpage.png` }, page);
41
+ return;
42
+ },
43
+ "the projects page looks good": function () {
44
+ throw new Error("Function not implemented.");
45
+ },
46
+ "a project page looks good": function () {
47
+ throw new Error("Function not implemented.");
48
+ },
49
+ "a test page looks good": function () {
50
+ throw new Error("Function not implemented.");
51
+ },
52
+ },
53
+ };
54
+ const adapter = {
55
+ assertThis: function (x) {
56
+ throw new Error("Function not implemented.");
57
+ },
58
+ andWhen: function (store, whenCB, testResource, pm) {
59
+ throw new Error("Function not implemented.");
60
+ },
61
+ butThen: function (store, thenCB, testResource, pm) {
62
+ throw new Error("Function not implemented.");
63
+ },
64
+ afterAll: function (store, pm) {
65
+ throw new Error("Function not implemented.");
66
+ },
67
+ afterEach: function (store, key, pm) {
68
+ throw new Error("Function not implemented.");
69
+ },
70
+ beforeAll: async function (input, testResource, pm) {
71
+ await new Promise((res, rej) => input(testResource.ports[0]));
72
+ return testResource.ports[0];
73
+ },
74
+ beforeEach: function (subject, initializer, testResource, initialValues, pm) {
75
+ throw new Error("Function not implemented.");
76
+ },
77
+ };
78
+ exports.default = (0, Node_1.default)(ReportServerLib_1.ReportServerOfPort, specification, implementation, adapter);
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ // simple http server to preview reports
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ReportServerOfPort = void 0;
8
+ const node_static_1 = __importDefault(require("node-static"));
9
+ const http_1 = __importDefault(require("http"));
10
+ const path_1 = __importDefault(require("path"));
11
+ const fs_1 = __importDefault(require("fs"));
12
+ const fileServer = new node_static_1.default.Server("./", {
13
+ cache: false,
14
+ headers: {
15
+ "Cache-Control": "no-cache, no-store, must-revalidate",
16
+ Pragma: "no-cache",
17
+ Expires: "0",
18
+ },
19
+ });
20
+ const server = http_1.default.createServer((req, res) => {
21
+ // Handle potential double responses
22
+ let responded = false;
23
+ const safeResponse = (handler) => {
24
+ if (responded)
25
+ return;
26
+ responded = true;
27
+ try {
28
+ handler();
29
+ }
30
+ catch (err) {
31
+ console.error("Error handling request:", err);
32
+ if (!res.headersSent) {
33
+ res.writeHead(500);
34
+ }
35
+ res.end("Internal Server Error");
36
+ }
37
+ };
38
+ req.on("error", (err) => {
39
+ console.error("Request error:", err);
40
+ safeResponse(() => {
41
+ if (!res.headersSent) {
42
+ res.writeHead(400);
43
+ }
44
+ res.end("Bad Request");
45
+ });
46
+ });
47
+ req.on("end", () => {
48
+ safeResponse(() => {
49
+ const filePath = path_1.default.join(process.cwd(), req.url || "");
50
+ // First check if file exists
51
+ fs_1.default.stat(filePath, (err, stats) => {
52
+ if (err || !stats.isFile()) {
53
+ // Check if directory exists
54
+ fs_1.default.stat(filePath, (dirErr, dirStats) => {
55
+ if (!dirErr && dirStats.isDirectory()) {
56
+ // Serve directory listing
57
+ fs_1.default.readdir(filePath, (readErr, files) => {
58
+ if (readErr) {
59
+ res.writeHead(500);
60
+ return res.end("Error reading directory");
61
+ }
62
+ res.writeHead(200, { "Content-Type": "text/html" });
63
+ res.write(`
64
+ <html>
65
+ <head>
66
+ <title>Directory Listing: ${req.url}</title>
67
+ <style>
68
+ body { font-family: sans-serif; margin: 2rem; }
69
+ h1 { color: #333; }
70
+ ul { list-style: none; padding: 0; }
71
+ li { padding: 0.5rem; }
72
+ li a { color: #0366d6; text-decoration: none; }
73
+ li a:hover { text-decoration: underline; }
74
+ </style>
75
+ </head>
76
+ <body>
77
+ <h1>Directory: ${req.url}</h1>
78
+ <ul>
79
+ ${files
80
+ .map((file) => `
81
+ <li>
82
+ <a href="${path_1.default.join(req.url || "", file)}">
83
+ ${file}${file.endsWith("/") ? "/" : ""}
84
+ </a>
85
+ </li>
86
+ `)
87
+ .join("")}
88
+ </ul>
89
+ </body>
90
+ </html>
91
+ `);
92
+ res.end();
93
+ });
94
+ }
95
+ else {
96
+ // Neither file nor directory exists - send 404
97
+ if (!res.headersSent) {
98
+ res.writeHead(404, { "Content-Type": "text/plain" });
99
+ res.end("File not found");
100
+ }
101
+ }
102
+ });
103
+ return;
104
+ }
105
+ // File exists - serve it through node-static
106
+ const serve = () => {
107
+ fileServer.serve(req, res, (err) => {
108
+ if (err && !res.headersSent) {
109
+ res.writeHead(err.status || 500);
110
+ res.end(err.message);
111
+ }
112
+ });
113
+ };
114
+ // Ensure we don't double-serve
115
+ if (!res.headersSent) {
116
+ serve();
117
+ }
118
+ });
119
+ });
120
+ });
121
+ req.resume();
122
+ });
123
+ server.on("error", (err) => {
124
+ console.error("Server error:", err);
125
+ });
126
+ process.on("uncaughtException", (err) => {
127
+ console.error("Uncaught exception:", err);
128
+ });
129
+ const start = (port) => server.listen(port, () => {
130
+ console.log(`Server running on http://localhost:${port}`);
131
+ console.log("Serving files from:", process.cwd());
132
+ });
133
+ const ReportServerOfPort = (port) => start(port);
134
+ exports.ReportServerOfPort = ReportServerOfPort;
135
+ // export default () => start(process.argv[2]);
@@ -38,7 +38,7 @@ exports.implementation = {
38
38
  thens: {
39
39
  happyPath: () => async ({ container, html }, pm) => {
40
40
  console.group('[Test] Verifying render output');
41
- debugger;
41
+ // debugger
42
42
  const p = await pm.page();
43
43
  await pm.customScreenShot({ path: "happyPath.png" }, p);
44
44
  chai_1.assert.equal(1, 1);
@@ -7,6 +7,8 @@ const pmProxy_js_1 = require("./pmProxy.js");
7
7
  class BaseGiven {
8
8
  addArtifact(path) {
9
9
  console.log(`[Artifact] Adding to ${this.constructor.name}:`, path);
10
+ // console.log("mark111");
11
+ // process.exit();
10
12
  this.artifacts.push(path);
11
13
  }
12
14
  constructor(name, features, whens, thens, givenCB, initialValues) {
@@ -8,7 +8,7 @@ exports.implementation = {
8
8
  Default: "BaseBuilder test suite",
9
9
  },
10
10
  givens: {
11
- Default: () => {
11
+ "the default BaseBuilder": () => {
12
12
  return new baseBuilder_test_mock_1.MockBaseBuilder({}, // input
13
13
  {}, // suitesOverrides
14
14
  {}, // givenOverrides
@@ -18,11 +18,11 @@ exports.implementation = {
18
18
  () => [] // testSpecification
19
19
  );
20
20
  },
21
- WithCustomInput: (input) => {
22
- return new baseBuilder_test_mock_1.MockBaseBuilder(input, {}, {}, {}, {}, {}, { ports: [] });
21
+ "a BaseBuilder with TestInput": (input) => {
22
+ return new baseBuilder_test_mock_1.MockBaseBuilder(input, {}, {}, {}, {}, { ports: [] }, () => []);
23
23
  },
24
- WithResourceRequirements: (requirements) => {
25
- return new baseBuilder_test_mock_1.MockBaseBuilder({}, {}, {}, {}, {}, {}, requirements);
24
+ "a BaseBuilder with Test Resource Requirements": (requirements) => {
25
+ return new baseBuilder_test_mock_1.MockBaseBuilder({}, {}, {}, {}, {}, requirements, () => []);
26
26
  },
27
27
  },
28
28
  whens: {
@@ -36,8 +36,9 @@ exports.implementation = {
36
36
  },
37
37
  },
38
38
  thens: {
39
- initializedProperly: () => (builder) => {
39
+ "it is initialized": () => (builder, utils) => {
40
40
  var _a;
41
+ utils.writeFileSync("hello.txt", "world");
41
42
  if (!(builder instanceof basebuilder_1.BaseBuilder)) {
42
43
  console.error("Builder instance:", builder);
43
44
  throw new Error(`Builder was not properly initialized - expected BaseBuilder instance but got ${(_a = builder === null || builder === void 0 ? void 0 : builder.constructor) === null || _a === void 0 ? void 0 : _a.name}`);
@@ -58,19 +59,19 @@ exports.implementation = {
58
59
  });
59
60
  return builder;
60
61
  },
61
- specsGenerated: () => (builder) => {
62
+ "it generates TestSpecifications": () => (builder) => {
62
63
  if (!Array.isArray(builder.specs)) {
63
64
  throw new Error("Specs were not generated");
64
65
  }
65
66
  return builder;
66
67
  },
67
- jobsCreated: () => (builder) => {
68
+ "it creates jobs": () => (builder) => {
68
69
  if (!Array.isArray(builder.testJobs)) {
69
70
  throw new Error("Test jobs were not created");
70
71
  }
71
72
  return builder;
72
73
  },
73
- artifactsTracked: () => (builder) => {
74
+ "it tracks artifacts": () => (builder) => {
74
75
  if (!Array.isArray(builder.artifacts)) {
75
76
  throw new Error("Artifacts array not initialized");
76
77
  }
@@ -4,14 +4,14 @@ exports.specification = void 0;
4
4
  const specification = (Suite, Given, When, Then) => {
5
5
  return [
6
6
  Suite.Default("Testing BaseBuilder functionality", {
7
- testInitialization: Given.Default(["BaseBuilder should initialize correctly"], [], [
8
- Then.initializedProperly(),
9
- Then.artifactsTracked(),
10
- Then.jobsCreated(),
11
- Then.specsGenerated(),
7
+ testInitialization: Given["the default BaseBuilder"](["BaseBuilder should initialize correctly"], [], [
8
+ Then["it is initialized"](),
9
+ Then["it tracks artifacts"](),
10
+ // Then["it creates jobs"](),
11
+ // Then["it generates TestSpecifications"](),
12
12
  ]),
13
- testSpecsGeneration: Given.Default(["BaseBuilder should generate specs from test specification"], [], [Then.specsGenerated()]),
14
- testJobsCreation: Given.Default(["BaseBuilder should create test jobs"], [], [Then.jobsCreated()]),
13
+ testSpecsGeneration: Given["the default BaseBuilder"](["BaseBuilder should generate specs from test specification"], [], [Then["it generates TestSpecifications"]()]),
14
+ testJobsCreation: Given["the default BaseBuilder"](["BaseBuilder should create test jobs"], [], [Then["it creates jobs"]()]),
15
15
  }),
16
16
  ];
17
17
  };
@@ -45,8 +45,14 @@ class BaseBuilder {
45
45
  // res(true);
46
46
  // });
47
47
  const fails = suiteDone.fails;
48
- await puppetMaster.writeFileSync(`bdd_errors.txt`, fails.toString());
49
- await puppetMaster.writeFileSync(`tests.json`, JSON.stringify(this.toObj(), null, 2));
48
+ await puppetMaster.writeFileSync([
49
+ `bdd_errors.txt`,
50
+ fails.toString(),
51
+ ]);
52
+ await puppetMaster.writeFileSync([
53
+ `tests.json`,
54
+ JSON.stringify(this.toObj(), null, 2),
55
+ ]);
50
56
  return {
51
57
  failed: fails > 0,
52
58
  fails,