testeranto 0.121.1 → 0.125.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (381) hide show
  1. package/.aider.chat.history.md +97001 -0
  2. package/.aider.conf.yml +5 -0
  3. package/.aider.input.history +9 -0
  4. package/.aider.tags.cache.v3/b7/e6/5be87b62aeaf2bc244ff41c1b61a.val +0 -0
  5. package/.aider.tags.cache.v3/cache.db +0 -0
  6. package/.aider.tags.cache.v3/e3/e6/3501625caf5d5eb171f0d248462e.val +0 -0
  7. package/.aider.tags.cache.v3/ec/c0/161c249c35be853cc40cf11f9267.val +0 -0
  8. package/README.md +9 -0
  9. package/dist/common/{Init.js → src/Init.js} +1 -32
  10. package/dist/common/src/Node.js +49 -0
  11. package/dist/common/src/PM/base.js +230 -0
  12. package/dist/common/{PM → src/PM}/main.js +300 -233
  13. package/dist/common/src/PM/node.js +161 -0
  14. package/dist/common/{PM/node.js → src/PM/pure.js} +27 -18
  15. package/dist/common/{PM → src/PM}/web.js +14 -47
  16. package/dist/common/{Node.js → src/Pure.js} +11 -9
  17. package/dist/common/{SubPackages/react/component/web.js → src/SubPackages/react/component/index.js} +5 -4
  18. package/dist/common/src/SubPackages/react/component/node.js +10 -0
  19. package/dist/common/src/SubPackages/react/component/pure.js +10 -0
  20. package/dist/common/{SubPackages/react/jsx → src/SubPackages/react/component}/web.js +2 -2
  21. package/dist/common/src/SubPackages/react/jsx/index.js +64 -0
  22. package/dist/common/src/SubPackages/react/jsx/pure.js +10 -0
  23. package/dist/common/src/SubPackages/react/jsx/web.js +10 -0
  24. package/dist/common/{SubPackages/react-dom/component/web.js → src/SubPackages/react-dom/component/dynamic.js} +8 -14
  25. package/dist/common/src/SubPackages/react-dom/component/node.js +10 -0
  26. package/dist/common/src/SubPackages/react-dom/component/pure.js +10 -0
  27. package/dist/common/src/SubPackages/react-dom/component/static.js +26 -0
  28. package/dist/common/src/SubPackages/react-dom/component/web.js +16 -0
  29. package/dist/common/src/SubPackages/react-dom/jsx/dynamic.js +31 -0
  30. package/dist/common/src/SubPackages/react-dom/jsx/node.js +10 -0
  31. package/dist/common/src/SubPackages/react-dom/jsx/pure.js +10 -0
  32. package/dist/common/src/SubPackages/react-dom/jsx/static.js +59 -0
  33. package/dist/common/src/SubPackages/react-dom/jsx/web.js +16 -0
  34. package/dist/common/src/SubPackages/react-test-renderer/component/index.js +15 -0
  35. package/dist/common/src/SubPackages/react-test-renderer/component/pure.js +8 -0
  36. package/dist/common/src/SubPackages/react-test-renderer/component/test/implementation.js +57 -0
  37. package/dist/common/src/SubPackages/react-test-renderer/component/test/node.js +10 -0
  38. package/dist/common/src/SubPackages/react-test-renderer/component/test/pure.js +10 -0
  39. package/dist/common/src/SubPackages/react-test-renderer/component/test/web.js +10 -0
  40. package/dist/common/src/SubPackages/react-test-renderer/jsx/pure.js +10 -0
  41. package/dist/common/{Web.js → src/Web.js} +1 -4
  42. package/dist/common/{build.js → src/build.js} +37 -57
  43. package/dist/common/{defaultConfig.js → src/defaultConfig.js} +1 -3
  44. package/dist/common/{esbuildConfigs → src/esbuildConfigs}/node.js +5 -4
  45. package/dist/common/src/esbuildConfigs/pure.js +41 -0
  46. package/dist/common/{esbuildConfigs → src/esbuildConfigs}/web.js +5 -2
  47. package/dist/common/src/examples/react/component/index.js +33 -0
  48. package/dist/common/src/examples/react/component/test.js +36 -0
  49. package/dist/common/{lib → src/lib}/abstractBase.js +50 -52
  50. package/dist/common/{lib → src/lib}/basebuilder.js +18 -13
  51. package/dist/common/{lib → src/lib}/core.js +5 -43
  52. package/dist/common/{lib → src/lib}/index.js +1 -1
  53. package/dist/common/{run.js → src/run.js} +5 -5
  54. package/dist/common/{utils.js → src/utils.js} +35 -1
  55. package/dist/common/testeranto.config.js +41 -0
  56. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  57. package/dist/module/{Init.js → src/Init.js} +1 -32
  58. package/dist/module/src/Node.js +42 -0
  59. package/dist/module/src/PM/base.js +223 -0
  60. package/dist/module/{PM → src/PM}/main.js +301 -234
  61. package/dist/module/src/PM/node.js +154 -0
  62. package/dist/module/{PM/node.js → src/PM/pure.js} +25 -16
  63. package/dist/module/{PM → src/PM}/web.js +14 -47
  64. package/dist/module/{Project.js → src/Project.js} +6 -3
  65. package/dist/module/{Node.js → src/Pure.js} +9 -7
  66. package/dist/module/{ReportClient.js → src/ReportClient.js} +1 -1
  67. package/dist/module/{SubPackages/react/component/web.js → src/SubPackages/react/component/index.js} +3 -4
  68. package/dist/module/src/SubPackages/react/component/node.js +5 -0
  69. package/dist/module/src/SubPackages/react/component/pure.js +5 -0
  70. package/dist/module/{SubPackages/react/jsx → src/SubPackages/react/component}/web.js +3 -3
  71. package/dist/module/src/SubPackages/react/jsx/index.js +58 -0
  72. package/dist/module/{SubPackages → src/SubPackages}/react/jsx/node.js +1 -1
  73. package/dist/module/src/SubPackages/react/jsx/pure.js +5 -0
  74. package/dist/module/src/SubPackages/react/jsx/web.js +5 -0
  75. package/dist/module/{SubPackages/react-dom/component/web.js → src/SubPackages/react-dom/component/dynamic.js} +5 -13
  76. package/dist/module/src/SubPackages/react-dom/component/node.js +5 -0
  77. package/dist/module/src/SubPackages/react-dom/component/pure.js +5 -0
  78. package/dist/module/src/SubPackages/react-dom/component/static.js +22 -0
  79. package/dist/module/src/SubPackages/react-dom/component/web.js +11 -0
  80. package/dist/module/{SubPackages/react-dom/jsx/node.js → src/SubPackages/react-dom/jsx/dynamic.js} +3 -7
  81. package/dist/module/src/SubPackages/react-dom/jsx/node.js +5 -0
  82. package/dist/module/src/SubPackages/react-dom/jsx/pure.js +5 -0
  83. package/dist/module/src/SubPackages/react-dom/jsx/static.js +53 -0
  84. package/dist/module/src/SubPackages/react-dom/jsx/web.js +11 -0
  85. package/dist/module/src/SubPackages/react-test-renderer/component/index.js +14 -0
  86. package/dist/module/src/SubPackages/react-test-renderer/component/pure.js +3 -0
  87. package/dist/module/src/SubPackages/react-test-renderer/component/test/implementation.js +54 -0
  88. package/dist/module/src/SubPackages/react-test-renderer/component/test/node.js +5 -0
  89. package/dist/module/src/SubPackages/react-test-renderer/component/test/pure.js +5 -0
  90. package/dist/module/src/SubPackages/react-test-renderer/component/test/web.js +5 -0
  91. package/dist/module/src/SubPackages/react-test-renderer/jsx/pure.js +5 -0
  92. package/dist/module/{TestReport.js → src/TestReport.js} +19 -16
  93. package/dist/module/{Web.js → src/Web.js} +1 -4
  94. package/dist/module/{build.js → src/build.js} +37 -57
  95. package/dist/module/{defaultConfig.js → src/defaultConfig.js} +1 -3
  96. package/dist/module/{esbuildConfigs → src/esbuildConfigs}/node.js +5 -4
  97. package/dist/module/src/esbuildConfigs/pure.js +36 -0
  98. package/dist/module/{esbuildConfigs → src/esbuildConfigs}/web.js +5 -2
  99. package/dist/module/src/examples/react/component/index.js +26 -0
  100. package/dist/module/src/examples/react/component/test.js +32 -0
  101. package/dist/module/{lib → src/lib}/abstractBase.js +50 -52
  102. package/dist/module/{lib → src/lib}/basebuilder.js +18 -13
  103. package/dist/module/{lib → src/lib}/core.js +5 -43
  104. package/dist/module/{lib → src/lib}/index.js +1 -1
  105. package/dist/module/{run.js → src/run.js} +5 -5
  106. package/dist/module/src/utils.js +53 -0
  107. package/dist/module/testeranto.config.js +39 -0
  108. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  109. package/dist/prebuild/Project.js +5 -2
  110. package/dist/prebuild/ReportClient.js +1 -1
  111. package/dist/prebuild/TestReport.js +4 -1
  112. package/dist/prebuild/build.mjs +115 -65
  113. package/dist/prebuild/init-docs.mjs +1 -0
  114. package/dist/prebuild/run.mjs +418 -382
  115. package/dist/tsconfig.tsbuildinfo +1 -1
  116. package/dist/types/src/Node.d.ts +9 -0
  117. package/dist/types/src/PM/base.d.ts +34 -0
  118. package/dist/types/{PM → src/PM}/index.d.ts +21 -22
  119. package/dist/types/{PM → src/PM}/main.d.ts +15 -10
  120. package/dist/types/src/PM/node.d.ts +38 -0
  121. package/dist/types/{PM/node.d.ts → src/PM/pure.d.ts} +16 -17
  122. package/dist/types/{PM → src/PM}/web.d.ts +10 -15
  123. package/dist/types/src/Pure.d.ts +9 -0
  124. package/dist/types/src/SubPackages/react/component/index.d.ts +4 -0
  125. package/dist/types/src/SubPackages/react/component/node.d.ts +4 -0
  126. package/dist/types/src/SubPackages/react/component/pure.d.ts +4 -0
  127. package/dist/types/src/SubPackages/react/component/web.d.ts +4 -0
  128. package/dist/types/src/SubPackages/react/jsx/index.d.ts +5 -0
  129. package/dist/types/src/SubPackages/react/jsx/node.d.ts +4 -0
  130. package/dist/types/src/SubPackages/react/jsx/pure.d.ts +4 -0
  131. package/dist/types/src/SubPackages/react/jsx/web.d.ts +4 -0
  132. package/dist/types/src/SubPackages/react-dom/component/dynamic.d.ts +20 -0
  133. package/dist/types/src/SubPackages/react-dom/component/node.d.ts +4 -0
  134. package/dist/types/src/SubPackages/react-dom/component/pure.d.ts +4 -0
  135. package/dist/types/src/SubPackages/react-dom/component/static.d.ts +9 -0
  136. package/dist/types/src/SubPackages/react-dom/component/web.d.ts +4 -0
  137. package/dist/types/src/SubPackages/react-dom/jsx/dynamic.d.ts +5 -0
  138. package/dist/types/src/SubPackages/react-dom/jsx/node.d.ts +4 -0
  139. package/dist/types/src/SubPackages/react-dom/jsx/pure.d.ts +4 -0
  140. package/dist/types/src/SubPackages/react-dom/jsx/static.d.ts +5 -0
  141. package/dist/types/src/SubPackages/react-dom/jsx/web.d.ts +5 -0
  142. package/dist/types/{SubPackages → src/SubPackages}/react-test-renderer/MemoExoticComponent/node.d.ts +1 -1
  143. package/dist/types/src/SubPackages/react-test-renderer/component/index.d.ts +5 -0
  144. package/dist/types/src/SubPackages/react-test-renderer/component/interface.d.ts +3 -0
  145. package/dist/types/src/SubPackages/react-test-renderer/component/node.d.ts +4 -0
  146. package/dist/types/src/SubPackages/react-test-renderer/component/pure.d.ts +4 -0
  147. package/dist/types/src/SubPackages/react-test-renderer/component/test/implementation.d.ts +4 -0
  148. package/dist/types/src/SubPackages/react-test-renderer/component/test/node.d.ts +3 -0
  149. package/dist/types/src/SubPackages/react-test-renderer/component/test/pure.d.ts +4 -0
  150. package/dist/types/src/SubPackages/react-test-renderer/component/test/web.d.ts +3 -0
  151. package/dist/types/src/SubPackages/react-test-renderer/component/web.d.ts +4 -0
  152. package/dist/types/{SubPackages → src/SubPackages}/react-test-renderer/fc/node.d.ts +1 -1
  153. package/dist/types/{SubPackages → src/SubPackages}/react-test-renderer/fc/web.d.ts +1 -1
  154. package/dist/types/src/SubPackages/react-test-renderer/jsx/index.d.ts +11 -0
  155. package/dist/types/src/SubPackages/react-test-renderer/jsx/node.d.ts +4 -0
  156. package/dist/types/src/SubPackages/react-test-renderer/jsx/pure.d.ts +4 -0
  157. package/dist/types/src/SubPackages/react-test-renderer/jsx/web.d.ts +4 -0
  158. package/dist/types/{SubPackages → src/SubPackages}/react-test-renderer/jsx-promised/node.d.ts +1 -1
  159. package/dist/types/{SubPackages → src/SubPackages}/react-test-renderer/jsx-promised/web.d.ts +1 -1
  160. package/dist/types/src/Types.d.ts +88 -0
  161. package/dist/types/src/Web.d.ts +9 -0
  162. package/dist/types/src/defaultConfig.d.ts +3 -0
  163. package/dist/types/src/esbuildConfigs/index.d.ts +4 -0
  164. package/dist/types/{esbuildConfigs → src/esbuildConfigs}/inputFilesPlugin.d.ts +2 -1
  165. package/dist/types/src/esbuildConfigs/node.d.ts +4 -0
  166. package/dist/types/src/esbuildConfigs/pure.d.ts +4 -0
  167. package/dist/types/src/esbuildConfigs/web.d.ts +4 -0
  168. package/dist/types/src/examples/react/component/index.d.ts +13 -0
  169. package/dist/types/src/examples/react/component/test.d.ts +17 -0
  170. package/dist/types/{lib → src/lib}/abstractBase.d.ts +35 -30
  171. package/dist/types/{lib → src/lib}/basebuilder.d.ts +7 -8
  172. package/dist/types/src/lib/classBuilder.d.ts +9 -0
  173. package/dist/types/src/lib/core.d.ts +7 -0
  174. package/dist/types/{lib → src/lib}/index.d.ts +14 -36
  175. package/dist/types/src/lib/types.d.ts +15 -0
  176. package/dist/types/src/utils.d.ts +18 -0
  177. package/dist/types/testeranto.config.d.ts +3 -0
  178. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  179. package/eslint.config.mjs +111 -0
  180. package/package.json +32 -8
  181. package/src/Init.ts +1 -39
  182. package/src/Node.ts +42 -46
  183. package/src/PM/base.ts +179 -181
  184. package/src/PM/index.ts +28 -21
  185. package/src/PM/main.ts +359 -318
  186. package/src/PM/node.ts +88 -44
  187. package/src/PM/pure.ts +209 -0
  188. package/src/PM/web.ts +19 -121
  189. package/src/Project.tsx +8 -5
  190. package/src/Pure.ts +69 -0
  191. package/src/ReportClient.tsx +8 -3
  192. package/src/SubPackages/react/component/index.ts +28 -0
  193. package/src/SubPackages/react/component/node.ts +12 -82
  194. package/src/SubPackages/react/component/pure.ts +17 -0
  195. package/src/SubPackages/react/component/web.ts +12 -81
  196. package/src/SubPackages/react/jsx/index.ts +56 -52
  197. package/src/SubPackages/react/jsx/node.ts +12 -29
  198. package/src/SubPackages/react/jsx/pure.ts +23 -0
  199. package/src/SubPackages/react/jsx/web.ts +17 -36
  200. package/src/SubPackages/react-dom/component/dynamic.ts +107 -0
  201. package/src/SubPackages/react-dom/component/node.ts +11 -116
  202. package/src/SubPackages/react-dom/component/pure.ts +17 -0
  203. package/src/SubPackages/react-dom/component/static.ts +41 -0
  204. package/src/SubPackages/react-dom/component/web.ts +7 -113
  205. package/src/SubPackages/react-dom/jsx/dynamic.ts +46 -0
  206. package/src/SubPackages/react-dom/jsx/node.ts +10 -58
  207. package/src/SubPackages/react-dom/jsx/pure.ts +18 -0
  208. package/src/SubPackages/react-dom/jsx/static.ts +87 -0
  209. package/src/SubPackages/react-dom/jsx/web.ts +7 -135
  210. package/src/SubPackages/react-test-renderer/component/index.ts +27 -51
  211. package/src/SubPackages/react-test-renderer/component/interface.ts +7 -5
  212. package/src/SubPackages/react-test-renderer/component/node.ts +7 -25
  213. package/src/SubPackages/react-test-renderer/component/pure.ts +18 -0
  214. package/src/SubPackages/react-test-renderer/component/test/implementation.ts +63 -0
  215. package/src/SubPackages/react-test-renderer/component/test/node.ts +14 -0
  216. package/src/SubPackages/react-test-renderer/component/test/pure.ts +14 -0
  217. package/src/SubPackages/react-test-renderer/component/test/web.ts +14 -0
  218. package/src/SubPackages/react-test-renderer/component/web.ts +7 -23
  219. package/src/SubPackages/react-test-renderer/jsx/index.ts +13 -46
  220. package/src/SubPackages/react-test-renderer/jsx/node.ts +9 -15
  221. package/src/SubPackages/react-test-renderer/jsx/pure.ts +31 -0
  222. package/src/SubPackages/react-test-renderer/jsx/web.ts +9 -14
  223. package/src/TestReport.tsx +7 -4
  224. package/src/Types.ts +114 -140
  225. package/src/Web.ts +13 -48
  226. package/src/build.ts +52 -78
  227. package/src/defaultConfig.ts +3 -5
  228. package/src/esbuildConfigs/index.ts +2 -2
  229. package/src/esbuildConfigs/inputFilesPlugin.ts +2 -1
  230. package/src/esbuildConfigs/node.ts +7 -5
  231. package/src/esbuildConfigs/pure.ts +72 -0
  232. package/src/esbuildConfigs/web.ts +8 -5
  233. package/src/examples/react/component/index.tsx +35 -0
  234. package/src/examples/react/component/test.ts +83 -0
  235. package/src/lib/abstractBase.ts +100 -192
  236. package/src/lib/basebuilder.ts +40 -40
  237. package/src/lib/classBuilder.ts +18 -26
  238. package/src/lib/core.ts +22 -77
  239. package/src/lib/index.ts +31 -66
  240. package/src/lib/types.ts +20 -90
  241. package/src/run.ts +3 -6
  242. package/src/utils.ts +50 -5
  243. package/testeranto/Project.css +11367 -0
  244. package/testeranto/Project.js +24643 -0
  245. package/testeranto/ReportClient.css +11367 -0
  246. package/testeranto/ReportClient.js +24641 -0
  247. package/testeranto/TestReport.css +11367 -0
  248. package/testeranto/TestReport.js +27485 -0
  249. package/testeranto/bundles/node/react/metafile.json +627 -0
  250. package/testeranto/bundles/node/react/src/SubPackages/react-test-renderer/component/test/node.mjs +24687 -0
  251. package/testeranto/bundles/pure/react/metafile.json +8 -0
  252. package/testeranto/bundles/pure/react/src/SubPackages/react-test-renderer/component/test/pure.mjs +24625 -0
  253. package/testeranto/bundles/web/react/metafile.json +8 -0
  254. package/testeranto/bundles/web/react/src/SubPackages/react-test-renderer/component/test/web.html +19 -0
  255. package/testeranto/bundles/web/react/src/SubPackages/react-test-renderer/component/test/web.mjs +21290 -0
  256. package/testeranto/index.html +28 -0
  257. package/testeranto/reports/react/config.json +22 -0
  258. package/testeranto/reports/react/index.html +24 -0
  259. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/node/node/console_log.txt +0 -0
  260. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/pure/pure/bdd_errors.txt +1 -0
  261. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/pure/pure/featurePrompt.txt +0 -0
  262. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/pure/pure/lint_errors.json +3381 -0
  263. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/pure/pure/littleBoard.html +20 -0
  264. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/pure/pure/log.txt +40 -0
  265. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/pure/pure/prompt.txt +24 -0
  266. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/pure/pure/tests.json +132 -0
  267. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/pure/pure/type_errors.txt +17 -0
  268. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/web/web/bdd_errors.txt +1 -0
  269. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/web/web/console_log.txt +1 -0
  270. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/web/web/lint_errors.json +2947 -0
  271. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/web/web/littleBoard.html +20 -0
  272. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/web/web/log.txt +40 -0
  273. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/web/web/prompt.txt +23 -0
  274. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/web/web/tests.json +132 -0
  275. package/testeranto/reports/react/src/SubPackages/react-test-renderer/component/test/web/web/type_errors.txt +18 -0
  276. package/testeranto/reports/react/summary.json +8 -0
  277. package/testeranto.config.ts +45 -0
  278. package/tsc.log +52 -64
  279. package/type-fix.txt +2 -0
  280. package/dist/common/PM/base.js +0 -233
  281. package/dist/common/SubPackages/react/component/node.js +0 -19
  282. package/dist/common/SubPackages/react/jsx/index.js +0 -21
  283. package/dist/common/SubPackages/react-dom/component/node.js +0 -88
  284. package/dist/common/SubPackages/react-dom/jsx/node.js +0 -39
  285. package/dist/common/SubPackages/react-dom/jsx/web.js +0 -128
  286. package/dist/common/SubPackages/react-test-renderer/component/index.js +0 -2
  287. package/dist/module/PM/base.js +0 -226
  288. package/dist/module/SubPackages/react/component/node.js +0 -14
  289. package/dist/module/SubPackages/react/jsx/index.js +0 -15
  290. package/dist/module/SubPackages/react-dom/component/node.js +0 -80
  291. package/dist/module/SubPackages/react-dom/jsx/web.js +0 -90
  292. package/dist/module/SubPackages/react-test-renderer/component/index.js +0 -1
  293. package/dist/module/utils.js +0 -20
  294. package/dist/types/Node.d.ts +0 -12
  295. package/dist/types/PM/base.d.ts +0 -38
  296. package/dist/types/SubPackages/react/component/node.d.ts +0 -7
  297. package/dist/types/SubPackages/react/component/web.d.ts +0 -7
  298. package/dist/types/SubPackages/react/jsx/index.d.ts +0 -12
  299. package/dist/types/SubPackages/react/jsx/node.d.ts +0 -4
  300. package/dist/types/SubPackages/react/jsx/web.d.ts +0 -4
  301. package/dist/types/SubPackages/react-dom/component/node.d.ts +0 -11
  302. package/dist/types/SubPackages/react-dom/component/web.d.ts +0 -20
  303. package/dist/types/SubPackages/react-dom/jsx/node.d.ts +0 -7
  304. package/dist/types/SubPackages/react-dom/jsx/web.d.ts +0 -5
  305. package/dist/types/SubPackages/react-test-renderer/component/index.d.ts +0 -13
  306. package/dist/types/SubPackages/react-test-renderer/component/interface.d.ts +0 -9
  307. package/dist/types/SubPackages/react-test-renderer/component/node.d.ts +0 -4
  308. package/dist/types/SubPackages/react-test-renderer/component/web.d.ts +0 -4
  309. package/dist/types/SubPackages/react-test-renderer/jsx/index.d.ts +0 -16
  310. package/dist/types/SubPackages/react-test-renderer/jsx/node.d.ts +0 -9
  311. package/dist/types/SubPackages/react-test-renderer/jsx/web.d.ts +0 -9
  312. package/dist/types/Types.d.ts +0 -61
  313. package/dist/types/Web.d.ts +0 -9
  314. package/dist/types/defaultConfig.d.ts +0 -3
  315. package/dist/types/esbuildConfigs/index.d.ts +0 -4
  316. package/dist/types/esbuildConfigs/node.d.ts +0 -4
  317. package/dist/types/esbuildConfigs/web.d.ts +0 -4
  318. package/dist/types/lib/classBuilder.d.ts +0 -7
  319. package/dist/types/lib/core.d.ts +0 -7
  320. package/dist/types/lib/types.d.ts +0 -11
  321. package/dist/types/utils.d.ts +0 -12
  322. /package/dist/common/{PM → src/PM}/index.js +0 -0
  323. /package/dist/common/{ReportServer.js → src/ReportServer.js} +0 -0
  324. /package/dist/common/{SubPackages → src/SubPackages}/react/jsx/node.js +0 -0
  325. /package/dist/common/{SubPackages → src/SubPackages}/react-dom/jsx/index.js +0 -0
  326. /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/MemoExoticComponent/node.js +0 -0
  327. /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/component/interface.js +0 -0
  328. /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/component/node.js +0 -0
  329. /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/component/web.js +0 -0
  330. /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/fc/node.js +0 -0
  331. /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/fc/web.js +0 -0
  332. /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/jsx/index.js +0 -0
  333. /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/jsx/node.js +0 -0
  334. /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/jsx/web.js +0 -0
  335. /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/jsx-promised/index.js +0 -0
  336. /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/jsx-promised/node.js +0 -0
  337. /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/jsx-promised/web.js +0 -0
  338. /package/dist/common/{Types.js → src/Types.js} +0 -0
  339. /package/dist/common/{esbuildConfigs → src/esbuildConfigs}/eslint-formatter-testeranto.js +0 -0
  340. /package/dist/common/{esbuildConfigs → src/esbuildConfigs}/featuresPlugin.js +0 -0
  341. /package/dist/common/{esbuildConfigs → src/esbuildConfigs}/index.js +0 -0
  342. /package/dist/common/{esbuildConfigs → src/esbuildConfigs}/inputFilesPlugin.js +0 -0
  343. /package/dist/common/{init-docs.js → src/init-docs.js} +0 -0
  344. /package/dist/common/{lib → src/lib}/classBuilder.js +0 -0
  345. /package/dist/common/{lib → src/lib}/types.js +0 -0
  346. /package/dist/common/{web.html.js → src/web.html.js} +0 -0
  347. /package/dist/module/{Footer.js → src/Footer.js} +0 -0
  348. /package/dist/module/{PM → src/PM}/index.js +0 -0
  349. /package/dist/module/{ReportServer.js → src/ReportServer.js} +0 -0
  350. /package/dist/module/{SubPackages → src/SubPackages}/react-dom/jsx/index.js +0 -0
  351. /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/MemoExoticComponent/node.js +0 -0
  352. /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/component/interface.js +0 -0
  353. /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/component/node.js +0 -0
  354. /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/component/web.js +0 -0
  355. /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/fc/node.js +0 -0
  356. /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/fc/web.js +0 -0
  357. /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/jsx/index.js +0 -0
  358. /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/jsx/node.js +0 -0
  359. /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/jsx/web.js +0 -0
  360. /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/jsx-promised/index.js +0 -0
  361. /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/jsx-promised/node.js +0 -0
  362. /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/jsx-promised/web.js +0 -0
  363. /package/dist/module/{Types.js → src/Types.js} +0 -0
  364. /package/dist/module/{esbuildConfigs → src/esbuildConfigs}/eslint-formatter-testeranto.js +0 -0
  365. /package/dist/module/{esbuildConfigs → src/esbuildConfigs}/featuresPlugin.js +0 -0
  366. /package/dist/module/{esbuildConfigs → src/esbuildConfigs}/index.js +0 -0
  367. /package/dist/module/{esbuildConfigs → src/esbuildConfigs}/inputFilesPlugin.js +0 -0
  368. /package/dist/module/{init-docs.js → src/init-docs.js} +0 -0
  369. /package/dist/module/{lib → src/lib}/classBuilder.js +0 -0
  370. /package/dist/module/{lib → src/lib}/types.js +0 -0
  371. /package/dist/module/{web.html.js → src/web.html.js} +0 -0
  372. /package/dist/types/{Init.d.ts → src/Init.d.ts} +0 -0
  373. /package/dist/types/{ReportServer.d.ts → src/ReportServer.d.ts} +0 -0
  374. /package/dist/types/{SubPackages → src/SubPackages}/react-dom/jsx/index.d.ts +0 -0
  375. /package/dist/types/{SubPackages → src/SubPackages}/react-test-renderer/jsx-promised/index.d.ts +0 -0
  376. /package/dist/types/{build.d.ts → src/build.d.ts} +0 -0
  377. /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/eslint-formatter-testeranto.d.ts +0 -0
  378. /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/featuresPlugin.d.ts +0 -0
  379. /package/dist/types/{init-docs.d.ts → src/init-docs.d.ts} +0 -0
  380. /package/dist/types/{run.d.ts → src/run.d.ts} +0 -0
  381. /package/dist/types/{web.html.d.ts → src/web.html.d.ts} +0 -0
@@ -37,7 +37,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.PM_Main = void 0;
40
+ const node_child_process_1 = require("node:child_process");
40
41
  const typescript_1 = __importDefault(require("typescript"));
42
+ const net_1 = __importDefault(require("net"));
41
43
  const fs_1 = __importStar(require("fs"));
42
44
  const path_1 = __importDefault(require("path"));
43
45
  const puppeteer_core_1 = __importDefault(require("puppeteer-core"));
@@ -103,41 +105,28 @@ function isValidUrl(string) {
103
105
  return false;
104
106
  }
105
107
  }
108
+ // Wait for file to exist, checks every 2 seconds by default
109
+ function pollForFile(path, timeout = 2000) {
110
+ const intervalObj = setInterval(function () {
111
+ const file = path;
112
+ const fileExists = fs_1.default.existsSync(file);
113
+ // console.log("Checking for: ", file);
114
+ // console.log("Exists: ", fileExists);
115
+ if (fileExists) {
116
+ clearInterval(intervalObj);
117
+ }
118
+ }, timeout);
119
+ }
106
120
  class PM_Main extends base_js_1.PM_Base {
107
121
  constructor(configs, name, mode) {
108
122
  super(configs);
109
123
  this.bigBoard = {};
110
- this.stop = () => {
111
- console.log(ansi_colors_1.default.inverse("Testeranto-Run is shutting down gracefully..."));
112
- this.mode = "once";
113
- this.nodeMetafileWatcher.close();
114
- this.webMetafileWatcher.close();
115
- this.checkForShutdown();
116
- };
117
- this.getRunnables = (tests, payload = {
124
+ this.getRunnables = (tests, testName, payload = {
118
125
  nodeEntryPoints: {},
119
126
  webEntryPoints: {},
127
+ importEntryPoints: {},
120
128
  }) => {
121
- return tests.reduce((pt, cv, cndx, cry) => {
122
- if (cv[1] === "node") {
123
- pt.nodeEntryPoints[cv[0]] = path_1.default.resolve(`./testeranto/bundles/node/${this.name}/${cv[0]
124
- .split(".")
125
- .slice(0, -1)
126
- .concat("mjs")
127
- .join(".")}`);
128
- }
129
- else if (cv[1] === "web") {
130
- pt.webEntryPoints[cv[0]] = path_1.default.resolve(`./testeranto/bundles/web/${this.name}/${cv[0]
131
- .split(".")
132
- .slice(0, -1)
133
- .concat("mjs")
134
- .join(".")}`);
135
- }
136
- if (cv[3].length) {
137
- this.getRunnables(cv[3], payload);
138
- }
139
- return pt;
140
- }, payload);
129
+ return (0, utils_1.getRunnables)(tests, testName, payload);
141
130
  };
142
131
  this.tscCheck = async ({ entrypoint, addableFiles, platform, }) => {
143
132
  console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`tsc < ${entrypoint}`)));
@@ -153,6 +142,7 @@ class PM_Main extends base_js_1.PM_Base {
153
142
  noEmit: true,
154
143
  },
155
144
  include: addableFiles, //["src/**/*"],
145
+ // exclude: ["node_modules", "../testeranto"],
156
146
  // exclude: ["**/*.test.ts", "**/*.spec.ts"],
157
147
  });
158
148
  const tscPath = (0, utils_1.tscPather)(entrypoint, platform, this.name);
@@ -275,13 +265,13 @@ ${addableFiles
275
265
  this.writeBigBoard();
276
266
  this.checkForShutdown();
277
267
  };
278
- this.launchNode = async (src, dest) => {
279
- console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`! node, ${src}`)));
268
+ this.launchPure = async (src, dest) => {
269
+ console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`! pure, ${src}`)));
280
270
  this.bddTestIsRunning(src);
281
271
  const reportDest = `testeranto/reports/${this.name}/${src
282
272
  .split(".")
283
273
  .slice(0, -1)
284
- .join(".")}/node`;
274
+ .join(".")}/pure`;
285
275
  if (!fs_1.default.existsSync(reportDest)) {
286
276
  fs_1.default.mkdirSync(reportDest, { recursive: true });
287
277
  }
@@ -315,7 +305,6 @@ ${addableFiles
315
305
  argz = JSON.stringify({
316
306
  scheduled: true,
317
307
  name: src,
318
- // ports: [3333],
319
308
  ports: portsToUse,
320
309
  fs: destFolder,
321
310
  browserWSEndpoint: this.browser.wsEndpoint(),
@@ -332,6 +321,10 @@ ${addableFiles
332
321
  }
333
322
  const builtfile = dest;
334
323
  const webSideCares = [];
324
+ // fs.writeFileSync(
325
+ // `${reportDest}/stdlog.txt`,
326
+ // "THIS FILE IS AUTO GENERATED. IT IS PURPOSEFULLY LEFT BLANK."
327
+ // );
335
328
  // await Promise.all(
336
329
  // testConfig[3].map(async (sidecar) => {
337
330
  // if (sidecar[1] === "web") {
@@ -352,14 +345,14 @@ ${addableFiles
352
345
  // }
353
346
  // })
354
347
  // );
355
- this.server[builtfile] = await Promise.resolve(`${`${builtfile}?cacheBust=${Date.now()}`}`).then(s => __importStar(require(s))).then((module) => {
348
+ await Promise.resolve(`${`${builtfile}?cacheBust=${Date.now()}`}`).then(s => __importStar(require(s))).then((module) => {
356
349
  return module.default.then((defaultModule) => {
357
350
  defaultModule
358
351
  .receiveTestResourceConfig(argz)
359
- .then(async ({ features, failed }) => {
360
- this.receiveFeatures(features, destFolder, src, "node");
361
- statusMessagePretty(failed, src);
362
- this.bddTestIsNowDone(src, failed);
352
+ .then(async (results) => {
353
+ this.receiveFeatures(results.features, destFolder, src, "pure");
354
+ statusMessagePretty(results.fails, src);
355
+ this.bddTestIsNowDone(src, results.fails);
363
356
  })
364
357
  .catch((e) => {
365
358
  console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`${src} errored with: ${e}`)));
@@ -377,6 +370,163 @@ ${addableFiles
377
370
  }
378
371
  }
379
372
  };
373
+ this.launchNode = async (src, dest) => {
374
+ console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`! node, ${src}`)));
375
+ this.bddTestIsRunning(src);
376
+ const reportDest = `testeranto/reports/${this.name}/${src
377
+ .split(".")
378
+ .slice(0, -1)
379
+ .join(".")}/node`;
380
+ if (!fs_1.default.existsSync(reportDest)) {
381
+ fs_1.default.mkdirSync(reportDest, { recursive: true });
382
+ }
383
+ const destFolder = dest.replace(".mjs", "");
384
+ let testResources = "";
385
+ const testConfig = this.configs.tests.find((t) => {
386
+ return t[0] === src;
387
+ });
388
+ if (!testConfig) {
389
+ console.log(ansi_colors_1.default.inverse("missing test config! Exiting ungracefully!"));
390
+ process.exit(-1);
391
+ }
392
+ const testConfigResource = testConfig[2];
393
+ let portsToUse = [];
394
+ if (testConfigResource.ports === 0) {
395
+ testResources = JSON.stringify({
396
+ scheduled: true,
397
+ name: src,
398
+ ports: portsToUse,
399
+ fs: reportDest,
400
+ browserWSEndpoint: this.browser.wsEndpoint(),
401
+ });
402
+ }
403
+ else if (testConfigResource.ports > 0) {
404
+ const openPorts = Object.entries(this.ports).filter(([portnumber, portopen]) => portopen);
405
+ if (openPorts.length >= testConfigResource.ports) {
406
+ for (let i = 0; i < testConfigResource.ports; i++) {
407
+ portsToUse.push(openPorts[i][0]);
408
+ this.ports[openPorts[i][0]] = false; // port is now closed
409
+ }
410
+ testResources = JSON.stringify({
411
+ scheduled: true,
412
+ name: src,
413
+ ports: portsToUse,
414
+ fs: destFolder,
415
+ browserWSEndpoint: this.browser.wsEndpoint(),
416
+ });
417
+ }
418
+ else {
419
+ this.queue.push(src);
420
+ return;
421
+ }
422
+ }
423
+ else {
424
+ console.error("negative port makes no sense", src);
425
+ process.exit(-1);
426
+ }
427
+ const builtfile = dest;
428
+ // const webSideCares: Page[] = [];
429
+ // await Promise.all(
430
+ // testConfig[3].map(async (sidecar) => {
431
+ // if (sidecar[1] === "web") {
432
+ // const s = await this.launchWebSideCar(
433
+ // sidecar[0],
434
+ // destinationOfRuntime(sidecar[0], "web", this.configs),
435
+ // sidecar
436
+ // );
437
+ // webSideCares.push(s);
438
+ // return s;
439
+ // }
440
+ // if (sidecar[1] === "node") {
441
+ // return this.launchNodeSideCar(
442
+ // sidecar[0],
443
+ // destinationOfRuntime(sidecar[0], "node", this.configs),
444
+ // sidecar
445
+ // );
446
+ // }
447
+ // })
448
+ // );
449
+ // const f = fork(builtfile, [testResources], {
450
+ // silent: true,
451
+ // // detached: true,
452
+ // // stdio: "ignore",
453
+ // });
454
+ let haltReturns = false;
455
+ let buffer = new Buffer("");
456
+ const server = net_1.default.createServer((socket) => {
457
+ socket.on("data", (data) => {
458
+ buffer = Buffer.concat([buffer, data]);
459
+ let messages = [];
460
+ for (let b = 0; b < buffer.length + 1; b++) {
461
+ let c = buffer.slice(0, b);
462
+ let d;
463
+ try {
464
+ d = JSON.parse(c.toString());
465
+ messages.push(d);
466
+ buffer = buffer.slice(b, buffer.length + 1);
467
+ b = 0;
468
+ }
469
+ catch (e) {
470
+ // b++;
471
+ }
472
+ }
473
+ messages.forEach(async (payload) => {
474
+ // set up the "node" listeners
475
+ this.mapping().forEach(async ([command, func]) => {
476
+ if (payload[0] === command) {
477
+ const x = payload.slice(1, -1);
478
+ const r = await this[command](...x);
479
+ if (!haltReturns) {
480
+ child.send(JSON.stringify({
481
+ payload: r,
482
+ key: payload[payload.length - 1],
483
+ }));
484
+ }
485
+ }
486
+ });
487
+ });
488
+ });
489
+ });
490
+ const oStream = fs_1.default.createWriteStream(`${reportDest}/console_log.txt`);
491
+ const child = (0, node_child_process_1.spawn)("node", [builtfile, testResources], {
492
+ stdio: ["pipe", "pipe", "pipe", "ipc"],
493
+ // silent: true
494
+ });
495
+ const p = destFolder + "/pipe";
496
+ server.listen(p, () => {
497
+ var _a, _b;
498
+ (_a = child.stderr) === null || _a === void 0 ? void 0 : _a.on("data", (data) => {
499
+ oStream.write(`stderr data ${data}`);
500
+ });
501
+ (_b = child.stdout) === null || _b === void 0 ? void 0 : _b.on("data", (data) => {
502
+ oStream.write(`stdout data ${data}`);
503
+ });
504
+ child.on("close", (code) => {
505
+ oStream.close();
506
+ server.close();
507
+ if (code === null) {
508
+ this.bddTestIsNowDone(src, -1);
509
+ statusMessagePretty(-1, src);
510
+ }
511
+ else if (code === 0) {
512
+ this.bddTestIsNowDone(src, 0);
513
+ statusMessagePretty(0, src);
514
+ }
515
+ else {
516
+ this.bddTestIsNowDone(src, code);
517
+ statusMessagePretty(code, src);
518
+ }
519
+ // haltReturns = true;
520
+ });
521
+ child.on("exit", (code) => { });
522
+ });
523
+ child.send({ path: p });
524
+ for (let i = 0; i <= portsToUse.length; i++) {
525
+ if (portsToUse[i]) {
526
+ this.ports[portsToUse[i]] = "true"; //port is open again
527
+ }
528
+ }
529
+ };
380
530
  this.launchWebSideCar = async (src, dest, testConfig) => {
381
531
  const d = dest + ".mjs";
382
532
  console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`launchWebSideCar ${src}`)));
@@ -504,7 +654,7 @@ ${addableFiles
504
654
  process.exit(-1);
505
655
  }
506
656
  const builtfile = dest + ".mjs";
507
- this.server[builtfile] = await Promise.resolve(`${`${builtfile}?cacheBust=${Date.now()}`}`).then(s => __importStar(require(s))).then((module) => {
657
+ await Promise.resolve(`${`${builtfile}?cacheBust=${Date.now()}`}`).then(s => __importStar(require(s))).then((module) => {
508
658
  return module.default.then((defaultModule) => {
509
659
  // console.log("defaultModule", defaultModule);
510
660
  const s = new defaultModule();
@@ -527,7 +677,7 @@ ${addableFiles
527
677
  }
528
678
  }
529
679
  };
530
- this.launchWeb = (src, dest) => {
680
+ this.launchWeb = async (src, dest) => {
531
681
  console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`! web ${src}`)));
532
682
  this.bddTestIsRunning(src);
533
683
  const reportDest = `testeranto/reports/${this.name}/${src
@@ -537,15 +687,6 @@ ${addableFiles
537
687
  if (!fs_1.default.existsSync(reportDest)) {
538
688
  fs_1.default.mkdirSync(reportDest, { recursive: true });
539
689
  }
540
- // sidecars.map((sidecar) => {
541
- // if (sidecar[1] === "node") {
542
- // return this.launchNodeSideCar(
543
- // sidecar[0],
544
- // destinationOfRuntime(sidecar[0], "node", this.configs),
545
- // sidecar
546
- // );
547
- // }
548
- // });
549
690
  const destFolder = dest.replace(".mjs", "");
550
691
  const webArgz = JSON.stringify({
551
692
  name: dest,
@@ -564,133 +705,13 @@ ${addableFiles
564
705
  console.log("fail", e)
565
706
  }
566
707
  })`;
567
- const fileStreams2 = [];
568
- const doneFileStream2 = [];
569
- const stdoutStream = fs_1.default.createWriteStream(`${destFolder}/stdout.log`);
570
- const stderrStream = fs_1.default.createWriteStream(`${destFolder}/stderr.log`);
708
+ const oStream = fs_1.default.createWriteStream(`${reportDest}/console_log.txt`);
571
709
  this.browser
572
710
  .newPage()
573
711
  .then((page) => {
574
- page.on("console", (msg) => {
575
- console.log("web > ", msg.args(), msg.text());
576
- });
577
- page.exposeFunction("screencast", async (ssOpts, testName) => {
578
- const p = ssOpts.path;
579
- const dir = path_1.default.dirname(p);
580
- fs_1.default.mkdirSync(dir, {
581
- recursive: true,
582
- });
583
- if (!files[testName]) {
584
- files[testName] = new Set();
585
- }
586
- files[testName].add(ssOpts.path);
587
- const sPromise = page.screenshot(Object.assign(Object.assign({}, ssOpts), { path: p }));
588
- if (!screenshots[testName]) {
589
- screenshots[testName] = [];
590
- }
591
- screenshots[testName].push(sPromise);
592
- // sPromise.then(())
593
- await sPromise;
594
- return sPromise;
595
- // page.evaluate(`window["screenshot done"]`);
596
- });
597
- page.exposeFunction("customScreenShot", async (ssOpts, testName) => {
598
- const p = ssOpts.path;
599
- const dir = path_1.default.dirname(p);
600
- fs_1.default.mkdirSync(dir, {
601
- recursive: true,
602
- });
603
- if (!files[testName]) {
604
- files[testName] = new Set();
605
- }
606
- files[testName].add(ssOpts.path);
607
- const sPromise = page.screenshot(Object.assign(Object.assign({}, ssOpts), { path: p }));
608
- if (!screenshots[testName]) {
609
- screenshots[testName] = [];
610
- }
611
- screenshots[testName].push(sPromise);
612
- // sPromise.then(())
613
- await sPromise;
614
- return sPromise;
615
- // page.evaluate(`window["screenshot done"]`);
616
- });
617
- page.exposeFunction("writeFileSync", (fp, contents, testName) => {
618
- return globalThis["writeFileSync"](fp, contents, testName);
619
- // const dir = path.dirname(fp);
620
- // fs.mkdirSync(dir, {
621
- // recursive: true,
622
- // });
623
- // const p = new Promise<string>(async (res, rej) => {
624
- // fs.writeFileSync(fp, contents);
625
- // res(fp);
626
- // });
627
- // doneFileStream2.push(p);
628
- // if (!files[testName]) {
629
- // files[testName] = new Set();
630
- // }
631
- // files[testName].add(fp);
632
- // return p;
633
- });
634
- page.exposeFunction("existsSync", (fp, contents) => {
635
- return fs_1.default.existsSync(fp);
636
- });
637
- page.exposeFunction("mkdirSync", (fp) => {
638
- if (!fs_1.default.existsSync(fp)) {
639
- return fs_1.default.mkdirSync(fp, {
640
- recursive: true,
641
- });
642
- }
643
- return false;
644
- });
645
- page.exposeFunction("createWriteStream", (fp, testName) => {
646
- const f = fs_1.default.createWriteStream(fp);
647
- if (!files[testName]) {
648
- files[testName] = new Set();
649
- }
650
- files[testName].add(fp);
651
- const p = new Promise((res, rej) => {
652
- res(fp);
653
- });
654
- doneFileStream2.push(p);
655
- f.on("close", async () => {
656
- await p;
657
- });
658
- fileStreams2.push(f);
659
- return Object.assign(Object.assign({}, JSON.parse(JSON.stringify(f))), { uid: fileStreams2.length - 1 });
660
- });
661
- page.exposeFunction("write", async (uid, contents) => {
662
- return fileStreams2[uid].write(contents);
663
- });
664
- page.exposeFunction("end", async (uid) => {
665
- return fileStreams2[uid].end();
666
- });
667
- page.exposeFunction("page", () => {
668
- return page.mainFrame()._id;
669
- });
670
- page.exposeFunction("click", (sel) => {
671
- return page.click(sel);
672
- });
673
- page.exposeFunction("focusOn", (sel) => {
674
- return page.focus(sel);
675
- });
676
- page.exposeFunction("typeInto", async (value) => await page.keyboard.type(value));
677
- page.exposeFunction("getValue", (selector) => page.$eval(selector, (input) => input.getAttribute("value")));
678
- page.exposeFunction("getAttribute", async (selector, attribute) => {
679
- const attributeValue = await page.$eval(selector, (input) => {
680
- return input.getAttribute(attribute);
681
- });
682
- return attributeValue;
683
- });
684
- page.exposeFunction("isDisabled", async (selector) => {
685
- const attributeValue = await page.$eval(selector, (input) => {
686
- return input.disabled;
687
- });
688
- return attributeValue;
689
- });
690
- page.exposeFunction("$", async (selector) => {
691
- const x = page.$(selector);
692
- const y = await x;
693
- return y;
712
+ // set up the "node" listeners
713
+ this.mapping().forEach(async ([command, func]) => {
714
+ page.exposeFunction(command, func);
694
715
  });
695
716
  return page;
696
717
  })
@@ -705,47 +726,44 @@ ${addableFiles
705
726
  Promise.all(screenshots[src] || []).then(() => {
706
727
  delete screenshots[src];
707
728
  page.close();
708
- stderrStream.close();
709
- stdoutStream.close();
729
+ oStream.close();
710
730
  });
711
731
  };
712
732
  page.on("pageerror", (err) => {
713
733
  console.debug(`Error from ${src}: [${err.name}] `);
714
- stderrStream.write(err.name);
734
+ oStream.write(err.name);
735
+ oStream.write("\n");
715
736
  if (err.cause) {
716
737
  console.debug(`Error from ${src} cause: [${err.cause}] `);
717
- stderrStream.write(err.cause);
738
+ oStream.write(err.cause);
739
+ oStream.write("\n");
718
740
  }
719
741
  if (err.stack) {
720
742
  console.debug(`Error from stack ${src}: [${err.stack}] `);
721
- stderrStream.write(err.stack);
743
+ oStream.write(err.stack);
744
+ oStream.write("\n");
722
745
  }
723
746
  console.debug(`Error from message ${src}: [${err.message}] `);
724
- stderrStream.write(err.message);
747
+ oStream.write(err.message);
748
+ oStream.write("\n");
725
749
  this.bddTestIsNowDone(src, -1);
726
750
  close();
727
751
  });
728
752
  page.on("console", (log) => {
729
- // console.debug(`Log from ${t}: [${log.text()}] `);
730
- // console.debug(`Log from ${t}: [${JSON.stringify(log.location())}] `);
731
- // console.debug(
732
- // `Log from ${t}: [${JSON.stringify(log.stackTrace())}] `
733
- // );
734
- stdoutStream.write(log.text());
735
- stdoutStream.write(JSON.stringify(log.location()));
736
- stdoutStream.write(JSON.stringify(log.stackTrace()));
753
+ oStream.write(log.text());
754
+ oStream.write(JSON.stringify(log.location()));
755
+ oStream.write(JSON.stringify(log.stackTrace()));
756
+ oStream.write("\n");
737
757
  });
738
758
  await page.goto(`file://${`${destFolder}.html`}`, {});
739
759
  await page
740
760
  .evaluate(evaluation)
741
- .then(async ({ failed, features }) => {
761
+ .then(async ({ fails, failed, features }) => {
742
762
  this.receiveFeatures(features, destFolder, src, "web");
743
- // console.log(`${t} completed with ${failed} errors`);
744
- statusMessagePretty(failed, src);
745
- this.bddTestIsNowDone(src, failed);
763
+ statusMessagePretty(fails, src);
764
+ this.bddTestIsNowDone(src, fails);
746
765
  })
747
766
  .catch((e) => {
748
- // console.log(red, `${t} errored with`, e);
749
767
  console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`${src} errored with: ${e}`)));
750
768
  })
751
769
  .finally(() => {
@@ -800,10 +818,7 @@ ${addableFiles
800
818
  return accum;
801
819
  }, Promise.resolve({ files: [], strings: [] }))
802
820
  .then(({ files, strings }) => {
803
- // writeFileAndCreateDir(`${featureDestination}`, JSON.stringify(strings));
804
- fs_1.default.writeFileSync(
805
- // `${destFolder}/featurePrompt.txt`,
806
- `testeranto/reports/${this.name}/${srcTest
821
+ fs_1.default.writeFileSync(`testeranto/reports/${this.name}/${srcTest
807
822
  .split(".")
808
823
  .slice(0, -1)
809
824
  .join(".")}/${platform}/featurePrompt.txt`, files
@@ -812,7 +827,6 @@ ${addableFiles
812
827
  })
813
828
  .join("\n"));
814
829
  });
815
- // this.writeBigBoard();
816
830
  };
817
831
  this.writeBigBoard = () => {
818
832
  fs_1.default.writeFileSync(`./testeranto/reports/${this.name}/summary.json`, JSON.stringify(this.bigBoard, null, 2));
@@ -832,10 +846,43 @@ ${addableFiles
832
846
  this.ports[element] = "true"; // set ports as open
833
847
  });
834
848
  }
849
+ mapping() {
850
+ return [
851
+ ["$", this.$],
852
+ ["click", this.click],
853
+ ["closePage", this.closePage],
854
+ ["createWriteStream", this.createWriteStream],
855
+ ["customclose", this.customclose],
856
+ ["customScreenShot", this.customScreenShot],
857
+ ["end", this.end],
858
+ ["existsSync", this.existsSync],
859
+ ["focusOn", this.focusOn],
860
+ ["getAttribute", this.getAttribute],
861
+ ["getValue", this.getValue],
862
+ ["goto", this.goto],
863
+ ["isDisabled", this.isDisabled],
864
+ ["mkdirSync", this.mkdirSync],
865
+ ["newPage", this.newPage],
866
+ ["page", this.page],
867
+ ["pages", this.pages],
868
+ ["screencast", this.screencast],
869
+ ["screencastStop", this.screencastStop],
870
+ ["typeInto", this.typeInto],
871
+ ["waitForSelector", this.waitForSelector],
872
+ ["write", this.write],
873
+ ["writeFileSync", this.writeFileSync],
874
+ ];
875
+ }
835
876
  async start() {
877
+ // set up the "pure" listeners
878
+ this.mapping().forEach(async ([command, func]) => {
879
+ // page.exposeFunction(command, func);
880
+ globalThis[command] = func;
881
+ });
836
882
  if (!fs_1.default.existsSync(`testeranto/reports/${this.name}`)) {
837
883
  fs_1.default.mkdirSync(`testeranto/reports/${this.name}`);
838
884
  }
885
+ // await pollForFile();
839
886
  this.browser = (await puppeteer_core_1.default.launch({
840
887
  slowMo: 1,
841
888
  waitForInitialPage: false,
@@ -876,46 +923,66 @@ ${addableFiles
876
923
  // "--unsafely-treat-insecure-origin-as-secure=ws://192.168.0.101:3234",
877
924
  ],
878
925
  }));
879
- const { nodeEntryPoints, webEntryPoints } = this.getRunnables(this.configs.tests);
880
- Object.entries(nodeEntryPoints).forEach(([k, outputFile]) => {
881
- this.launchNode(k, outputFile);
882
- try {
883
- (0, fs_1.watch)(outputFile, async (e, filename) => {
884
- const hash = await fileHash(outputFile);
885
- if (fileHashes[k] !== hash) {
886
- fileHashes[k] = hash;
887
- console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`< ${e} ${filename}`)));
888
- this.launchNode(k, outputFile);
889
- }
890
- });
891
- }
892
- catch (e) {
893
- console.error(e);
894
- }
895
- });
896
- Object.entries(webEntryPoints).forEach(([k, outputFile]) => {
897
- this.launchWeb(k, outputFile);
898
- (0, fs_1.watch)(outputFile, async (e, filename) => {
899
- const hash = await fileHash(outputFile);
900
- if (fileHashes[k] !== hash) {
901
- fileHashes[k] = hash;
902
- console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`< ${e} ${filename}`)));
903
- this.launchWeb(k, outputFile);
926
+ const { nodeEntryPoints, webEntryPoints, importEntryPoints } = this.getRunnables(this.configs.tests, this.name);
927
+ [
928
+ [
929
+ nodeEntryPoints,
930
+ this.launchNode,
931
+ "node",
932
+ (w) => {
933
+ this.nodeMetafileWatcher = w;
934
+ },
935
+ ],
936
+ [
937
+ webEntryPoints,
938
+ this.launchWeb,
939
+ "web",
940
+ (w) => {
941
+ this.webMetafileWatcher = w;
942
+ },
943
+ ],
944
+ [
945
+ importEntryPoints,
946
+ this.launchPure,
947
+ "pure",
948
+ (w) => {
949
+ this.importMetafileWatcher = w;
950
+ },
951
+ ],
952
+ ].forEach(async ([eps, launcher, runtime, watcher]) => {
953
+ const metafile = `./testeranto/bundles/${runtime}/${this.name}/metafile.json`;
954
+ await pollForFile(metafile);
955
+ Object.entries(eps).forEach(async ([k, outputFile]) => {
956
+ // await pollForFile(outputFile);
957
+ launcher(k, outputFile);
958
+ try {
959
+ (0, fs_1.watch)(outputFile, async (e, filename) => {
960
+ const hash = await fileHash(outputFile);
961
+ if (fileHashes[k] !== hash) {
962
+ fileHashes[k] = hash;
963
+ console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`< ${e} ${filename}`)));
964
+ launcher(k, outputFile);
965
+ }
966
+ });
967
+ }
968
+ catch (e) {
969
+ console.error(e);
904
970
  }
905
971
  });
972
+ this.metafileOutputs(runtime);
973
+ watcher((0, fs_1.watch)(metafile, async (e, filename) => {
974
+ console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`< ${e} ${filename} (${runtime})`)));
975
+ this.metafileOutputs(runtime);
976
+ }));
906
977
  });
907
- this.metafileOutputs("node");
908
- const w = `./testeranto/bundles/node/${this.name}/metafile.json`;
909
- console.log("w", w);
910
- this.nodeMetafileWatcher = (0, fs_1.watch)(w, async (e, filename) => {
911
- console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`< ${e} ${filename} (node)`)));
912
- this.metafileOutputs("node");
913
- });
914
- this.metafileOutputs("web");
915
- this.webMetafileWatcher = (0, fs_1.watch)(`./testeranto/bundles/web/${this.name}/metafile.json`, async (e, filename) => {
916
- console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`< ${e} ${filename} (web)`)));
917
- this.metafileOutputs("web");
918
- });
978
+ }
979
+ async stop() {
980
+ console.log(ansi_colors_1.default.inverse("Testeranto-Run is shutting down gracefully..."));
981
+ this.mode = "once";
982
+ this.nodeMetafileWatcher.close();
983
+ this.webMetafileWatcher.close();
984
+ this.importMetafileWatcher.close();
985
+ this.checkForShutdown();
919
986
  }
920
987
  async metafileOutputs(platform) {
921
988
  const metafile = JSON.parse(fs_1.default