testeranto 0.129.0 → 0.135.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 (403) hide show
  1. package/.aider.chat.history.md +137798 -0
  2. package/.aider.input.history +370 -0
  3. package/.aider.tags.cache.v3/{ec/c0/161c249c35be853cc40cf11f9267.val → 62/f5/8af72140d93c58db2f6aa5bf3f1f.val} +0 -0
  4. package/.aider.tags.cache.v3/8e/ec/2d4659a1589a0187a757ab1cbefa.val +0 -0
  5. package/.aider.tags.cache.v3/{b7/e6/5be87b62aeaf2bc244ff41c1b61a.val → a7/97/6d37fce350ad2d588f36729db0cd.val} +0 -0
  6. package/.aider.tags.cache.v3/{e3/e6/3501625caf5d5eb171f0d248462e.val → ad/3c/10f2ab1397f6d544e613d2a6acaf.val} +0 -0
  7. package/.aider.tags.cache.v3/cache.db +0 -0
  8. package/.aider.tags.cache.v3/d8/b0/a8966fcd65890fd9f70d7afe8141.val +0 -0
  9. package/.aider.tags.cache.v3/dd/5b/0ade824b0841c7c11e9352c5d2ca.val +0 -0
  10. package/README.md +194 -182
  11. package/bundle.js +8 -75
  12. package/dist/common/src/Init.js +6 -1
  13. package/dist/common/src/Node.js +6 -4
  14. package/dist/common/src/NodeSidecar.js +15 -0
  15. package/dist/common/src/PM/PM_WithEslintAndTsc.js +189 -0
  16. package/dist/common/src/PM/__tests__/nodeSidecar.testeranto.js +109 -0
  17. package/dist/common/src/PM/__tests__/pureSidecar.testeranto.js +94 -0
  18. package/dist/common/src/PM/__tests__/webSidecar.testeranto.js +94 -0
  19. package/dist/common/src/PM/base.js +33 -16
  20. package/dist/common/src/PM/main.js +492 -428
  21. package/dist/common/src/PM/node.js +54 -22
  22. package/dist/common/src/PM/nodeSidecar.js +65 -0
  23. package/dist/common/src/PM/pure.js +55 -47
  24. package/dist/common/src/PM/pureSidecar.js +48 -0
  25. package/dist/common/src/PM/sidecar.js +11 -0
  26. package/dist/common/src/PM/web.js +24 -6
  27. package/dist/common/src/PM/webSidecar.js +47 -0
  28. package/dist/common/src/PureSidecar.js +13 -0
  29. package/dist/common/src/SP__Polygon.test.js +10 -0
  30. package/dist/common/src/WebSidecar.js +14 -0
  31. package/dist/common/src/build.js +66 -12
  32. package/dist/common/src/defaultConfig.js +1 -0
  33. package/dist/common/src/esbuildConfigs/consoleDetectorPlugin.js +27 -0
  34. package/dist/common/src/esbuildConfigs/eslint-formatter-testeranto.js +16 -1
  35. package/dist/common/src/esbuildConfigs/node.js +2 -16
  36. package/dist/common/src/esbuildConfigs/pure.js +12 -12
  37. package/dist/common/src/esbuildConfigs/rebuildPlugin.js +22 -0
  38. package/dist/common/src/esbuildConfigs/web.js +12 -17
  39. package/dist/common/src/lib/Sidecar.js +6 -0
  40. package/dist/common/src/lib/abstractBase.js +13 -6
  41. package/dist/common/src/lib/basebuilder.js +1 -3
  42. package/dist/common/src/lib/classBuilder.js +6 -20
  43. package/dist/common/src/lib/core.js +11 -6
  44. package/dist/common/src/lib/index.js +13 -4
  45. package/dist/common/src/lib/pmProxy.js +1 -1
  46. package/dist/common/src/mothership/index.js +16 -0
  47. package/dist/common/src/mothership/test.js +65 -0
  48. package/dist/common/src/utils/queue.js +36 -0
  49. package/dist/common/src/utils.js +34 -5
  50. package/dist/common/testeranto.config.js +77 -39
  51. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  52. package/dist/module/src/Init.js +6 -1
  53. package/dist/module/src/Node.js +6 -4
  54. package/dist/module/src/NodeSidecar.js +11 -0
  55. package/dist/module/src/PM/PM_WithEslintAndTsc.js +182 -0
  56. package/dist/module/src/PM/__tests__/nodeSidecar.testeranto.js +104 -0
  57. package/dist/module/src/PM/__tests__/pureSidecar.testeranto.js +89 -0
  58. package/dist/module/src/PM/__tests__/webSidecar.testeranto.js +89 -0
  59. package/dist/module/src/PM/base.js +33 -16
  60. package/dist/module/src/PM/main.js +493 -429
  61. package/dist/module/src/PM/node.js +54 -22
  62. package/dist/module/src/PM/nodeSidecar.js +58 -0
  63. package/dist/module/src/PM/pure.js +55 -44
  64. package/dist/module/src/PM/pureSidecar.js +41 -0
  65. package/dist/module/src/PM/sidecar.js +7 -0
  66. package/dist/module/src/PM/web.js +24 -6
  67. package/dist/module/src/PM/webSidecar.js +40 -0
  68. package/dist/module/src/Project.js +154 -75
  69. package/dist/module/src/PureSidecar.js +9 -0
  70. package/dist/module/src/ReportClient.js +132 -97
  71. package/dist/module/src/SP__Polygon.test.js +8 -0
  72. package/dist/module/src/TestReport.js +32 -14
  73. package/dist/module/src/WebSidecar.js +10 -0
  74. package/dist/module/src/build.js +66 -12
  75. package/dist/module/src/defaultConfig.js +1 -0
  76. package/dist/module/src/esbuildConfigs/consoleDetectorPlugin.js +24 -0
  77. package/dist/module/src/esbuildConfigs/eslint-formatter-testeranto.js +16 -1
  78. package/dist/module/src/esbuildConfigs/node.js +2 -16
  79. package/dist/module/src/esbuildConfigs/pure.js +12 -12
  80. package/dist/module/src/esbuildConfigs/rebuildPlugin.js +17 -0
  81. package/dist/module/src/esbuildConfigs/web.js +12 -17
  82. package/dist/module/src/lib/Sidecar.js +2 -0
  83. package/dist/module/src/lib/abstractBase.js +13 -6
  84. package/dist/module/src/lib/basebuilder.js +1 -3
  85. package/dist/module/src/lib/classBuilder.js +6 -20
  86. package/dist/module/src/lib/core.js +11 -6
  87. package/dist/module/src/lib/index.js +12 -4
  88. package/dist/module/src/lib/pmProxy.js +1 -1
  89. package/dist/module/src/mothership/index.js +11 -0
  90. package/dist/module/src/mothership/test.js +60 -0
  91. package/dist/module/src/utils/queue.js +32 -0
  92. package/dist/module/src/utils.js +34 -5
  93. package/dist/module/testeranto.config.js +77 -36
  94. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  95. package/dist/prebuild/Project.js +3287 -385
  96. package/dist/prebuild/ReportClient.js +0 -24638
  97. package/dist/prebuild/TestReport.js +26 -22
  98. package/dist/prebuild/build.mjs +192 -70
  99. package/dist/prebuild/esbuildConfigs/eslint-formatter-testeranto.mjs +14 -1
  100. package/dist/prebuild/init-docs.mjs +2 -5
  101. package/dist/prebuild/mothership/index.mjs +17 -0
  102. package/dist/prebuild/run.mjs +733 -433
  103. package/dist/types/src/CoreTypes.d.ts +51 -0
  104. package/dist/types/src/Node.d.ts +2 -2
  105. package/dist/types/src/NodeSidecar.d.ts +6 -0
  106. package/dist/types/src/PM/PM_WithEslintAndTsc.d.ts +23 -0
  107. package/dist/types/src/PM/__tests__/nodeSidecar.testeranto.d.ts +2 -0
  108. package/dist/types/src/PM/__tests__/pureSidecar.testeranto.d.ts +2 -0
  109. package/dist/types/src/PM/__tests__/webSidecar.testeranto.d.ts +2 -0
  110. package/dist/types/src/PM/base.d.ts +6 -5
  111. package/dist/types/src/PM/index.d.ts +6 -4
  112. package/dist/types/src/PM/main.d.ts +23 -26
  113. package/dist/types/src/PM/node.d.ts +8 -6
  114. package/dist/types/src/PM/nodeSidecar.d.ts +13 -0
  115. package/dist/types/src/PM/pure.d.ts +4 -3
  116. package/dist/types/src/PM/pureSidecar.d.ts +11 -0
  117. package/dist/types/src/PM/sidecar.d.ts +8 -0
  118. package/dist/types/src/PM/web.d.ts +18 -8
  119. package/dist/types/src/PM/webSidecar.d.ts +11 -0
  120. package/dist/types/src/PureSidecar.d.ts +8 -0
  121. package/dist/types/src/SP__Polygon.test.d.ts +1 -0
  122. package/dist/types/src/Types.d.ts +80 -58
  123. package/dist/types/src/Web.d.ts +1 -1
  124. package/dist/types/src/WebSidecar.d.ts +8 -0
  125. package/dist/types/src/esbuildConfigs/consoleDetectorPlugin.d.ts +2 -0
  126. package/dist/types/src/esbuildConfigs/rebuildPlugin.d.ts +6 -0
  127. package/dist/types/src/lib/Sidecar.d.ts +5 -0
  128. package/dist/types/src/lib/abstractBase.d.ts +6 -12
  129. package/dist/types/src/lib/classBuilder.d.ts +7 -1
  130. package/dist/types/src/lib/core.d.ts +8 -2
  131. package/dist/types/src/lib/index.d.ts +10 -4
  132. package/dist/types/src/lib/types.d.ts +12 -2
  133. package/dist/types/src/mothership/index.d.ts +2 -0
  134. package/dist/types/src/mothership/test.d.ts +2 -0
  135. package/dist/types/src/utils/queue.d.ts +11 -0
  136. package/dist/types/src/utils.d.ts +4 -7
  137. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  138. package/docs/index.md +277 -0
  139. package/package.json +23 -104
  140. package/src/CoreTypes.ts +171 -0
  141. package/src/Init.ts +6 -5
  142. package/src/Node.ts +32 -15
  143. package/src/NodeSidecar.ts +22 -0
  144. package/src/PM/PM_WithEslintAndTsc.ts +315 -0
  145. package/src/PM/__tests__/nodeSidecar.testeranto.ts +173 -0
  146. package/src/PM/__tests__/pureSidecar.testeranto.ts +157 -0
  147. package/src/PM/__tests__/webSidecar.testeranto.ts +157 -0
  148. package/src/PM/base.ts +38 -17
  149. package/src/PM/index.ts +10 -4
  150. package/src/PM/main.ts +616 -589
  151. package/src/PM/node.ts +77 -33
  152. package/src/PM/nodeSidecar.ts +73 -0
  153. package/src/PM/pure.ts +68 -58
  154. package/src/PM/pureSidecar.ts +56 -0
  155. package/src/PM/sidecar.ts +48 -0
  156. package/src/PM/web.ts +42 -11
  157. package/src/PM/webSidecar.ts +55 -0
  158. package/src/Project.tsx +312 -109
  159. package/src/Pure.ts +0 -2
  160. package/src/PureSidecar.ts +14 -0
  161. package/src/ReportClient.tsx +164 -170
  162. package/src/SP__Polygon.test.ts +13 -0
  163. package/src/TestReport.tsx +77 -6
  164. package/src/Types.ts +278 -157
  165. package/src/Web.ts +0 -3
  166. package/src/WebSidecar.ts +14 -0
  167. package/src/build.ts +104 -16
  168. package/src/defaultConfig.ts +1 -0
  169. package/src/esbuildConfigs/README.md +46 -0
  170. package/src/esbuildConfigs/consoleDetectorPlugin.ts +29 -0
  171. package/src/esbuildConfigs/eslint-formatter-testeranto.ts +17 -1
  172. package/src/esbuildConfigs/node.ts +2 -18
  173. package/src/esbuildConfigs/pure.ts +19 -14
  174. package/src/esbuildConfigs/rebuildPlugin.ts +23 -0
  175. package/src/esbuildConfigs/web.ts +15 -18
  176. package/src/lib/Sidecar.ts +6 -0
  177. package/src/lib/TEST_ADAPTER_RENAME.md +48 -0
  178. package/src/lib/abstractBase.ts +18 -10
  179. package/src/lib/basebuilder.ts +5 -4
  180. package/src/lib/classBuilder.ts +19 -21
  181. package/src/lib/core.ts +28 -19
  182. package/src/lib/index.ts +38 -18
  183. package/src/lib/pmProxy.ts +3 -1
  184. package/src/lib/types.ts +15 -2
  185. package/src/mothership/index.ts +15 -0
  186. package/src/mothership/test.ts +137 -0
  187. package/src/run.ts +0 -1
  188. package/src/utils/queue.ts +41 -0
  189. package/src/utils.ts +41 -15
  190. package/testeranto/bundles/node/mothership/chunk-PG6KUKNP.mjs +44 -0
  191. package/testeranto/bundles/node/mothership/chunk-V2EQEXU2.mjs +1032 -0
  192. package/testeranto/bundles/node/mothership/metafile.json +389 -0
  193. package/testeranto/bundles/node/mothership/src/PM/__tests__/nodeSidecar.testeranto.mjs +1219 -0
  194. package/testeranto/bundles/node/mothership/src/PM/__tests__/pureSidecar.testeranto.mjs +156 -0
  195. package/testeranto/bundles/node/mothership/src/PM/__tests__/sidecar.testeranto.mjs +1199 -0
  196. package/testeranto/bundles/node/mothership/src/PM/__tests__/webSidecar.testeranto.mjs +156 -0
  197. package/testeranto/bundles/node/mothership/src/mothership/test.mjs +24411 -0
  198. package/testeranto/bundles/pure/mothership/metafile.json +8 -0
  199. package/testeranto/bundles/web/mothership/metafile.json +8 -0
  200. package/testeranto/index.html +4 -4
  201. package/testeranto/reports/mothership/config.json +25 -0
  202. package/testeranto/reports/{redux → mothership}/index.html +8 -8
  203. package/testeranto/reports/mothership/src/PM/__tests__/nodeSidecar.testeranto/node/console_log.txt +0 -0
  204. package/testeranto/reports/mothership/src/PM/__tests__/nodeSidecar.testeranto/node/index.html +20 -0
  205. package/testeranto/reports/mothership/src/PM/__tests__/nodeSidecar.testeranto/node/lint_errors.json +1564 -0
  206. package/testeranto/reports/mothership/src/PM/__tests__/nodeSidecar.testeranto/node/log.txt +0 -0
  207. package/testeranto/reports/mothership/src/PM/__tests__/nodeSidecar.testeranto/node/prompt.txt +22 -0
  208. package/testeranto/reports/mothership/src/PM/__tests__/nodeSidecar.testeranto/node/type_errors.txt +35 -0
  209. package/testeranto/reports/mothership/src/PM/__tests__/pureSidecar.testeranto/node/index.html +20 -0
  210. package/testeranto/reports/mothership/src/PM/__tests__/pureSidecar.testeranto/node/lint_errors.json +80 -0
  211. package/testeranto/reports/mothership/src/PM/__tests__/pureSidecar.testeranto/node/prompt.txt +12 -0
  212. package/testeranto/reports/mothership/src/PM/__tests__/pureSidecar.testeranto/node/type_errors.txt +26 -0
  213. package/testeranto/reports/mothership/src/PM/__tests__/sidecar.testeranto/node/bdd_errors.txt +1 -0
  214. package/testeranto/reports/mothership/src/PM/__tests__/sidecar.testeranto/node/console_log.txt +0 -0
  215. package/testeranto/reports/mothership/src/PM/__tests__/sidecar.testeranto/node/index.html +20 -0
  216. package/testeranto/reports/mothership/src/PM/__tests__/sidecar.testeranto/node/lint_errors.json +1564 -0
  217. package/testeranto/reports/mothership/src/PM/__tests__/sidecar.testeranto/node/log.txt +0 -0
  218. package/testeranto/reports/mothership/src/PM/__tests__/sidecar.testeranto/node/prompt.txt +22 -0
  219. package/testeranto/reports/mothership/src/PM/__tests__/sidecar.testeranto/node/tests.json +56 -0
  220. package/testeranto/reports/mothership/src/PM/__tests__/sidecar.testeranto/node/type_errors.txt +29 -0
  221. package/testeranto/reports/mothership/src/PM/__tests__/webSidecar.testeranto/node/index.html +20 -0
  222. package/testeranto/reports/mothership/src/PM/__tests__/webSidecar.testeranto/node/lint_errors.json +80 -0
  223. package/testeranto/reports/mothership/src/PM/__tests__/webSidecar.testeranto/node/prompt.txt +12 -0
  224. package/testeranto/reports/mothership/src/PM/__tests__/webSidecar.testeranto/node/type_errors.txt +26 -0
  225. package/testeranto/reports/mothership/src/mothership/test/node/bdd_errors.txt +1 -0
  226. package/testeranto/reports/mothership/src/mothership/test/node/console_log.txt +4 -0
  227. package/testeranto/reports/mothership/src/mothership/test/node/index.html +20 -0
  228. package/testeranto/reports/mothership/src/mothership/test/node/lint_errors.json +1 -0
  229. package/testeranto/reports/mothership/src/mothership/test/node/log.txt +0 -0
  230. package/testeranto/reports/mothership/src/mothership/test/node/prompt.txt +12 -0
  231. package/testeranto/reports/mothership/src/mothership/test/node/tests.json +24 -0
  232. package/testeranto/reports/mothership/src/mothership/test/node/type_errors.txt +18 -0
  233. package/testeranto/reports/mothership/summary.json +9 -0
  234. package/testeranto.config.ts +82 -44
  235. package/tsc.log +78 -81
  236. package/dist/common/src/SubPackages/react/component/index.js +0 -20
  237. package/dist/common/src/SubPackages/react/component/node.js +0 -10
  238. package/dist/common/src/SubPackages/react/component/pure.js +0 -10
  239. package/dist/common/src/SubPackages/react/component/web.js +0 -10
  240. package/dist/common/src/SubPackages/react/jsx/index.js +0 -64
  241. package/dist/common/src/SubPackages/react/jsx/node.js +0 -10
  242. package/dist/common/src/SubPackages/react/jsx/pure.js +0 -10
  243. package/dist/common/src/SubPackages/react/jsx/web.js +0 -10
  244. package/dist/common/src/SubPackages/react-dom/component/dynamic.js +0 -61
  245. package/dist/common/src/SubPackages/react-dom/component/node.js +0 -10
  246. package/dist/common/src/SubPackages/react-dom/component/pure.js +0 -10
  247. package/dist/common/src/SubPackages/react-dom/component/static.js +0 -26
  248. package/dist/common/src/SubPackages/react-dom/component/web.js +0 -16
  249. package/dist/common/src/SubPackages/react-dom/jsx/dynamic.js +0 -31
  250. package/dist/common/src/SubPackages/react-dom/jsx/node.js +0 -10
  251. package/dist/common/src/SubPackages/react-dom/jsx/pure.js +0 -10
  252. package/dist/common/src/SubPackages/react-dom/jsx/static.js +0 -59
  253. package/dist/common/src/SubPackages/react-dom/jsx/web.js +0 -16
  254. package/dist/common/src/SubPackages/react-test-renderer/MemoExoticComponent/node.js +0 -54
  255. package/dist/common/src/SubPackages/react-test-renderer/component/index.js +0 -15
  256. package/dist/common/src/SubPackages/react-test-renderer/component/interface.js +0 -70
  257. package/dist/common/src/SubPackages/react-test-renderer/component/node.js +0 -8
  258. package/dist/common/src/SubPackages/react-test-renderer/component/pure.js +0 -8
  259. package/dist/common/src/SubPackages/react-test-renderer/component/test/implementation.js +0 -57
  260. package/dist/common/src/SubPackages/react-test-renderer/component/test/node.js +0 -10
  261. package/dist/common/src/SubPackages/react-test-renderer/component/test/pure.js +0 -10
  262. package/dist/common/src/SubPackages/react-test-renderer/component/test/web.js +0 -10
  263. package/dist/common/src/SubPackages/react-test-renderer/component/web.js +0 -8
  264. package/dist/common/src/SubPackages/react-test-renderer/fc/node.js +0 -60
  265. package/dist/common/src/SubPackages/react-test-renderer/fc/web.js +0 -60
  266. package/dist/common/src/SubPackages/react-test-renderer/jsx/index.js +0 -67
  267. package/dist/common/src/SubPackages/react-test-renderer/jsx/node.js +0 -10
  268. package/dist/common/src/SubPackages/react-test-renderer/jsx/pure.js +0 -10
  269. package/dist/common/src/SubPackages/react-test-renderer/jsx/web.js +0 -10
  270. package/dist/common/src/SubPackages/react-test-renderer/jsx-promised/index.js +0 -52
  271. package/dist/common/src/SubPackages/react-test-renderer/jsx-promised/node.js +0 -10
  272. package/dist/common/src/SubPackages/react-test-renderer/jsx-promised/web.js +0 -10
  273. package/dist/common/src/examples/react/component/index.js +0 -33
  274. package/dist/common/src/examples/react/component/test.js +0 -36
  275. package/dist/module/src/SubPackages/react/component/index.js +0 -13
  276. package/dist/module/src/SubPackages/react/component/node.js +0 -5
  277. package/dist/module/src/SubPackages/react/component/pure.js +0 -5
  278. package/dist/module/src/SubPackages/react/component/web.js +0 -5
  279. package/dist/module/src/SubPackages/react/jsx/index.js +0 -58
  280. package/dist/module/src/SubPackages/react/jsx/node.js +0 -5
  281. package/dist/module/src/SubPackages/react/jsx/pure.js +0 -5
  282. package/dist/module/src/SubPackages/react/jsx/web.js +0 -5
  283. package/dist/module/src/SubPackages/react-dom/component/dynamic.js +0 -54
  284. package/dist/module/src/SubPackages/react-dom/component/node.js +0 -5
  285. package/dist/module/src/SubPackages/react-dom/component/pure.js +0 -5
  286. package/dist/module/src/SubPackages/react-dom/component/static.js +0 -22
  287. package/dist/module/src/SubPackages/react-dom/component/web.js +0 -11
  288. package/dist/module/src/SubPackages/react-dom/jsx/dynamic.js +0 -27
  289. package/dist/module/src/SubPackages/react-dom/jsx/node.js +0 -5
  290. package/dist/module/src/SubPackages/react-dom/jsx/pure.js +0 -5
  291. package/dist/module/src/SubPackages/react-dom/jsx/static.js +0 -53
  292. package/dist/module/src/SubPackages/react-dom/jsx/web.js +0 -11
  293. package/dist/module/src/SubPackages/react-test-renderer/MemoExoticComponent/node.js +0 -16
  294. package/dist/module/src/SubPackages/react-test-renderer/component/index.js +0 -14
  295. package/dist/module/src/SubPackages/react-test-renderer/component/interface.js +0 -31
  296. package/dist/module/src/SubPackages/react-test-renderer/component/node.js +0 -3
  297. package/dist/module/src/SubPackages/react-test-renderer/component/pure.js +0 -3
  298. package/dist/module/src/SubPackages/react-test-renderer/component/test/implementation.js +0 -54
  299. package/dist/module/src/SubPackages/react-test-renderer/component/test/node.js +0 -5
  300. package/dist/module/src/SubPackages/react-test-renderer/component/test/pure.js +0 -5
  301. package/dist/module/src/SubPackages/react-test-renderer/component/test/web.js +0 -5
  302. package/dist/module/src/SubPackages/react-test-renderer/component/web.js +0 -3
  303. package/dist/module/src/SubPackages/react-test-renderer/fc/node.js +0 -22
  304. package/dist/module/src/SubPackages/react-test-renderer/fc/web.js +0 -22
  305. package/dist/module/src/SubPackages/react-test-renderer/jsx/index.js +0 -28
  306. package/dist/module/src/SubPackages/react-test-renderer/jsx/node.js +0 -5
  307. package/dist/module/src/SubPackages/react-test-renderer/jsx/pure.js +0 -5
  308. package/dist/module/src/SubPackages/react-test-renderer/jsx/web.js +0 -5
  309. package/dist/module/src/SubPackages/react-test-renderer/jsx-promised/index.js +0 -16
  310. package/dist/module/src/SubPackages/react-test-renderer/jsx-promised/node.js +0 -5
  311. package/dist/module/src/SubPackages/react-test-renderer/jsx-promised/web.js +0 -5
  312. package/dist/module/src/examples/react/component/index.js +0 -26
  313. package/dist/module/src/examples/react/component/test.js +0 -32
  314. package/dist/prebuild/ReportClient.css +0 -11342
  315. package/dist/tsconfig.tsbuildinfo +0 -1
  316. package/dist/types/src/SubPackages/react/component/index.d.ts +0 -4
  317. package/dist/types/src/SubPackages/react/component/node.d.ts +0 -4
  318. package/dist/types/src/SubPackages/react/component/pure.d.ts +0 -4
  319. package/dist/types/src/SubPackages/react/component/web.d.ts +0 -4
  320. package/dist/types/src/SubPackages/react/jsx/index.d.ts +0 -5
  321. package/dist/types/src/SubPackages/react/jsx/node.d.ts +0 -4
  322. package/dist/types/src/SubPackages/react/jsx/pure.d.ts +0 -4
  323. package/dist/types/src/SubPackages/react/jsx/web.d.ts +0 -4
  324. package/dist/types/src/SubPackages/react-dom/component/dynamic.d.ts +0 -20
  325. package/dist/types/src/SubPackages/react-dom/component/node.d.ts +0 -4
  326. package/dist/types/src/SubPackages/react-dom/component/pure.d.ts +0 -4
  327. package/dist/types/src/SubPackages/react-dom/component/static.d.ts +0 -9
  328. package/dist/types/src/SubPackages/react-dom/component/web.d.ts +0 -4
  329. package/dist/types/src/SubPackages/react-dom/jsx/dynamic.d.ts +0 -5
  330. package/dist/types/src/SubPackages/react-dom/jsx/index.d.ts +0 -6
  331. package/dist/types/src/SubPackages/react-dom/jsx/node.d.ts +0 -4
  332. package/dist/types/src/SubPackages/react-dom/jsx/pure.d.ts +0 -4
  333. package/dist/types/src/SubPackages/react-dom/jsx/static.d.ts +0 -5
  334. package/dist/types/src/SubPackages/react-dom/jsx/web.d.ts +0 -5
  335. package/dist/types/src/SubPackages/react-test-renderer/MemoExoticComponent/node.d.ts +0 -6
  336. package/dist/types/src/SubPackages/react-test-renderer/component/index.d.ts +0 -5
  337. package/dist/types/src/SubPackages/react-test-renderer/component/interface.d.ts +0 -3
  338. package/dist/types/src/SubPackages/react-test-renderer/component/node.d.ts +0 -4
  339. package/dist/types/src/SubPackages/react-test-renderer/component/pure.d.ts +0 -4
  340. package/dist/types/src/SubPackages/react-test-renderer/component/test/implementation.d.ts +0 -4
  341. package/dist/types/src/SubPackages/react-test-renderer/component/test/node.d.ts +0 -3
  342. package/dist/types/src/SubPackages/react-test-renderer/component/test/pure.d.ts +0 -4
  343. package/dist/types/src/SubPackages/react-test-renderer/component/test/web.d.ts +0 -3
  344. package/dist/types/src/SubPackages/react-test-renderer/component/web.d.ts +0 -4
  345. package/dist/types/src/SubPackages/react-test-renderer/fc/node.d.ts +0 -8
  346. package/dist/types/src/SubPackages/react-test-renderer/fc/web.d.ts +0 -9
  347. package/dist/types/src/SubPackages/react-test-renderer/jsx/index.d.ts +0 -11
  348. package/dist/types/src/SubPackages/react-test-renderer/jsx/node.d.ts +0 -4
  349. package/dist/types/src/SubPackages/react-test-renderer/jsx/pure.d.ts +0 -4
  350. package/dist/types/src/SubPackages/react-test-renderer/jsx/web.d.ts +0 -4
  351. package/dist/types/src/SubPackages/react-test-renderer/jsx-promised/index.d.ts +0 -15
  352. package/dist/types/src/SubPackages/react-test-renderer/jsx-promised/node.d.ts +0 -5
  353. package/dist/types/src/SubPackages/react-test-renderer/jsx-promised/web.d.ts +0 -5
  354. package/dist/types/src/examples/react/component/index.d.ts +0 -13
  355. package/dist/types/src/examples/react/component/test.d.ts +0 -17
  356. package/src/SubPackages/react/component/index.ts +0 -28
  357. package/src/SubPackages/react/component/node.ts +0 -17
  358. package/src/SubPackages/react/component/pure.ts +0 -17
  359. package/src/SubPackages/react/component/web.ts +0 -17
  360. package/src/SubPackages/react/jsx/index.ts +0 -75
  361. package/src/SubPackages/react/jsx/node.ts +0 -23
  362. package/src/SubPackages/react/jsx/pure.ts +0 -23
  363. package/src/SubPackages/react/jsx/web.ts +0 -24
  364. package/src/SubPackages/react-dom/component/dynamic.ts +0 -107
  365. package/src/SubPackages/react-dom/component/node.ts +0 -17
  366. package/src/SubPackages/react-dom/component/pure.ts +0 -17
  367. package/src/SubPackages/react-dom/component/static.ts +0 -41
  368. package/src/SubPackages/react-dom/component/web.ts +0 -32
  369. package/src/SubPackages/react-dom/jsx/dynamic.ts +0 -46
  370. package/src/SubPackages/react-dom/jsx/index.ts +0 -6
  371. package/src/SubPackages/react-dom/jsx/node.ts +0 -18
  372. package/src/SubPackages/react-dom/jsx/pure.ts +0 -18
  373. package/src/SubPackages/react-dom/jsx/static.ts +0 -87
  374. package/src/SubPackages/react-dom/jsx/web.ts +0 -26
  375. package/src/SubPackages/react-test-renderer/MemoExoticComponent/node.ts +0 -54
  376. package/src/SubPackages/react-test-renderer/component/index.ts +0 -32
  377. package/src/SubPackages/react-test-renderer/component/interface.ts +0 -43
  378. package/src/SubPackages/react-test-renderer/component/node.ts +0 -18
  379. package/src/SubPackages/react-test-renderer/component/pure.ts +0 -18
  380. package/src/SubPackages/react-test-renderer/component/test/implementation.ts +0 -63
  381. package/src/SubPackages/react-test-renderer/component/test/node.ts +0 -14
  382. package/src/SubPackages/react-test-renderer/component/test/pure.ts +0 -14
  383. package/src/SubPackages/react-test-renderer/component/test/web.ts +0 -14
  384. package/src/SubPackages/react-test-renderer/component/web.ts +0 -18
  385. package/src/SubPackages/react-test-renderer/fc/node.ts +0 -83
  386. package/src/SubPackages/react-test-renderer/fc/web.ts +0 -80
  387. package/src/SubPackages/react-test-renderer/jsx/index.ts +0 -61
  388. package/src/SubPackages/react-test-renderer/jsx/node.ts +0 -31
  389. package/src/SubPackages/react-test-renderer/jsx/pure.ts +0 -31
  390. package/src/SubPackages/react-test-renderer/jsx/web.ts +0 -32
  391. package/src/SubPackages/react-test-renderer/jsx-promised/index.ts +0 -73
  392. package/src/SubPackages/react-test-renderer/jsx-promised/node.ts +0 -36
  393. package/src/SubPackages/react-test-renderer/jsx-promised/web.ts +0 -36
  394. package/src/examples/react/component/index.tsx +0 -35
  395. package/src/examples/react/component/test.ts +0 -83
  396. package/testeranto/bundles/node/redux/metafile.json +0 -559
  397. package/testeranto/bundles/pure/redux/metafile.json +0 -554
  398. package/testeranto/bundles/web/redux/metafile.json +0 -504
  399. package/testeranto/bundles/web/redux/test/web.html +0 -19
  400. package/testeranto/reports/redux/config.json +0 -38
  401. package/testeranto/reports/redux/summary.json +0 -20
  402. /package/dist/common/src/{SubPackages/react-dom/jsx/index.js → CoreTypes.js} +0 -0
  403. /package/dist/module/src/{SubPackages/react-dom/jsx/index.js → CoreTypes.js} +0 -0
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # testeranto
2
2
 
3
- ## the AI powered BDD test framework for typescript projects
3
+ ## The AI-powered BDD test framework for TypeScript projects
4
4
 
5
5
  🚧 WARNING: Testeranto is still under development and is not ready for production yet. 🚧
6
6
 
@@ -12,11 +12,7 @@ npm: [npmjs.com/package/testeranto](https://www.npmjs.com/package/testeranto)
12
12
 
13
13
  dev: [github.dev/adamwong246/testeranto](https://github.dev/adamwong246/testeranto)
14
14
 
15
- example test report: [chromapdx.github.io/kokomoBay](https://chromapdx.github.io/kokomoBay/testeranto/index.html)
16
-
17
- example repo: [kokomo bay](https://github.com/ChromaPDX/kokomoBay)
18
-
19
- example repo V2: [testeranto-starter](https://github.com/adamwong246/testeranto-starter)
15
+ example repo: [testeranto-starter](https://github.com/adamwong246/testeranto-starter)
20
16
 
21
17
  ## What is testeranto?
22
18
 
@@ -27,232 +23,248 @@ example repo V2: [testeranto-starter](https://github.com/adamwong246/testeranto-
27
23
  - Testeranto connects "features" to "tests". This allows the AI to read feature documentation from external systems, like Jira.
28
24
  - Testeranto generates test results into static a website which can be deployed to github pages easily.
29
25
 
30
- ## tech of note
26
+ ## Key Technologies
31
27
 
32
- - esm - Testeranto uses modern js
33
- - typescript - tests are functions with type parameters
34
- - puppeteer - provides access to both node and chrome runtimes
35
- - esbuild - used to quickly generate test bundles
36
- - aider - AI to automatically fix broken tests
37
- - eslint - runs upon the input files to generate a file of static analysis errors
38
- - tsc - runs upon the input files to generate a file of type errors
39
- - markdown - Markdown is used record feature files
28
+ Testeranto builds on modern JavaScript/TypeScript tooling:
40
29
 
41
- ## scripts
30
+ | Technology | Purpose |
31
+ | ---------- | -------------------------------------- |
32
+ | TypeScript | Strongly-typed test definitions |
33
+ | Puppeteer | Cross-runtime testing (Node & Browser) |
34
+ | esbuild | Fast test bundling |
35
+ | Aider.ai | AI-powered test fixing |
36
+ | ESLint | Static analysis of test files |
37
+ | tsc | Type checking of test files |
38
+ | Markdown | Feature documentation format |
42
39
 
43
- `yarn t-init`: startup a new testeranto project
40
+ ## Quick Start
44
41
 
45
- `yarn t-build <someTest> <once|dev>`: build the "someTest" project once, or continuously
42
+ 1. Install testeranto:
46
43
 
47
- `yarn t-run <someTest> <once|dev>`: run the "someTest" project once, or continuously
44
+ ```bash
45
+ npm install testeranto
46
+ ```
48
47
 
49
- `yarn t-report` Run the report server
48
+ 2. Create a test file (e.g., `rectangle.test.ts`):
50
49
 
51
- `yarn t-aider PATH_TO_PROMPT_FILE`: Execute a generated prompt file to fix broken tests.
50
+ ```typescript
51
+ import { Given, When, Then } from "testeranto";
52
52
 
53
- ## AI
54
-
55
- Testeranto generates a "prompt" alongside test results. This prompt is passed to aider as input.
53
+ type Rectangle = { width: number; height: number };
56
54
 
55
+ const RectangleSpec = (Suite, Given, When, Then) => [
56
+ Suite.Default("Rectangle tests", {
57
+ test1: Given.Default(
58
+ ["Basic rectangle operations"],
59
+ [When.setWidth(5), When.setHeight(10)],
60
+ [Then.getWidth(5), Then.getHeight(10)]
61
+ ),
62
+ }),
63
+ ];
57
64
  ```
58
- // input src files which can be edited by aider
59
- /add test/node.ts
60
65
 
61
- // test report files that inform aider but should not be edited
62
- /read testeranto/reports/allTests/node/test/node/tests.json
63
- /read testeranto/reports/allTests/test/node/node/lint_errors.json
64
- /read testeranto/reports/allTests/test/node/node/type_errors.txt
66
+ 3. Run your tests in two separate terminals:
65
67
 
66
- // A list of features which can inform aider.
67
- /load testeranto/reports/allTests/node/test/node/featurePrompt.txt
68
+ ```bash
69
+ # Terminal 1 - Build in watch mode
70
+ yarn t-build rectangle.test.ts dev
68
71
 
69
- // tell the AI what to do
70
- /code Fix the failing tests described in testeranto/reports/allTests/node/test/node/tests.json. Correct any type signature errors described in the files testeranto/reports/allTests/test/node/node/type_errors.txt. Implement any method which throws "Function not implemented. Resolve the lint errors described in testeranto/reports/allTests/test/node/node/lint_errors.json"
72
+ # Terminal 2 - Run in watch mode
73
+ yarn t-run rectangle.test.ts dev
71
74
  ```
72
75
 
73
- ## "Features"
76
+ ### Development Workflow
74
77
 
75
- Testeranto connects "features" to tests. The features may be simple strings, but they can also take the form of local markdown files, or remote URLs to external feature tracking systems. For instance, this could be a jira ticket or a github issue. These features are used to inform the AI context.
78
+ ```mermaid
76
79
 
77
- ## Platforms
80
+ flowchart LR
78
81
 
79
- Testeranto runs tests in multiple runtimes. You can run the same test (more or less) in multiple contexts, but depending on your test subject, not all may be applicable. For instance, if you are testing an http node server, you'll can't use the web runtime. If your code references `document` or `window`, you must use the web style. And if you wish to capture console.logs in a node context, you should use the `pure` runtime.
82
+ subgraph hh["humans"]
83
+ direction LR
84
+ Human[🧑💻 ]
85
+ end
80
86
 
81
- 1. Node - the test is run in node v8 via fork.
82
- 2. Web - the test is run in chrome, in a page.
83
- 3. Pure - the test is dynamically imported into the main thread. It will not have access to IO (console.log, etc) but it is more performant.
87
+ subgraph bb["AI"]
88
+ direction LR
89
+ Bot[🤖🧠 aider]
90
+ end
84
91
 
85
- ## Concepts
86
92
 
87
- Testeranto tests take some piece of javascript as input, and wraps it in testing apparatus, and then executes that test on the given platform. You must provide this apparatus in the following form:
93
+ tests ---> L
94
+ subgraph tests
95
+ direction LR
96
+ A[Test Specification]
97
+ B[Test Interface]
98
+ C[Test Implementation]
99
+ K[application code]
100
+ end
88
101
 
89
- ```js
90
- export default async <I extends IT, O extends OT, M>(
102
+ subgraph buildSystem
103
+ direction TB
104
+ L["t-build"]
105
+ M[t-run]
106
+ L ---> M
91
107
 
92
- // the thing that is being tested.
93
- input: I["iinput"],
108
+ M ---> N
109
+ M --->O
110
+ M --->P
111
+ N["BDD tests"]
112
+ O["Static analysis"]
113
+ P["Type checking"]
94
114
 
95
- testSpecification: ITestSpecification<I, O>,
96
- testImplementation: ITestImplementation<I, O, M>,
97
- testInterface: Partial<IWebTestInterface<I>>,
98
- testResourceRequirement: ITTestResourceRequest = defaultTestResourceRequirement
99
- ) => {
115
+ Q["reports"]
116
+ N ---> Q
117
+ O ---> Q
118
+ P ---> Q
119
+ end
100
120
 
101
- // or WebTesteranto<I, O, M> or PureTesteranto<I, O, M>
102
- return new NodeTesteranto<I, O, M>(
103
- input,
104
- testSpecification,
105
- testImplementation,
106
- testResourceRequirement,
107
- testInterface
108
- );
109
- };
121
+ Q ---> bb
110
122
 
111
- ```
123
+ buildSystem ---> bb
124
+ bb ---> tests
125
+ hh ---> tests
112
126
 
113
- Practically speaking, for each thing you test, you will need to implement 3 types and 4 objects.
127
+ %% Styling
128
+ style Human fill:#268bd2,stroke:#586e75,color:#fdf6e3
129
+ style Bot fill:#d33682,stroke:#586e75,color:#fdf6e3
114
130
 
115
- ### type I
131
+ %% Layout tweaks
132
+ classDef column margin-right:20px
116
133
 
117
- this type describes the shape of the BDD test
134
+ ```
118
135
 
119
- ```ts
120
- export type I = Ibdd_in<
121
- null,
122
- null,
123
- Rectangle,
124
- Rectangle,
125
- Rectangle,
126
- (...x) => (rectangle: Rectangle, utils: IPM) => Rectangle,
127
- (rectangle: Rectangle, utils: IPM) => Rectangle
128
- >;
136
+ ## Architecture Overview
137
+
138
+ ```mermaid
139
+ flowchart TD
140
+ subgraph ThreePillars["Testeranto Core"]
141
+ Builder[Test Builder]
142
+ Runner[Test Runner]
143
+ Aider[AI Integration]
144
+ end
145
+
146
+ subgraph BuilderComponents[" "]
147
+ Specification[Specification]
148
+ Implementation[Implementation]
149
+ Interface[Interface]
150
+ end
151
+
152
+ subgraph Runtimes[" "]
153
+ Node[Node]
154
+ Web[Browser]
155
+ Pure[JS]
156
+ end
157
+
158
+ Builder --> Runner
159
+ Runner --> Aider
160
+ Aider --> Builder
161
+
162
+ Builder --> BuilderComponents
163
+ Runner --> Runtimes
164
+
165
+ style ThreePillars fill:none,stroke:#586e75
166
+ style Builder fill:#268bd2,stroke:#586e75,color:#fdf6e3
167
+ style Runner fill:#268bd2,stroke:#586e75,color:#fdf6e3
168
+ style Aider fill:#b58900,stroke:#586e75,color:#002b36
169
+ style BuilderComponents fill:#002b36,stroke:#586e75,color:#eee8d5
170
+ style Runtimes fill:#073642,stroke:#586e75,color:#eee8d5
171
+ style Specification fill:#2aa198,stroke:#586e75,color:#002b36
172
+ style Implementation fill:#2aa198,stroke:#586e75,color:#002b36
173
+ style Interface fill:#2aa198,stroke:#586e75,color:#002b36
174
+ style Node fill:#859900,stroke:#586e75,color:#002b36
175
+ style Web fill:#859900,stroke:#586e75,color:#002b36
176
+ style Pure fill:#859900,stroke:#586e75,color:#002b36
129
177
  ```
130
178
 
131
- ### type O
179
+ ## Runtime Platforms
132
180
 
133
- this type describes the shape of the "interface"
181
+ Testeranto runs tests in multiple runtime environments, each suited for different testing scenarios:
134
182
 
135
- ```ts
136
- export type O = Ibdd_out<
137
- // Suite
138
- {
139
- Default: [string];
140
- },
141
- // "Given" are initial states
142
- {
143
- Default;
144
- WidthOfOneAndHeightOfOne;
145
- WidthAndHeightOf: [number, number];
146
- },
147
- // "Whens" are steps which change the state of the test subject
148
- {
149
- HeightIsPubliclySetTo: [number];
150
- WidthIsPubliclySetTo: [number];
151
- setWidth: [number];
152
- setHeight: [number];
153
- },
154
- // "Thens" are steps which make assertions of the test subject
155
- {
156
- AreaPlusCircumference: [number];
157
- circumference: [number];
158
- getWidth: [number];
159
- getHeight: [number];
160
- area: [number];
161
- prototype: [];
162
- },
163
- // "Checks" are similar to "Givens"
164
- {
165
- Default;
166
- WidthOfOneAndHeightOfOne;
167
- WidthAndHeightOf: [number, number];
168
- }
169
- >;
170
- ```
183
+ | Runtime | Description | When To Use | Key Characteristics |
184
+ | -------- | ------------------------------------------------- | ---------------------------------------------------------------------- | ------------------------------------------------------- |
185
+ | **Node** | Full IO access with Node.js built-in modules | Testing backend code, Node APIs, or anything needing filesystem access | Runs in Node v8 via fork, has access to fs, crypto, etc |
186
+ | **Web** | DOM API access with browser capabilities | Testing frontend code, UI interactions, or visual regression | Runs in Chrome page, can take screenshots/recordings |
187
+ | **Pure** | Isolated JS runtime without external dependencies | Fast unit tests that don't need external resources | Dynamically imported into main thread, no IO access |
171
188
 
172
- ### type M (optional)
189
+ **Key Considerations:**
173
190
 
174
- this type describes the modifications to the shape of the "specification". It can be used to make your BDD tests DRYer but is not necessary
191
+ - Use **Node** for testing backend services, file operations, or anything requiring Node.js APIs
192
+ - Use **Web** when testing browser-specific code that references `document` or `window`
193
+ - Use **Pure** for fast, isolated unit tests where you don't need console output or external resources
175
194
 
176
- ```ts
177
- export type M = {
178
- givens: {
179
- [K in keyof O["givens"]]: (...Iw: O["givens"][K]) => Rectangle;
180
- };
181
- whens: {
182
- [K in keyof O["whens"]]: (
183
- ...Iw: O["whens"][K]
184
- ) => (rectangle: Rectangle, utils: PM) => Rectangle;
185
- };
186
- thens: {
187
- [K in keyof O["thens"]]: (
188
- ...Iw: O["thens"][K]
189
- ) => (rectangle: Rectangle, utils: PM) => Rectangle;
190
- };
191
- };
195
+ ## CLI Commands
196
+
197
+ | Command | Description |
198
+ | ------------------------------------- | --------------------------------------------- |
199
+ | `yarn t-init` | Create a new testeranto project |
200
+ | `yarn t-build <YOUR_TESTS> dev\|once` | Build test bundles (watch or single-run mode) |
201
+ | `yarn t-run <YOUR_TESTS> dev\|once` | Run tests (watch or single-run mode) |
202
+ | `yarn t-report` | Launch test report server |
203
+ | `yarn t-aider` | Fix failing tests with AI |
204
+
205
+ Example workflow:
206
+
207
+ ```bash
208
+ # Initialize project
209
+ yarn t-init
210
+
211
+ # Write tests in test/*.test.ts
212
+
213
+ # In terminal 1 - Build tests (watch mode)
214
+ yarn t-build test/rectangle.test.ts dev
215
+
216
+ # In terminal 2 - Run tests (watch mode)
217
+ yarn t-run test/rectangle.test.ts dev
218
+
219
+ # Or for single-run mode:
220
+ yarn t-build test/rectangle.test.ts once
221
+ yarn t-run test/rectangle.test.ts once
222
+
223
+ # Get AI help with failures
224
+ yarn t-aider
192
225
  ```
193
226
 
194
- ### the "specification" aka ITestSpecification<I, O>
227
+ ## AI
195
228
 
196
- The test specification is the BDD tests logic. The specification implements BDD directives "Given", "When", and Then"
229
+ Testeranto generates a "prompt" alongside test results. This prompt is passed to aider as input.
197
230
 
198
- ```ts
199
- export const RectangleTesterantoBaseTestSpecification: ITestSpecification<
200
- I,
201
- O
202
- > = (Suite, Given, When, Then, Check) => {
203
- return [
204
- Suite.Default(
205
- "Testing the Rectangle class",
206
- {
207
- // A "given" is a strict BDD test. It starts with an initial state, then executes the "whens" which update the test subject, and then executes the "thens" as a assertions.
208
- test0: Given.Default(
209
- // a list of features
210
- ["https://api.github.com/repos/adamwong246/testeranto/issues/8"],
211
- // a list of "whens"
212
- [When.setWidth(4), When.setHeight(19)],
213
- // a list of "thens"
214
- [Then.getWidth(4), Then.getHeight(19)]
215
- ),
216
- },
217
-
218
- [
219
- // a "check" is a less strict style of test. Instead of lists of whens and thens, you get a function callback.
220
- Check.Default("imperative style?!", [], async (rectangle) => {
221
- Then.getWidth(2).thenCB(rectangle);
222
- Then.getHeight(2).thenCB(rectangle);
223
- When.setHeight(22).whenCB(rectangle);
224
- Then.getHeight(232).thenCB(rectangle);
225
- }),
226
- ]
227
- ),
228
- ];
229
- };
230
231
  ```
232
+ // input src files which can be edited by aider
233
+ /add test/node.ts
231
234
 
232
- ### the "interface" aka testInterface: Partial<IWebTestInterface<I>>
235
+ // test report files that inform aider but should not be edited
236
+ /read testeranto/reports/allTests/node/test/node/tests.json
237
+ /read testeranto/reports/allTests/test/node/node/lint_errors.json
238
+ /read testeranto/reports/allTests/test/node/node/type_errors.txt
233
239
 
234
- The test interface is code which is NOT BDD steps. The interface implements "before all", "after all", "before each", and "after each", all of which are optional. f
240
+ // A list of features which can inform aider.
241
+ /load testeranto/reports/allTests/node/test/node/featurePrompt.txt
235
242
 
236
- ```ts
237
- export const RectangleTesterantoBaseInterface: IPartialInterface<I> = {
238
- beforeEach: async (subject, i) => {
239
- return i();
240
- },
241
- andWhen: async function (s, whenCB, tr, utils) {
242
- return whenCB(s)(s, utils);
243
- },
244
- butThen: async (s, t, tr, pm) => {
245
- return t(s, pm);
246
- },
247
- };
243
+ // tell the AI what to do
244
+ /code Fix the failing tests described in testeranto/reports/allTests/node/test/node/tests.json. Correct any type signature errors described in the files testeranto/reports/allTests/test/node/node/type_errors.txt. Implement any method which throws "Function not implemented. Resolve the lint errors described in testeranto/reports/allTests/test/node/node/lint_errors.json"
248
245
  ```
249
246
 
250
- ## the "test resource requirement" aka ITTestResourceRequest (optional)
247
+ ## "Features"
251
248
 
252
- The test resource requirement describes things that the test needs to run, namely network ports. It is optional, but you should add this argument if your test needs to rely upon network ports
249
+ Testeranto connects "features" to tests. The features may be simple strings, but they can also take the form of local markdown files, or remote URLs to external feature tracking systems. For instance, this could be a jira ticket or a github issue. These features are used to inform the AI context.
253
250
 
254
251
  ```ts
255
- // TODO add example of test resource requirement
252
+ import someMarkdownFile from "someMarkdownFile.md";
253
+
254
+ ...
255
+
256
+ test0: Given.Default(
257
+ [
258
+ "https://api.github.com/repos/adamwong246/testeranto/issues/8",
259
+ "you can set the width and height of a Rectangle",
260
+ someMarkdownFile
261
+ ],
262
+
263
+ [When.setWidth(4), When.setHeight(19)],
264
+ [Then.getWidth(4), Then.getHeight(19)]
265
+ ),
266
+ ...
267
+
256
268
  ```
257
269
 
258
270
  ## Sidecars (COMING SOON)
package/bundle.js CHANGED
@@ -2,11 +2,17 @@ import * as esbuild from 'esbuild'
2
2
 
3
3
  await esbuild.build({
4
4
  outExtension: { '.js': '.mjs' },
5
- entryPoints: ['src/build.ts', 'src/run.ts', 'src/init-docs.ts', 'src/ReportServer.ts', 'src/esbuildConfigs/eslint-formatter-testeranto.ts'],
5
+ entryPoints: [
6
+ 'src/build.ts',
7
+ 'src/run.ts',
8
+ 'src/init-docs.ts',
9
+ 'src/ReportServer.ts',
10
+ 'src/esbuildConfigs/eslint-formatter-testeranto.ts',
11
+ 'src/mothership/index.ts'
12
+ ],
6
13
  bundle: true,
7
14
  format: "esm",
8
15
  platform: "node",
9
- // outfile: 'dist/prebuild/cli.mjs'
10
16
  outdir: 'dist/prebuild',
11
17
  packages: "external",
12
18
  supported: {
@@ -18,79 +24,6 @@ await esbuild.build({
18
24
  },
19
25
  })
20
26
 
21
- // await esbuild.build({
22
- // entryPoints: ['src/init-docs.ts'],
23
- // bundle: true,
24
- // format: "esm",
25
- // platform: "node",
26
- // // format: "node",
27
- // outfile: 'dist/prebuild/init-docs.mjs',
28
- // // external: ['crypto', 'os'],
29
- // supported: {
30
- // "dynamic-import": true,
31
- // },
32
-
33
- // banner: {
34
- // js: `import { createRequire } from 'module';const require = createRequire(import.meta.url);`,
35
- // },
36
- // })
37
-
38
-
39
-
40
- // await esbuild.build({
41
- // entryPoints: ['src/cli2.ts'],
42
- // bundle: true,
43
- // format: "esm",
44
- // platform: "node",
45
- // outfile: 'dist/prebuild/cli2.mjs',
46
- // packages: "external",
47
- // supported: {
48
- // "dynamic-import": true,
49
- // },
50
-
51
- // banner: {
52
- // js: `import { createRequire } from 'module';const require = createRequire(import.meta.url);`,
53
- // },
54
- // })
55
-
56
-
57
-
58
-
59
- // await esbuild.build({
60
- // entryPoints: ['src/ReportServer.ts'],
61
- // bundle: true,
62
- // format: "esm",
63
- // platform: "node",
64
- // outfile: 'dist/prebuild/ReportServer.mjs',
65
- // packages: "external",
66
- // // supported: {
67
- // // "dynamic-import": true,
68
- // // },
69
-
70
- // // banner: {
71
- // // js: `import { createRequire } from 'module';const require = createRequire(import.meta.url);`,
72
- // // },
73
- // })
74
-
75
- // await esbuild.build({
76
- // entryPoints: ['src/esbuildConfigs/eslint-formatter-testeranto.ts'],
77
- // bundle: true,
78
- // format: "esm",
79
- // platform: "node",
80
- // outfile: 'dist/prebuild/eslint-formatter-testeranto.mjs',
81
- // packages: "external",
82
- // // supported: {
83
- // // "dynamic-import": true,
84
- // // },
85
-
86
- // // banner: {
87
- // // js: `import { createRequire } from 'module';const require = createRequire(import.meta.url);`,
88
- // // },
89
- // })
90
-
91
-
92
- /////////////////////////
93
-
94
27
  await esbuild.build({
95
28
  entryPoints: ['src/ReportClient.tsx', 'src/TestReport.tsx', 'src/Project.tsx'],
96
29
  bundle: true,
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ /* eslint-disable @typescript-eslint/no-unused-vars */
6
7
  const fs_1 = __importDefault(require("fs"));
7
8
  exports.default = async () => {
8
9
  [
@@ -14,6 +15,7 @@ exports.default = async () => {
14
15
  `testeranto/reports`,
15
16
  `testeranto/reports/`,
16
17
  `testeranto/features/`,
18
+ `testeranto/externalTests/`,
17
19
  ].forEach((f) => {
18
20
  try {
19
21
  fs_1.default.mkdirSync(`${process.cwd()}/${f}`);
@@ -25,7 +27,10 @@ exports.default = async () => {
25
27
  fs_1.default.copyFileSync(`node_modules/testeranto/dist/prebuild/Project.js`, `testeranto/Project.js`);
26
28
  fs_1.default.copyFileSync(`node_modules/testeranto/dist/prebuild/ReportClient.js`, `testeranto/ReportClient.js`);
27
29
  fs_1.default.copyFileSync(`node_modules/testeranto/dist/prebuild/Project.css`, `testeranto/Project.css`);
28
- fs_1.default.copyFileSync(`node_modules/testeranto/dist/prebuild/ReportClient.css`, `testeranto/ReportClient.css`);
30
+ // fs.copyFileSync(
31
+ // `node_modules/testeranto/dist/prebuild/ReportClient.css`,
32
+ // `testeranto/ReportClient.css`
33
+ // );
29
34
  fs_1.default.copyFileSync(`node_modules/testeranto/dist/prebuild/TestReport.js`, `testeranto/TestReport.js`);
30
35
  fs_1.default.copyFileSync(`node_modules/testeranto/dist/prebuild/TestReport.css`, `testeranto/TestReport.css`);
31
36
  };
@@ -7,6 +7,7 @@ exports.NodeTesteranto = void 0;
7
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
+ let ipcfile;
10
11
  class NodeTesteranto extends core_js_1.default {
11
12
  constructor(input, testSpecification, testImplementation, testResourceRequirement, testInterface) {
12
13
  super(input, testSpecification, testImplementation, testResourceRequirement, testInterface, () => {
@@ -15,7 +16,7 @@ class NodeTesteranto extends core_js_1.default {
15
16
  }
16
17
  async receiveTestResourceConfig(partialTestResource) {
17
18
  const t = JSON.parse(partialTestResource);
18
- const pm = new node_js_1.PM_Node(t);
19
+ const pm = new node_js_1.PM_Node(t, ipcfile);
19
20
  return await this.testJobs[0].receiveTestResourceConfig(pm);
20
21
  // const { failed, artifacts, logPromise, features } =
21
22
  // await this.testJobs[0].receiveTestResourceConfig(pm);
@@ -29,15 +30,16 @@ const testeranto = async (input, testSpecification, testImplementation, testInte
29
30
  process.on("unhandledRejection", (reason, promise) => {
30
31
  console.error("Unhandled Rejection at:", promise, "reason:", reason);
31
32
  // Optionally, terminate the process or perform cleanup
33
+ // t.registerUncaughtPromise(reason, promise);
32
34
  });
33
35
  try {
34
- console.log(process.argv);
36
+ ipcfile = process.argv[3];
35
37
  const f = await t.receiveTestResourceConfig(process.argv[2]);
36
- console.error("goodbye node error", f.fails);
38
+ console.error("goodbye node with failures", f.fails);
37
39
  process.exit(f.fails);
38
40
  }
39
41
  catch (e) {
40
- console.error("goodbye node error", e);
42
+ console.error("goodbye node with caught error", e);
41
43
  process.exit(-1);
42
44
  // fs.writeFileSync(`tests.json`, JSON.stringify(t.,
43
45
  // null, 2));
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NodeSidecar = void 0;
4
+ const Sidecar_1 = require("./lib/Sidecar");
5
+ const nodeSidecar_1 = require("./PM/nodeSidecar");
6
+ class NodeSidecar extends Sidecar_1.Sidecar {
7
+ constructor(t) {
8
+ super();
9
+ this.pm = new nodeSidecar_1.PM_Node_Sidecar(t);
10
+ this.pm.start(this.stop).then(() => {
11
+ this.start(JSON.parse(process.argv[2]));
12
+ });
13
+ }
14
+ }
15
+ exports.NodeSidecar = NodeSidecar;