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
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
1
2
  import fs from "fs";
2
3
  export default async () => {
3
4
  [
@@ -9,6 +10,7 @@ export default async () => {
9
10
  `testeranto/reports`,
10
11
  `testeranto/reports/`,
11
12
  `testeranto/features/`,
13
+ `testeranto/externalTests/`,
12
14
  ].forEach((f) => {
13
15
  try {
14
16
  fs.mkdirSync(`${process.cwd()}/${f}`);
@@ -20,7 +22,10 @@ export default async () => {
20
22
  fs.copyFileSync(`node_modules/testeranto/dist/prebuild/Project.js`, `testeranto/Project.js`);
21
23
  fs.copyFileSync(`node_modules/testeranto/dist/prebuild/ReportClient.js`, `testeranto/ReportClient.js`);
22
24
  fs.copyFileSync(`node_modules/testeranto/dist/prebuild/Project.css`, `testeranto/Project.css`);
23
- fs.copyFileSync(`node_modules/testeranto/dist/prebuild/ReportClient.css`, `testeranto/ReportClient.css`);
25
+ // fs.copyFileSync(
26
+ // `node_modules/testeranto/dist/prebuild/ReportClient.css`,
27
+ // `testeranto/ReportClient.css`
28
+ // );
24
29
  fs.copyFileSync(`node_modules/testeranto/dist/prebuild/TestReport.js`, `testeranto/TestReport.js`);
25
30
  fs.copyFileSync(`node_modules/testeranto/dist/prebuild/TestReport.css`, `testeranto/TestReport.css`);
26
31
  };
@@ -1,6 +1,7 @@
1
1
  import Testeranto from "./lib/core.js";
2
2
  import { defaultTestResourceRequirement, } from "./lib/index.js";
3
3
  import { PM_Node } from "./PM/node.js";
4
+ let ipcfile;
4
5
  export class NodeTesteranto extends Testeranto {
5
6
  constructor(input, testSpecification, testImplementation, testResourceRequirement, testInterface) {
6
7
  super(input, testSpecification, testImplementation, testResourceRequirement, testInterface, () => {
@@ -9,7 +10,7 @@ export class NodeTesteranto extends Testeranto {
9
10
  }
10
11
  async receiveTestResourceConfig(partialTestResource) {
11
12
  const t = JSON.parse(partialTestResource);
12
- const pm = new PM_Node(t);
13
+ const pm = new PM_Node(t, ipcfile);
13
14
  return await this.testJobs[0].receiveTestResourceConfig(pm);
14
15
  // const { failed, artifacts, logPromise, features } =
15
16
  // await this.testJobs[0].receiveTestResourceConfig(pm);
@@ -22,15 +23,16 @@ const testeranto = async (input, testSpecification, testImplementation, testInte
22
23
  process.on("unhandledRejection", (reason, promise) => {
23
24
  console.error("Unhandled Rejection at:", promise, "reason:", reason);
24
25
  // Optionally, terminate the process or perform cleanup
26
+ // t.registerUncaughtPromise(reason, promise);
25
27
  });
26
28
  try {
27
- console.log(process.argv);
29
+ ipcfile = process.argv[3];
28
30
  const f = await t.receiveTestResourceConfig(process.argv[2]);
29
- console.error("goodbye node error", f.fails);
31
+ console.error("goodbye node with failures", f.fails);
30
32
  process.exit(f.fails);
31
33
  }
32
34
  catch (e) {
33
- console.error("goodbye node error", e);
35
+ console.error("goodbye node with caught error", e);
34
36
  process.exit(-1);
35
37
  // fs.writeFileSync(`tests.json`, JSON.stringify(t.,
36
38
  // null, 2));
@@ -0,0 +1,11 @@
1
+ import { Sidecar } from "./lib/Sidecar";
2
+ import { PM_Node_Sidecar } from "./PM/nodeSidecar";
3
+ export class NodeSidecar extends Sidecar {
4
+ constructor(t) {
5
+ super();
6
+ this.pm = new PM_Node_Sidecar(t);
7
+ this.pm.start(this.stop).then(() => {
8
+ this.start(JSON.parse(process.argv[2]));
9
+ });
10
+ }
11
+ }
@@ -0,0 +1,182 @@
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
+ import ts from "typescript";
6
+ import fs from "fs";
7
+ import path from "path";
8
+ import ansiC from "ansi-colors";
9
+ import { ESLint } from "eslint";
10
+ import tsc from "tsc-prog";
11
+ import { lintPather, promptPather, tscPather } from "../utils";
12
+ import { PM_Base } from "./base.js";
13
+ const eslint = new ESLint();
14
+ const formatter = await eslint.loadFormatter("./node_modules/testeranto/dist/prebuild/esbuildConfigs/eslint-formatter-testeranto.mjs");
15
+ export class PM_WithEslintAndTsc extends PM_Base {
16
+ constructor(configs, name, mode) {
17
+ super(configs);
18
+ this.summary = {};
19
+ this.tscCheck = async ({ entrypoint, addableFiles, platform, }) => {
20
+ console.log(ansiC.green(ansiC.inverse(`tsc < ${entrypoint}`)));
21
+ this.typeCheckIsRunning(entrypoint);
22
+ const program = tsc.createProgramFromConfig({
23
+ basePath: process.cwd(), // always required, used for relative paths
24
+ configFilePath: "tsconfig.json", // config to inherit from (optional)
25
+ compilerOptions: {
26
+ outDir: tscPather(entrypoint, platform, this.name),
27
+ // declaration: true,
28
+ // skipLibCheck: true,
29
+ noEmit: true,
30
+ },
31
+ include: addableFiles, //["src/**/*"],
32
+ // exclude: ["node_modules", "../testeranto"],
33
+ // exclude: ["**/*.test.ts", "**/*.spec.ts"],
34
+ });
35
+ const tscPath = tscPather(entrypoint, platform, this.name);
36
+ const allDiagnostics = program.getSemanticDiagnostics();
37
+ const results = [];
38
+ allDiagnostics.forEach((diagnostic) => {
39
+ if (diagnostic.file) {
40
+ const { line, character } = ts.getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start);
41
+ const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
42
+ results.push(`${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`);
43
+ }
44
+ else {
45
+ results.push(ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n"));
46
+ }
47
+ });
48
+ fs.writeFileSync(tscPath, results.join("\n"));
49
+ this.typeCheckIsNowDone(entrypoint, results.length);
50
+ };
51
+ this.eslintCheck = async (entrypoint, platform, addableFiles) => {
52
+ console.log(ansiC.green(ansiC.inverse(`eslint < ${entrypoint}`)));
53
+ this.lintIsRunning(entrypoint);
54
+ const results = (await eslint.lintFiles(addableFiles))
55
+ .filter((r) => r.messages.length)
56
+ .filter((r) => {
57
+ return r.messages[0].ruleId !== null;
58
+ })
59
+ .map((r) => {
60
+ delete r.source;
61
+ return r;
62
+ });
63
+ fs.writeFileSync(lintPather(entrypoint, platform, this.name), await formatter.format(results));
64
+ this.lintIsNowDone(entrypoint, results.length);
65
+ };
66
+ this.makePrompt = async (entryPoint, addableFiles, platform) => {
67
+ this.summary[entryPoint].prompt = "?";
68
+ const promptPath = promptPather(entryPoint, platform, this.name);
69
+ const testPaths = path.join("testeranto", "reports", this.name, entryPoint.split(".").slice(0, -1).join("."), platform, `tests.json`);
70
+ const featuresPath = path.join("testeranto", "reports", this.name, platform, entryPoint.split(".").slice(0, -1).join("."), `featurePrompt.txt`);
71
+ const logPath = path.join("testeranto", "reports", this.name, entryPoint.split(".").slice(0, -1).join("."), platform, `console_log.txt`);
72
+ const lintPath = path.join("testeranto", "reports", this.name, entryPoint.split(".").slice(0, -1).join("."), platform, `lint_errors.json`);
73
+ const typePath = path.join("testeranto", "reports", this.name, entryPoint.split(".").slice(0, -1).join("."), platform, `type_errors.txt`);
74
+ const messagePath = path.join("testeranto", "reports", this.name, entryPoint.split(".").slice(0, -1).join("."), platform, `message`);
75
+ fs.writeFileSync(promptPath, `
76
+ ${addableFiles
77
+ .map((x) => {
78
+ return `/add ${x}`;
79
+ })
80
+ .join("\n")}
81
+
82
+ /read ${testPaths}
83
+ /read ${logPath}
84
+ /read ${typePath}
85
+ /read ${lintPath}
86
+ `);
87
+ fs.writeFileSync(messagePath, `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`);
88
+ this.summary[entryPoint].prompt = `aider --model deepseek/deepseek-chat --load testeranto/${this.name}/reports/${platform}/${entryPoint
89
+ .split(".")
90
+ .slice(0, -1)
91
+ .join(".")}/prompt.txt`;
92
+ this.checkForShutdown();
93
+ };
94
+ this.typeCheckIsRunning = (src) => {
95
+ this.summary[src].typeErrors = "?";
96
+ };
97
+ this.typeCheckIsNowDone = (src, failures) => {
98
+ this.summary[src].typeErrors = failures;
99
+ this.writeBigBoard();
100
+ this.checkForShutdown();
101
+ };
102
+ this.lintIsRunning = (src) => {
103
+ this.summary[src].staticErrors = "?";
104
+ this.writeBigBoard();
105
+ };
106
+ this.lintIsNowDone = (src, failures) => {
107
+ this.summary[src].staticErrors = failures;
108
+ this.writeBigBoard();
109
+ this.checkForShutdown();
110
+ };
111
+ this.bddTestIsRunning = (src) => {
112
+ this.summary[src].runTimeError = "?";
113
+ this.writeBigBoard();
114
+ };
115
+ this.bddTestIsNowDone = (src, failures) => {
116
+ this.summary[src].runTimeError = failures;
117
+ this.writeBigBoard();
118
+ this.checkForShutdown();
119
+ };
120
+ this.writeBigBoard = () => {
121
+ fs.writeFileSync(`./testeranto/reports/${this.name}/summary.json`, JSON.stringify(this.summary, null, 2));
122
+ };
123
+ this.checkForShutdown = () => {
124
+ console.log(ansiC.inverse(`checkForShutdown`));
125
+ this.writeBigBoard();
126
+ if (this.mode === "dev")
127
+ return;
128
+ let inflight = false;
129
+ Object.keys(this.summary).forEach((k) => {
130
+ if (this.summary[k].prompt === "?") {
131
+ console.log(ansiC.blue(ansiC.inverse(`🕕 prompt ${k}`)));
132
+ inflight = true;
133
+ }
134
+ });
135
+ Object.keys(this.summary).forEach((k) => {
136
+ if (this.summary[k].runTimeError === "?") {
137
+ console.log(ansiC.blue(ansiC.inverse(`🕕 runTimeError ${k}`)));
138
+ inflight = true;
139
+ }
140
+ });
141
+ Object.keys(this.summary).forEach((k) => {
142
+ if (this.summary[k].staticErrors === "?") {
143
+ console.log(ansiC.blue(ansiC.inverse(`🕕 staticErrors ${k}`)));
144
+ inflight = true;
145
+ }
146
+ });
147
+ Object.keys(this.summary).forEach((k) => {
148
+ if (this.summary[k].typeErrors === "?") {
149
+ console.log(ansiC.blue(ansiC.inverse(`🕕 typeErrors ${k}`)));
150
+ inflight = true;
151
+ }
152
+ });
153
+ this.writeBigBoard();
154
+ if (!inflight) {
155
+ this.browser.disconnect().then(() => {
156
+ console.log(ansiC.inverse(`${this.name} has been tested. Goodbye.`));
157
+ process.exit();
158
+ });
159
+ }
160
+ };
161
+ this.name = name;
162
+ this.mode = mode;
163
+ this.configs.tests.forEach(([t, rt, tr, sidecars]) => {
164
+ this.summary[t] = {
165
+ runTimeError: "?",
166
+ typeErrors: "?",
167
+ staticErrors: "?",
168
+ prompt: "?",
169
+ failingFeatures: {},
170
+ };
171
+ sidecars.forEach(([t]) => {
172
+ this.summary[t] = {
173
+ // runTimeError: "?",
174
+ typeErrors: "?",
175
+ staticErrors: "?",
176
+ // prompt: "?",
177
+ // failingFeatures: {},
178
+ };
179
+ });
180
+ });
181
+ }
182
+ }
@@ -0,0 +1,104 @@
1
+ import { PM_Node_Sidecar } from "../nodeSidecar";
2
+ import Testeranto from "../../Node";
3
+ const specification = (Suite, Given, When, Then) => {
4
+ return [
5
+ Suite.SidecarInitialized("Sidecar message passing works correctly", {
6
+ basicSend: Given.SidecarReady(["can send and receive messages"], [When.SendTestMessage("test-message")], [Then.MessageReceived("test-message")]),
7
+ cleanup: Given.SidecarReady(["cleans up listeners after message"], [When.VerifyCleanup()], [Then.ListenersCleaned()]),
8
+ }, []),
9
+ ];
10
+ };
11
+ const implementation = {
12
+ suites: { SidecarInitialized: (x) => x },
13
+ givens: {
14
+ SidecarReady: () => {
15
+ const config = {
16
+ name: "test-sidecar",
17
+ fs: "/tmp",
18
+ ports: [3001],
19
+ browserWSEndpoint: "",
20
+ };
21
+ return new PM_Node_Sidecar(config);
22
+ },
23
+ },
24
+ whens: {
25
+ SendTestMessage: (message) => async (sidecar) => {
26
+ let callbackFn;
27
+ const mockProcess = {
28
+ on: (event, callback) => {
29
+ if (event === "message") {
30
+ callbackFn = callback;
31
+ callback(JSON.stringify({
32
+ key: "mock-key",
33
+ payload: message,
34
+ }));
35
+ }
36
+ return mockProcess;
37
+ },
38
+ addListener: () => mockProcess,
39
+ removeListener: () => mockProcess
40
+ };
41
+ process = mockProcess;
42
+ let writeCalled = false;
43
+ sidecar.client.write = (data) => {
44
+ writeCalled = true;
45
+ return true;
46
+ };
47
+ await sidecar.send("test-command", message);
48
+ return { writeCalled, callbackFn };
49
+ },
50
+ VerifyCleanup: () => async (sidecar) => {
51
+ let addListenerCalled = false;
52
+ let removeListenerCalled = false;
53
+ const mockProcess = {
54
+ addListener: () => {
55
+ addListenerCalled = true;
56
+ return mockProcess;
57
+ },
58
+ removeListener: () => {
59
+ removeListenerCalled = true;
60
+ return mockProcess;
61
+ }
62
+ };
63
+ process = mockProcess;
64
+ await sidecar.send("test-command", "test");
65
+ return { addListenerCalled, removeListenerCalled };
66
+ },
67
+ },
68
+ thens: {
69
+ MessageReceived: (expected) => (actual) => {
70
+ if (actual !== expected) {
71
+ throw new Error(`Expected "${expected}" but got "${actual}"`);
72
+ }
73
+ return actual;
74
+ },
75
+ ListenersCleaned: () => (result, { removeListenerCalled }) => {
76
+ if (!removeListenerCalled) {
77
+ throw new Error("Expected removeListener to be called");
78
+ }
79
+ return result;
80
+ },
81
+ },
82
+ checks: { SidecarState: () => "unknown" },
83
+ };
84
+ const testInterface = {
85
+ beforeEach: async (subject, initializer, testResource, initialValues, pm) => {
86
+ const sidecar = initializer();
87
+ sidecar.client = {
88
+ write: () => true,
89
+ end: () => { },
90
+ on: () => { },
91
+ };
92
+ return sidecar;
93
+ },
94
+ andWhen: async (store, whenCB, testResource, pm) => {
95
+ try {
96
+ await whenCB(store, testResource, pm);
97
+ }
98
+ catch (e) {
99
+ console.error("Error in andWhen:", e);
100
+ throw e;
101
+ }
102
+ },
103
+ };
104
+ export default Testeranto(() => new PM_Node_Sidecar({}), specification, implementation, testInterface);
@@ -0,0 +1,89 @@
1
+ import { PM_Pure_Sidecar } from "../pureSidecar";
2
+ import Testeranto from "../../Node";
3
+ const specification = (Suite, Given, When, Then) => {
4
+ return [
5
+ Suite.SidecarInitialized("Pure Sidecar message passing works correctly", {
6
+ basicSend: Given.SidecarReady(["can send and receive messages"], [When.SendTestMessage("test-message")], [Then.MessageReceived("test-message")]),
7
+ cleanup: Given.SidecarReady(["cleans up listeners after message"], [When.VerifyCleanup()], [Then.ListenersCleaned()]),
8
+ }, []),
9
+ ];
10
+ };
11
+ const implementation = {
12
+ suites: { SidecarInitialized: (x) => x },
13
+ givens: {
14
+ SidecarReady: () => {
15
+ const config = {
16
+ name: "test-pure-sidecar",
17
+ fs: "/tmp",
18
+ ports: [3001],
19
+ browserWSEndpoint: "",
20
+ };
21
+ return new PM_Pure_Sidecar(config);
22
+ },
23
+ },
24
+ whens: {
25
+ SendTestMessage: (message) => async (sidecar) => {
26
+ let callbackFn;
27
+ process.on = (event, callback) => {
28
+ if (event === "message") {
29
+ callbackFn = callback;
30
+ callback(JSON.stringify({
31
+ key: "mock-key",
32
+ payload: message,
33
+ }));
34
+ }
35
+ };
36
+ let writeCalled = false;
37
+ sidecar.client.write = (data) => {
38
+ writeCalled = true;
39
+ return true;
40
+ };
41
+ await sidecar.send("test-command", message);
42
+ return { writeCalled, callbackFn };
43
+ },
44
+ VerifyCleanup: () => async (sidecar) => {
45
+ let addListenerCalled = false;
46
+ let removeListenerCalled = false;
47
+ process.addListener = () => (addListenerCalled = true);
48
+ process.removeListener = () => (removeListenerCalled = true);
49
+ await sidecar.send("test-command", "test");
50
+ return { addListenerCalled, removeListenerCalled };
51
+ },
52
+ },
53
+ thens: {
54
+ MessageReceived: (expected) => (actual) => {
55
+ if (actual !== expected) {
56
+ throw new Error(`Expected "${expected}" but got "${actual}"`);
57
+ }
58
+ return actual;
59
+ },
60
+ ListenersCleaned: () => (result, { removeListenerCalled }) => {
61
+ if (!removeListenerCalled) {
62
+ throw new Error("Expected removeListener to be called");
63
+ }
64
+ return result;
65
+ },
66
+ },
67
+ checks: { SidecarState: () => "unknown" },
68
+ };
69
+ const testInterface = {
70
+ beforeEach: async (subject, initializer, testResource, initialValues, pm) => {
71
+ const sidecar = initializer();
72
+ sidecar.client = {
73
+ write: () => true,
74
+ end: () => { },
75
+ on: () => { },
76
+ };
77
+ return sidecar;
78
+ },
79
+ andWhen: async (store, whenCB, testResource, pm) => {
80
+ try {
81
+ await whenCB(store, testResource, pm);
82
+ }
83
+ catch (e) {
84
+ console.error("Error in andWhen:", e);
85
+ throw e;
86
+ }
87
+ },
88
+ };
89
+ export default Testeranto(() => new PM_Pure_Sidecar({}), specification, implementation, testInterface);
@@ -0,0 +1,89 @@
1
+ import { PM_Web_Sidecar } from "../webSidecar";
2
+ import Testeranto from "../../Node";
3
+ const specification = (Suite, Given, When, Then) => {
4
+ return [
5
+ Suite.SidecarInitialized("Web Sidecar message passing works correctly", {
6
+ basicSend: Given.SidecarReady(["can send and receive messages"], [When.SendTestMessage("test-message")], [Then.MessageReceived("test-message")]),
7
+ cleanup: Given.SidecarReady(["cleans up listeners after message"], [When.VerifyCleanup()], [Then.ListenersCleaned()]),
8
+ }, []),
9
+ ];
10
+ };
11
+ const implementation = {
12
+ suites: { SidecarInitialized: (x) => x },
13
+ givens: {
14
+ SidecarReady: () => {
15
+ const config = {
16
+ name: "test-web-sidecar",
17
+ fs: "/tmp",
18
+ ports: [3001],
19
+ browserWSEndpoint: "",
20
+ };
21
+ return new PM_Web_Sidecar(config);
22
+ },
23
+ },
24
+ whens: {
25
+ SendTestMessage: (message) => async (sidecar) => {
26
+ let callbackFn;
27
+ process.on = (event, callback) => {
28
+ if (event === "message") {
29
+ callbackFn = callback;
30
+ callback(JSON.stringify({
31
+ key: "mock-key",
32
+ payload: message,
33
+ }));
34
+ }
35
+ };
36
+ let writeCalled = false;
37
+ sidecar.client.write = (data) => {
38
+ writeCalled = true;
39
+ return true;
40
+ };
41
+ await sidecar.send("test-command", message);
42
+ return { writeCalled, callbackFn };
43
+ },
44
+ VerifyCleanup: () => async (sidecar) => {
45
+ let addListenerCalled = false;
46
+ let removeListenerCalled = false;
47
+ process.addListener = () => (addListenerCalled = true);
48
+ process.removeListener = () => (removeListenerCalled = true);
49
+ await sidecar.send("test-command", "test");
50
+ return { addListenerCalled, removeListenerCalled };
51
+ },
52
+ },
53
+ thens: {
54
+ MessageReceived: (expected) => (actual) => {
55
+ if (actual !== expected) {
56
+ throw new Error(`Expected "${expected}" but got "${actual}"`);
57
+ }
58
+ return actual;
59
+ },
60
+ ListenersCleaned: () => (result, { removeListenerCalled }) => {
61
+ if (!removeListenerCalled) {
62
+ throw new Error("Expected removeListener to be called");
63
+ }
64
+ return result;
65
+ },
66
+ },
67
+ checks: { SidecarState: () => "unknown" },
68
+ };
69
+ const testInterface = {
70
+ beforeEach: async (subject, initializer, testResource, initialValues, pm) => {
71
+ const sidecar = initializer();
72
+ sidecar.client = {
73
+ write: () => true,
74
+ end: () => { },
75
+ on: () => { },
76
+ };
77
+ return sidecar;
78
+ },
79
+ andWhen: async (store, whenCB, testResource, pm) => {
80
+ try {
81
+ await whenCB(store, testResource, pm);
82
+ }
83
+ catch (e) {
84
+ console.error("Error in andWhen:", e);
85
+ throw e;
86
+ }
87
+ },
88
+ };
89
+ export default Testeranto(() => new PM_Web_Sidecar({}), specification, implementation, testInterface);
@@ -1,3 +1,5 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
1
3
  import fs from "fs";
2
4
  import path from "path";
3
5
  const fileStreams3 = [];
@@ -10,7 +12,7 @@ export class PM_Base {
10
12
  this.configs = configs;
11
13
  }
12
14
  customclose() {
13
- throw new Error("Method not implemented.");
15
+ throw new Error("customclose not implemented.");
14
16
  }
15
17
  waitForSelector(p, s) {
16
18
  return new Promise((res) => {
@@ -32,8 +34,8 @@ export class PM_Base {
32
34
  });
33
35
  });
34
36
  }
35
- newPage() {
36
- return this.browser.newPage();
37
+ async newPage() {
38
+ return (await this.browser.newPage()).mainFrame()._id;
37
39
  }
38
40
  goto(p, url) {
39
41
  return new Promise((res) => {
@@ -47,9 +49,9 @@ export class PM_Base {
47
49
  $(selector, p) {
48
50
  return new Promise((res) => {
49
51
  this.doInPage(p, async (page) => {
50
- const x = page.$(selector);
51
- const y = await x;
52
- res(y !== null);
52
+ const x = await page.$(selector);
53
+ const y = await (x === null || x === void 0 ? void 0 : x.jsonValue());
54
+ res(y);
53
55
  });
54
56
  });
55
57
  }
@@ -76,7 +78,7 @@ export class PM_Base {
76
78
  await sPromise;
77
79
  return sPromise;
78
80
  }
79
- async customScreenShot(ssOpts, testName, page) {
81
+ async customScreenShot(ssOpts, testName, pageUid) {
80
82
  const p = ssOpts.path;
81
83
  const dir = path.dirname(p);
82
84
  fs.mkdirSync(dir, {
@@ -86,6 +88,7 @@ export class PM_Base {
86
88
  files[testName] = new Set();
87
89
  }
88
90
  files[testName].add(ssOpts.path);
91
+ const page = (await this.browser.pages()).find((p) => p.mainFrame()._id === pageUid);
89
92
  const sPromise = page.screenshot(Object.assign(Object.assign({}, ssOpts), { path: p }));
90
93
  if (!screenshots[testName]) {
91
94
  screenshots[testName] = [];
@@ -164,7 +167,6 @@ export class PM_Base {
164
167
  res();
165
168
  }
166
169
  else {
167
- /* @ts-ignore:next-line */
168
170
  const pipeStream = value;
169
171
  const myFile = fs.createWriteStream(fPath);
170
172
  pipeStream.pipe(myFile);
@@ -183,8 +185,8 @@ export class PM_Base {
183
185
  res(x);
184
186
  });
185
187
  }
186
- page() {
187
- throw new Error("Method not implemented.");
188
+ page(p) {
189
+ return p;
188
190
  }
189
191
  click(selector, page) {
190
192
  return page.click(selector);
@@ -199,14 +201,28 @@ export class PM_Base {
199
201
  return page.keyboard.type(value);
200
202
  });
201
203
  }
202
- getValue(value, p) {
204
+ // setValue(value: string, p: string) {
205
+ // this.doInPage(p, (page) => {
206
+ // return page.keyboard.type(value);
207
+ // });
208
+ // }
209
+ getAttribute(selector, attribute, p) {
203
210
  this.doInPage(p, (page) => {
204
- return page.keyboard.type(value);
211
+ return page.$eval(selector, (input) => input.getAttribute(attribute));
205
212
  });
206
213
  }
207
- getAttribute(selector, attribute, p) {
208
- this.doInPage(p, (page) => {
209
- return page.$eval(selector, (input) => input.getAttribute("value"));
214
+ async getInnerHtml(selector, p) {
215
+ return new Promise((res, rej) => {
216
+ this.doInPage(p, async (page) => {
217
+ const e = await page.$(selector);
218
+ if (!e) {
219
+ rej();
220
+ }
221
+ else {
222
+ const text = await (await e.getProperty("textContent")).jsonValue();
223
+ res(text);
224
+ }
225
+ });
210
226
  });
211
227
  }
212
228
  isDisabled(selector, p) {
@@ -221,7 +237,8 @@ export class PM_Base {
221
237
  }
222
238
  async doInPage(p, cb) {
223
239
  (await this.browser.pages()).forEach((page) => {
224
- if (page.mainFrame()._id === p) {
240
+ const frame = page.mainFrame();
241
+ if (frame._id === p) {
225
242
  return cb(page);
226
243
  }
227
244
  });