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/src/Node.ts CHANGED
@@ -4,21 +4,37 @@ import {
4
4
  ITTestResourceConfiguration,
5
5
  ITTestResourceRequest,
6
6
  } from "./lib/index.js";
7
- import type {
8
- INodeTestInterface,
9
- IT,
7
+ import type {} from // INodeTestInterface,
8
+ // IT,
9
+ // ITestImplementation,
10
+ // ITestInterface,
11
+ // ITestSpecification,
12
+ // OT,
13
+ "./Types.js";
14
+ import { PM_Node } from "./PM/node.js";
15
+ import {
16
+ ITestSpecification,
10
17
  ITestImplementation,
11
18
  ITestInterface,
12
- ITestSpecification,
13
- OT,
14
- } from "./Types.js";
15
- import { PM_Node } from "./PM/node.js";
19
+ Ibdd_in,
20
+ Ibdd_out,
21
+ } from "./CoreTypes.js";
22
+
23
+ let ipcfile;
16
24
 
17
- export class NodeTesteranto<I extends IT, O extends OT, M> extends Testeranto<
18
- I,
19
- O,
25
+ export class NodeTesteranto<
26
+ I extends Ibdd_in<
27
+ unknown,
28
+ unknown,
29
+ unknown,
30
+ unknown,
31
+ unknown,
32
+ unknown,
33
+ unknown
34
+ >,
35
+ O extends Ibdd_out,
20
36
  M
21
- > {
37
+ > extends Testeranto<I, O, M> {
22
38
  constructor(
23
39
  input: I["iinput"],
24
40
  testSpecification: ITestSpecification<I, O>,
@@ -40,7 +56,7 @@ export class NodeTesteranto<I extends IT, O extends OT, M> extends Testeranto<
40
56
 
41
57
  async receiveTestResourceConfig(partialTestResource: string) {
42
58
  const t: ITTestResourceConfiguration = JSON.parse(partialTestResource);
43
- const pm = new PM_Node(t);
59
+ const pm = new PM_Node(t, ipcfile);
44
60
  return await this.testJobs[0].receiveTestResourceConfig(pm);
45
61
  // const { failed, artifacts, logPromise, features } =
46
62
  // await this.testJobs[0].receiveTestResourceConfig(pm);
@@ -67,16 +83,17 @@ const testeranto = async <I extends IT, O extends OT, M>(
67
83
  process.on("unhandledRejection", (reason, promise) => {
68
84
  console.error("Unhandled Rejection at:", promise, "reason:", reason);
69
85
  // Optionally, terminate the process or perform cleanup
86
+ // t.registerUncaughtPromise(reason, promise);
70
87
  });
71
88
 
72
89
  try {
73
- console.log(process.argv);
90
+ ipcfile = process.argv[3];
74
91
  const f = await t.receiveTestResourceConfig(process.argv[2]);
75
92
 
76
- console.error("goodbye node error", f.fails);
93
+ console.error("goodbye node with failures", f.fails);
77
94
  process.exit(f.fails);
78
95
  } catch (e) {
79
- console.error("goodbye node error", e);
96
+ console.error("goodbye node with caught error", e);
80
97
  process.exit(-1);
81
98
 
82
99
  // fs.writeFileSync(`tests.json`, JSON.stringify(t.,
@@ -0,0 +1,22 @@
1
+ import { Sidecar } from "./lib/Sidecar";
2
+ import { PM_Node_Sidecar } from "./PM/nodeSidecar";
3
+
4
+ export abstract class NodeSidecar extends Sidecar {
5
+ pm: PM_Node_Sidecar;
6
+
7
+ constructor(t) {
8
+ super();
9
+ this.pm = new PM_Node_Sidecar(t);
10
+ this.pm.start(this.stop).then(() => {
11
+ this.start(JSON.parse(process.argv[2]));
12
+ });
13
+ }
14
+ // start(t: ITTestResourceConfiguration) {
15
+ // throw new Error("Method not implemented.");
16
+ // }
17
+ // stop() {
18
+ // console.log("NewSideCar stop");
19
+ // // process.exit();
20
+ // throw new Error("STOP not implemented.");
21
+ // }
22
+ }
@@ -0,0 +1,315 @@
1
+ /* eslint-disable @typescript-eslint/ban-ts-comment */
2
+ /* eslint-disable no-async-promise-executor */
3
+ /* eslint-disable @typescript-eslint/no-explicit-any */
4
+ /* eslint-disable @typescript-eslint/no-unused-vars */
5
+
6
+ import ts from "typescript";
7
+ import fs from "fs";
8
+ import path from "path";
9
+ import ansiC from "ansi-colors";
10
+ import { ESLint } from "eslint";
11
+ import tsc from "tsc-prog";
12
+
13
+ import { lintPather, promptPather, tscPather } from "../utils";
14
+ import { IBuiltConfig, IRunTime, ISummary } from "../Types.js";
15
+
16
+ import { PM_Base } from "./base.js";
17
+
18
+ const eslint = new ESLint();
19
+ const formatter = await eslint.loadFormatter(
20
+ "./node_modules/testeranto/dist/prebuild/esbuildConfigs/eslint-formatter-testeranto.mjs"
21
+ );
22
+
23
+ export abstract class PM_WithEslintAndTsc extends PM_Base {
24
+ name: string;
25
+ mode: "once" | "dev";
26
+ summary: ISummary = {};
27
+
28
+ constructor(configs: IBuiltConfig, name: string, mode: "once" | "dev") {
29
+ super(configs);
30
+
31
+ this.name = name;
32
+ this.mode = mode;
33
+
34
+ this.configs.tests.forEach(([t, rt, tr, sidecars]) => {
35
+ this.summary[t] = {
36
+ runTimeError: "?",
37
+ typeErrors: "?",
38
+ staticErrors: "?",
39
+ prompt: "?",
40
+ failingFeatures: {},
41
+ };
42
+ sidecars.forEach(([t]) => {
43
+ this.summary[t] = {
44
+ // runTimeError: "?",
45
+ typeErrors: "?",
46
+ staticErrors: "?",
47
+ // prompt: "?",
48
+ // failingFeatures: {},
49
+ };
50
+ });
51
+ });
52
+ }
53
+
54
+ tscCheck = async ({
55
+ entrypoint,
56
+ addableFiles,
57
+ platform,
58
+ }: {
59
+ platform: IRunTime;
60
+ entrypoint: string;
61
+ addableFiles: string[];
62
+ }) => {
63
+ console.log(ansiC.green(ansiC.inverse(`tsc < ${entrypoint}`)));
64
+ this.typeCheckIsRunning(entrypoint);
65
+
66
+ const program = tsc.createProgramFromConfig({
67
+ basePath: process.cwd(), // always required, used for relative paths
68
+ configFilePath: "tsconfig.json", // config to inherit from (optional)
69
+ compilerOptions: {
70
+ outDir: tscPather(entrypoint, platform, this.name),
71
+ // declaration: true,
72
+ // skipLibCheck: true,
73
+ noEmit: true,
74
+ },
75
+ include: addableFiles, //["src/**/*"],
76
+ // exclude: ["node_modules", "../testeranto"],
77
+ // exclude: ["**/*.test.ts", "**/*.spec.ts"],
78
+ });
79
+ const tscPath = tscPather(entrypoint, platform, this.name);
80
+
81
+ const allDiagnostics = program.getSemanticDiagnostics();
82
+
83
+ const results: string[] = [];
84
+ allDiagnostics.forEach((diagnostic) => {
85
+ if (diagnostic.file) {
86
+ const { line, character } = ts.getLineAndCharacterOfPosition(
87
+ diagnostic.file,
88
+ diagnostic.start!
89
+ );
90
+ const message = ts.flattenDiagnosticMessageText(
91
+ diagnostic.messageText,
92
+ "\n"
93
+ );
94
+ results.push(
95
+ `${diagnostic.file.fileName} (${line + 1},${
96
+ character + 1
97
+ }): ${message}`
98
+ );
99
+ } else {
100
+ results.push(
101
+ ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n")
102
+ );
103
+ }
104
+ });
105
+
106
+ fs.writeFileSync(tscPath, results.join("\n"));
107
+
108
+ this.typeCheckIsNowDone(entrypoint, results.length);
109
+ };
110
+
111
+ eslintCheck = async (
112
+ entrypoint: string,
113
+ platform: IRunTime,
114
+ addableFiles: string[]
115
+ ) => {
116
+ console.log(ansiC.green(ansiC.inverse(`eslint < ${entrypoint}`)));
117
+ this.lintIsRunning(entrypoint);
118
+
119
+ const results = (await eslint.lintFiles(addableFiles))
120
+ .filter((r) => r.messages.length)
121
+ .filter((r) => {
122
+ return r.messages[0].ruleId !== null;
123
+ })
124
+ .map((r) => {
125
+ delete r.source;
126
+ return r;
127
+ });
128
+
129
+ fs.writeFileSync(
130
+ lintPather(entrypoint, platform, this.name),
131
+ await formatter.format(results)
132
+ );
133
+ this.lintIsNowDone(entrypoint, results.length);
134
+ };
135
+
136
+ makePrompt = async (
137
+ entryPoint: string,
138
+ addableFiles: string[],
139
+ platform: IRunTime
140
+ ) => {
141
+ this.summary[entryPoint].prompt = "?";
142
+ const promptPath = promptPather(entryPoint, platform, this.name);
143
+
144
+ const testPaths = path.join(
145
+ "testeranto",
146
+ "reports",
147
+ this.name,
148
+ entryPoint.split(".").slice(0, -1).join("."),
149
+ platform,
150
+ `tests.json`
151
+ );
152
+
153
+ const featuresPath = path.join(
154
+ "testeranto",
155
+ "reports",
156
+ this.name,
157
+ platform,
158
+ entryPoint.split(".").slice(0, -1).join("."),
159
+ `featurePrompt.txt`
160
+ );
161
+
162
+ const logPath = path.join(
163
+ "testeranto",
164
+ "reports",
165
+ this.name,
166
+ entryPoint.split(".").slice(0, -1).join("."),
167
+ platform,
168
+ `console_log.txt`
169
+ );
170
+
171
+ const lintPath = path.join(
172
+ "testeranto",
173
+ "reports",
174
+ this.name,
175
+ entryPoint.split(".").slice(0, -1).join("."),
176
+ platform,
177
+ `lint_errors.json`
178
+ );
179
+
180
+ const typePath = path.join(
181
+ "testeranto",
182
+ "reports",
183
+ this.name,
184
+ entryPoint.split(".").slice(0, -1).join("."),
185
+ platform,
186
+ `type_errors.txt`
187
+ );
188
+
189
+ const messagePath = path.join(
190
+ "testeranto",
191
+ "reports",
192
+ this.name,
193
+ entryPoint.split(".").slice(0, -1).join("."),
194
+ platform,
195
+ `message`
196
+ );
197
+
198
+ fs.writeFileSync(
199
+ promptPath,
200
+ `
201
+ ${addableFiles
202
+ .map((x) => {
203
+ return `/add ${x}`;
204
+ })
205
+ .join("\n")}
206
+
207
+ /read ${testPaths}
208
+ /read ${logPath}
209
+ /read ${typePath}
210
+ /read ${lintPath}
211
+ `
212
+ );
213
+
214
+ fs.writeFileSync(
215
+ messagePath,
216
+ `Fix the failing tests described in ${testPaths} and ${logPath}. DO NOT refactor beyond what is necessary. Always prefer minimal changes, focusing mostly on keeping the BDD tests passing`
217
+ );
218
+
219
+ this.summary[
220
+ entryPoint
221
+ ].prompt = `aider --model deepseek/deepseek-chat --load testeranto/${
222
+ this.name
223
+ }/reports/${platform}/${entryPoint
224
+ .split(".")
225
+ .slice(0, -1)
226
+ .join(".")}/prompt.txt`;
227
+ this.checkForShutdown();
228
+ };
229
+
230
+ typeCheckIsRunning = (src: string) => {
231
+ this.summary[src].typeErrors = "?";
232
+ };
233
+
234
+ typeCheckIsNowDone = (src: string, failures: number) => {
235
+ this.summary[src].typeErrors = failures;
236
+ this.writeBigBoard();
237
+ this.checkForShutdown();
238
+ };
239
+
240
+ lintIsRunning = (src: string) => {
241
+ this.summary[src].staticErrors = "?";
242
+ this.writeBigBoard();
243
+ };
244
+
245
+ lintIsNowDone = (src: string, failures: number) => {
246
+ this.summary[src].staticErrors = failures;
247
+ this.writeBigBoard();
248
+ this.checkForShutdown();
249
+ };
250
+
251
+ bddTestIsRunning = (src: string) => {
252
+ this.summary[src].runTimeError = "?";
253
+ this.writeBigBoard();
254
+ };
255
+
256
+ bddTestIsNowDone = (src: string, failures: number) => {
257
+ this.summary[src].runTimeError = failures;
258
+ this.writeBigBoard();
259
+ this.checkForShutdown();
260
+ };
261
+
262
+ writeBigBoard = () => {
263
+ fs.writeFileSync(
264
+ `./testeranto/reports/${this.name}/summary.json`,
265
+ JSON.stringify(this.summary, null, 2)
266
+ );
267
+ };
268
+
269
+ checkForShutdown = () => {
270
+ console.log(ansiC.inverse(`checkForShutdown`));
271
+
272
+ this.writeBigBoard();
273
+
274
+ if (this.mode === "dev") return;
275
+
276
+ let inflight = false;
277
+
278
+ Object.keys(this.summary).forEach((k) => {
279
+ if (this.summary[k].prompt === "?") {
280
+ console.log(ansiC.blue(ansiC.inverse(`🕕 prompt ${k}`)));
281
+ inflight = true;
282
+ }
283
+ });
284
+
285
+ Object.keys(this.summary).forEach((k) => {
286
+ if (this.summary[k].runTimeError === "?") {
287
+ console.log(ansiC.blue(ansiC.inverse(`🕕 runTimeError ${k}`)));
288
+ inflight = true;
289
+ }
290
+ });
291
+
292
+ Object.keys(this.summary).forEach((k) => {
293
+ if (this.summary[k].staticErrors === "?") {
294
+ console.log(ansiC.blue(ansiC.inverse(`🕕 staticErrors ${k}`)));
295
+ inflight = true;
296
+ }
297
+ });
298
+
299
+ Object.keys(this.summary).forEach((k) => {
300
+ if (this.summary[k].typeErrors === "?") {
301
+ console.log(ansiC.blue(ansiC.inverse(`🕕 typeErrors ${k}`)));
302
+ inflight = true;
303
+ }
304
+ });
305
+
306
+ this.writeBigBoard();
307
+
308
+ if (!inflight) {
309
+ this.browser.disconnect().then(() => {
310
+ console.log(ansiC.inverse(`${this.name} has been tested. Goodbye.`));
311
+ process.exit();
312
+ });
313
+ }
314
+ };
315
+ }
@@ -0,0 +1,173 @@
1
+ import net from "net";
2
+ import { ITTestResourceConfiguration } from "../../lib";
3
+ import { PM_Node_Sidecar } from "../nodeSidecar";
4
+ import Testeranto from "../../Node";
5
+ import {
6
+ Ibdd_out,
7
+ ITestSpecification,
8
+ IT,
9
+ ITestImplementation,
10
+ Ibdd_in,
11
+ IPartialNodeInterface,
12
+ } from "../../Types";
13
+
14
+ type I = Ibdd_in<
15
+ PM_Node_Sidecar,
16
+ PM_Node_Sidecar,
17
+ unknown,
18
+ unknown,
19
+ unknown,
20
+ unknown,
21
+ unknown
22
+ >;
23
+
24
+ type O = Ibdd_out<
25
+ {
26
+ SidecarInitialized: [null];
27
+ },
28
+ {
29
+ SidecarReady: [];
30
+ },
31
+ {
32
+ SendTestMessage: [string];
33
+ VerifyCleanup: [];
34
+ },
35
+ {
36
+ MessageReceived: [string];
37
+ ListenersCleaned: [];
38
+ },
39
+ {
40
+ SidecarState: unknown;
41
+ }
42
+ >;
43
+
44
+ const specification: ITestSpecification<IT, O> = (Suite, Given, When, Then) => {
45
+ return [
46
+ Suite.SidecarInitialized(
47
+ "Sidecar message passing works correctly",
48
+ {
49
+ basicSend: Given.SidecarReady(
50
+ ["can send and receive messages"],
51
+ [When.SendTestMessage("test-message")],
52
+ [Then.MessageReceived("test-message")]
53
+ ),
54
+ cleanup: Given.SidecarReady(
55
+ ["cleans up listeners after message"],
56
+ [When.VerifyCleanup()],
57
+ [Then.ListenersCleaned()]
58
+ ),
59
+ },
60
+ []
61
+ ),
62
+ ];
63
+ };
64
+
65
+ const implementation: ITestImplementation<I, O> = {
66
+ suites: { SidecarInitialized: (x) => x },
67
+ givens: {
68
+ SidecarReady: () => {
69
+ const config: ITTestResourceConfiguration = {
70
+ name: "test-sidecar",
71
+ fs: "/tmp",
72
+ ports: [3001],
73
+ browserWSEndpoint: "",
74
+ };
75
+ return new PM_Node_Sidecar(config);
76
+ },
77
+ },
78
+ whens: {
79
+ SendTestMessage: (message) => async (sidecar: PM_Node_Sidecar) => {
80
+ let callbackFn: Function;
81
+ const mockProcess = {
82
+ on: (event: string, callback: Function) => {
83
+ if (event === "message") {
84
+ callbackFn = callback;
85
+ callback(
86
+ JSON.stringify({
87
+ key: "mock-key",
88
+ payload: message,
89
+ })
90
+ );
91
+ }
92
+ return mockProcess;
93
+ },
94
+ addListener: () => mockProcess,
95
+ removeListener: () => mockProcess
96
+ } as unknown as NodeJS.Process;
97
+
98
+ process = mockProcess;
99
+
100
+ let writeCalled = false;
101
+ sidecar.client.write = (data: string) => {
102
+ writeCalled = true;
103
+ return true;
104
+ };
105
+
106
+ await sidecar.send("test-command", message);
107
+ return { writeCalled, callbackFn };
108
+ },
109
+ VerifyCleanup: () => async (sidecar: PM_Node_Sidecar) => {
110
+ let addListenerCalled = false;
111
+ let removeListenerCalled = false;
112
+
113
+ const mockProcess = {
114
+ addListener: () => {
115
+ addListenerCalled = true;
116
+ return mockProcess;
117
+ },
118
+ removeListener: () => {
119
+ removeListenerCalled = true;
120
+ return mockProcess;
121
+ }
122
+ } as unknown as NodeJS.Process;
123
+ process = mockProcess;
124
+
125
+ await sidecar.send("test-command", "test");
126
+ return { addListenerCalled, removeListenerCalled };
127
+ },
128
+ },
129
+ thens: {
130
+ MessageReceived: (expected) => (actual) => {
131
+ if (actual !== expected) {
132
+ throw new Error(`Expected "${expected}" but got "${actual}"`);
133
+ }
134
+ return actual;
135
+ },
136
+ ListenersCleaned:
137
+ () =>
138
+ (result, { removeListenerCalled }) => {
139
+ if (!removeListenerCalled) {
140
+ throw new Error("Expected removeListener to be called");
141
+ }
142
+ return result;
143
+ },
144
+ },
145
+ checks: { SidecarState: () => "unknown" },
146
+ };
147
+
148
+ const testInterface: IPartialNodeInterface<I> = {
149
+ beforeEach: async (subject, initializer, testResource, initialValues, pm) => {
150
+ const sidecar = initializer();
151
+ sidecar.client = {
152
+ write: () => true,
153
+ end: () => {},
154
+ on: () => {},
155
+ } as unknown as net.Socket;
156
+ return sidecar;
157
+ },
158
+ andWhen: async (store, whenCB, testResource, pm) => {
159
+ try {
160
+ await whenCB(store, testResource, pm);
161
+ } catch (e) {
162
+ console.error("Error in andWhen:", e);
163
+ throw e;
164
+ }
165
+ },
166
+ };
167
+
168
+ export default Testeranto(
169
+ () => new PM_Node_Sidecar({} as ITTestResourceConfiguration),
170
+ specification,
171
+ implementation,
172
+ testInterface
173
+ );