testeranto 0.129.0 → 0.134.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 (386) hide show
  1. package/.aider.chat.history.md +137197 -0
  2. package/.aider.input.history +334 -0
  3. package/.aider.tags.cache.v3/18/8b/7dfca822129dad10b5cacadf7728.val +0 -0
  4. package/.aider.tags.cache.v3/{ec/c0/161c249c35be853cc40cf11f9267.val → 62/f5/8af72140d93c58db2f6aa5bf3f1f.val} +0 -0
  5. package/.aider.tags.cache.v3/8d/fa/12860238755bcfab9af8a93c52ab.val +0 -0
  6. package/.aider.tags.cache.v3/{b7/e6/5be87b62aeaf2bc244ff41c1b61a.val → a7/97/6d37fce350ad2d588f36729db0cd.val} +0 -0
  7. package/.aider.tags.cache.v3/{e3/e6/3501625caf5d5eb171f0d248462e.val → ad/3c/10f2ab1397f6d544e613d2a6acaf.val} +0 -0
  8. package/.aider.tags.cache.v3/cache.db +0 -0
  9. package/.aider.tags.cache.v3/cache.db-shm +0 -0
  10. package/.aider.tags.cache.v3/cache.db-wal +0 -0
  11. package/.aider.tags.cache.v3/dd/5b/0ade824b0841c7c11e9352c5d2ca.val +0 -0
  12. package/README.md +333 -34
  13. package/bundle.js +8 -75
  14. package/dist/common/src/Init.js +6 -1
  15. package/dist/common/src/Node.js +6 -4
  16. package/dist/common/src/NodeSidecar.js +15 -0
  17. package/dist/common/src/PM/PM_WithEslintAndTsc.js +187 -0
  18. package/dist/common/src/PM/__tests__/nodeSidecar.testeranto.js +109 -0
  19. package/dist/common/src/PM/__tests__/pureSidecar.testeranto.js +94 -0
  20. package/dist/common/src/PM/__tests__/webSidecar.testeranto.js +94 -0
  21. package/dist/common/src/PM/base.js +33 -16
  22. package/dist/common/src/PM/main.js +484 -425
  23. package/dist/common/src/PM/node.js +44 -19
  24. package/dist/common/src/PM/nodeSidecar.js +65 -0
  25. package/dist/common/src/PM/pure.js +55 -47
  26. package/dist/common/src/PM/pureSidecar.js +48 -0
  27. package/dist/common/src/PM/sidecar.js +11 -0
  28. package/dist/common/src/PM/web.js +24 -6
  29. package/dist/common/src/PM/webSidecar.js +47 -0
  30. package/dist/common/src/PureSidecar.js +13 -0
  31. package/dist/common/src/SP__Polygon.test.js +10 -0
  32. package/dist/common/src/WebSidecar.js +14 -0
  33. package/dist/common/src/build.js +63 -10
  34. package/dist/common/src/defaultConfig.js +1 -0
  35. package/dist/common/src/esbuildConfigs/consoleDetectorPlugin.js +27 -0
  36. package/dist/common/src/esbuildConfigs/pure.js +15 -1
  37. package/dist/common/src/esbuildConfigs/web.js +10 -1
  38. package/dist/common/src/{SubPackages/react-dom/jsx/index.js → lib/Sidecar.js} +4 -0
  39. package/dist/common/src/lib/abstractBase.js +7 -5
  40. package/dist/common/src/lib/basebuilder.js +1 -3
  41. package/dist/common/src/lib/classBuilder.js +4 -17
  42. package/dist/common/src/lib/core.js +11 -6
  43. package/dist/common/src/lib/index.js +13 -4
  44. package/dist/common/src/lib/pmProxy.js +1 -1
  45. package/dist/common/src/mothership/index.js +16 -0
  46. package/dist/common/src/mothership/test.js +65 -0
  47. package/dist/common/src/utils/queue.js +36 -0
  48. package/dist/common/src/utils.js +34 -5
  49. package/dist/common/testeranto.config.js +77 -39
  50. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  51. package/dist/module/src/Init.js +6 -1
  52. package/dist/module/src/Node.js +6 -4
  53. package/dist/module/src/NodeSidecar.js +11 -0
  54. package/dist/module/src/PM/PM_WithEslintAndTsc.js +180 -0
  55. package/dist/module/src/PM/__tests__/nodeSidecar.testeranto.js +104 -0
  56. package/dist/module/src/PM/__tests__/pureSidecar.testeranto.js +89 -0
  57. package/dist/module/src/PM/__tests__/webSidecar.testeranto.js +89 -0
  58. package/dist/module/src/PM/base.js +33 -16
  59. package/dist/module/src/PM/main.js +485 -426
  60. package/dist/module/src/PM/node.js +44 -19
  61. package/dist/module/src/PM/nodeSidecar.js +58 -0
  62. package/dist/module/src/PM/pure.js +55 -44
  63. package/dist/module/src/PM/pureSidecar.js +41 -0
  64. package/dist/module/src/PM/sidecar.js +7 -0
  65. package/dist/module/src/PM/web.js +24 -6
  66. package/dist/module/src/PM/webSidecar.js +40 -0
  67. package/dist/module/src/Project.js +154 -75
  68. package/dist/module/src/PureSidecar.js +9 -0
  69. package/dist/module/src/ReportClient.js +132 -97
  70. package/dist/module/src/SP__Polygon.test.js +8 -0
  71. package/dist/module/src/TestReport.js +32 -14
  72. package/dist/module/src/WebSidecar.js +10 -0
  73. package/dist/module/src/build.js +63 -10
  74. package/dist/module/src/defaultConfig.js +1 -0
  75. package/dist/module/src/esbuildConfigs/consoleDetectorPlugin.js +24 -0
  76. package/dist/module/src/esbuildConfigs/pure.js +15 -1
  77. package/dist/module/src/esbuildConfigs/web.js +10 -1
  78. package/dist/module/src/lib/Sidecar.js +2 -0
  79. package/dist/module/src/lib/abstractBase.js +7 -5
  80. package/dist/module/src/lib/basebuilder.js +1 -3
  81. package/dist/module/src/lib/classBuilder.js +4 -17
  82. package/dist/module/src/lib/core.js +11 -6
  83. package/dist/module/src/lib/index.js +12 -4
  84. package/dist/module/src/lib/pmProxy.js +1 -1
  85. package/dist/module/src/mothership/index.js +11 -0
  86. package/dist/module/src/mothership/test.js +60 -0
  87. package/dist/module/src/utils/queue.js +32 -0
  88. package/dist/module/src/utils.js +34 -5
  89. package/dist/module/testeranto.config.js +77 -36
  90. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  91. package/dist/prebuild/Project.js +3288 -385
  92. package/dist/prebuild/ReportClient.js +0 -24638
  93. package/dist/prebuild/TestReport.js +14 -8
  94. package/dist/prebuild/build.mjs +159 -15
  95. package/dist/prebuild/init-docs.mjs +2 -5
  96. package/dist/prebuild/mothership/index.mjs +17 -0
  97. package/dist/prebuild/run.mjs +693 -412
  98. package/dist/types/src/NodeSidecar.d.ts +6 -0
  99. package/dist/types/src/PM/PM_WithEslintAndTsc.d.ts +23 -0
  100. package/dist/types/src/PM/__tests__/nodeSidecar.testeranto.d.ts +20 -0
  101. package/dist/types/src/PM/__tests__/pureSidecar.testeranto.d.ts +20 -0
  102. package/dist/types/src/PM/__tests__/webSidecar.testeranto.d.ts +20 -0
  103. package/dist/types/src/PM/base.d.ts +6 -5
  104. package/dist/types/src/PM/index.d.ts +5 -3
  105. package/dist/types/src/PM/main.d.ts +23 -26
  106. package/dist/types/src/PM/node.d.ts +8 -6
  107. package/dist/types/src/PM/nodeSidecar.d.ts +13 -0
  108. package/dist/types/src/PM/pure.d.ts +4 -3
  109. package/dist/types/src/PM/pureSidecar.d.ts +11 -0
  110. package/dist/types/src/PM/sidecar.d.ts +8 -0
  111. package/dist/types/src/PM/web.d.ts +18 -8
  112. package/dist/types/src/PM/webSidecar.d.ts +11 -0
  113. package/dist/types/src/PureSidecar.d.ts +8 -0
  114. package/dist/types/src/Types.d.ts +109 -43
  115. package/dist/types/src/WebSidecar.d.ts +8 -0
  116. package/dist/types/src/esbuildConfigs/consoleDetectorPlugin.d.ts +2 -0
  117. package/dist/types/src/lib/Sidecar.d.ts +5 -0
  118. package/dist/types/src/lib/abstractBase.d.ts +6 -6
  119. package/dist/types/src/lib/classBuilder.d.ts +7 -1
  120. package/dist/types/src/lib/core.d.ts +7 -1
  121. package/dist/types/src/lib/index.d.ts +10 -4
  122. package/dist/types/src/lib/types.d.ts +12 -2
  123. package/dist/types/src/mothership/index.d.ts +2 -0
  124. package/dist/types/src/mothership/test.d.ts +21 -0
  125. package/dist/types/src/utils/queue.d.ts +11 -0
  126. package/dist/types/src/utils.d.ts +4 -7
  127. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  128. package/package.json +19 -105
  129. package/src/Init.ts +6 -5
  130. package/src/Node.ts +7 -4
  131. package/src/NodeSidecar.ts +22 -0
  132. package/src/PM/PM_WithEslintAndTsc.ts +284 -0
  133. package/src/PM/__tests__/nodeSidecar.testeranto.ts +173 -0
  134. package/src/PM/__tests__/pureSidecar.testeranto.ts +157 -0
  135. package/src/PM/__tests__/webSidecar.testeranto.ts +157 -0
  136. package/src/PM/base.ts +38 -17
  137. package/src/PM/index.ts +9 -3
  138. package/src/PM/main.ts +608 -582
  139. package/src/PM/node.ts +67 -23
  140. package/src/PM/nodeSidecar.ts +73 -0
  141. package/src/PM/pure.ts +68 -58
  142. package/src/PM/pureSidecar.ts +56 -0
  143. package/src/PM/sidecar.ts +48 -0
  144. package/src/PM/web.ts +42 -11
  145. package/src/PM/webSidecar.ts +55 -0
  146. package/src/Project.tsx +312 -109
  147. package/src/Pure.ts +0 -2
  148. package/src/PureSidecar.ts +14 -0
  149. package/src/ReportClient.tsx +164 -170
  150. package/src/SP__Polygon.test.ts +13 -0
  151. package/src/TestReport.tsx +77 -6
  152. package/src/Types.ts +227 -122
  153. package/src/WebSidecar.ts +14 -0
  154. package/src/build.ts +101 -14
  155. package/src/defaultConfig.ts +1 -0
  156. package/src/esbuildConfigs/README.md +46 -0
  157. package/src/esbuildConfigs/consoleDetectorPlugin.ts +29 -0
  158. package/src/esbuildConfigs/pure.ts +22 -1
  159. package/src/esbuildConfigs/web.ts +13 -0
  160. package/src/lib/Sidecar.ts +6 -0
  161. package/src/lib/TEST_ADAPTER_RENAME.md +48 -0
  162. package/src/lib/abstractBase.ts +12 -9
  163. package/src/lib/basebuilder.ts +5 -4
  164. package/src/lib/classBuilder.ts +15 -18
  165. package/src/lib/core.ts +24 -11
  166. package/src/lib/index.ts +38 -18
  167. package/src/lib/pmProxy.ts +3 -1
  168. package/src/lib/types.ts +15 -2
  169. package/src/mothership/index.ts +15 -0
  170. package/src/mothership/test.ts +137 -0
  171. package/src/run.ts +0 -1
  172. package/src/utils/queue.ts +41 -0
  173. package/src/utils.ts +41 -15
  174. package/testeranto/bundles/node/mothership/chunk-PG6KUKNP.mjs +44 -0
  175. package/testeranto/bundles/node/mothership/chunk-V2EQEXU2.mjs +1032 -0
  176. package/testeranto/bundles/node/mothership/metafile.json +389 -0
  177. package/testeranto/bundles/node/mothership/src/PM/__tests__/nodeSidecar.testeranto.mjs +1219 -0
  178. package/testeranto/bundles/node/mothership/src/PM/__tests__/pureSidecar.testeranto.mjs +156 -0
  179. package/testeranto/bundles/node/mothership/src/PM/__tests__/sidecar.testeranto.mjs +1199 -0
  180. package/testeranto/bundles/node/mothership/src/PM/__tests__/webSidecar.testeranto.mjs +156 -0
  181. package/testeranto/bundles/node/mothership/src/mothership/test.mjs +24411 -0
  182. package/testeranto/bundles/pure/mothership/metafile.json +8 -0
  183. package/testeranto/bundles/web/mothership/metafile.json +8 -0
  184. package/testeranto/index.html +4 -4
  185. package/testeranto/reports/mothership/config.json +25 -0
  186. package/testeranto/reports/{redux → mothership}/index.html +8 -8
  187. package/testeranto/reports/mothership/src/PM/__tests__/nodeSidecar.testeranto/node/console_log.txt +0 -0
  188. package/testeranto/reports/mothership/src/PM/__tests__/nodeSidecar.testeranto/node/index.html +20 -0
  189. package/testeranto/reports/mothership/src/PM/__tests__/nodeSidecar.testeranto/node/lint_errors.json +1564 -0
  190. package/testeranto/reports/mothership/src/PM/__tests__/nodeSidecar.testeranto/node/log.txt +0 -0
  191. package/testeranto/reports/mothership/src/PM/__tests__/nodeSidecar.testeranto/node/prompt.txt +22 -0
  192. package/testeranto/reports/mothership/src/PM/__tests__/nodeSidecar.testeranto/node/type_errors.txt +35 -0
  193. package/testeranto/reports/mothership/src/PM/__tests__/pureSidecar.testeranto/node/index.html +20 -0
  194. package/testeranto/reports/mothership/src/PM/__tests__/pureSidecar.testeranto/node/lint_errors.json +80 -0
  195. package/testeranto/reports/mothership/src/PM/__tests__/pureSidecar.testeranto/node/prompt.txt +12 -0
  196. package/testeranto/reports/mothership/src/PM/__tests__/pureSidecar.testeranto/node/type_errors.txt +26 -0
  197. package/testeranto/reports/mothership/src/PM/__tests__/sidecar.testeranto/node/bdd_errors.txt +1 -0
  198. package/testeranto/reports/mothership/src/PM/__tests__/sidecar.testeranto/node/console_log.txt +0 -0
  199. package/testeranto/reports/mothership/src/PM/__tests__/sidecar.testeranto/node/index.html +20 -0
  200. package/testeranto/reports/mothership/src/PM/__tests__/sidecar.testeranto/node/lint_errors.json +1564 -0
  201. package/testeranto/reports/mothership/src/PM/__tests__/sidecar.testeranto/node/log.txt +0 -0
  202. package/testeranto/reports/mothership/src/PM/__tests__/sidecar.testeranto/node/prompt.txt +22 -0
  203. package/testeranto/reports/mothership/src/PM/__tests__/sidecar.testeranto/node/tests.json +56 -0
  204. package/testeranto/reports/mothership/src/PM/__tests__/sidecar.testeranto/node/type_errors.txt +29 -0
  205. package/testeranto/reports/mothership/src/PM/__tests__/webSidecar.testeranto/node/index.html +20 -0
  206. package/testeranto/reports/mothership/src/PM/__tests__/webSidecar.testeranto/node/lint_errors.json +80 -0
  207. package/testeranto/reports/mothership/src/PM/__tests__/webSidecar.testeranto/node/prompt.txt +12 -0
  208. package/testeranto/reports/mothership/src/PM/__tests__/webSidecar.testeranto/node/type_errors.txt +26 -0
  209. package/testeranto/reports/mothership/src/mothership/test/node/bdd_errors.txt +1 -0
  210. package/testeranto/reports/mothership/src/mothership/test/node/console_log.txt +4 -0
  211. package/testeranto/reports/mothership/src/mothership/test/node/index.html +20 -0
  212. package/testeranto/reports/mothership/src/mothership/test/node/lint_errors.json +1 -0
  213. package/testeranto/reports/mothership/src/mothership/test/node/log.txt +0 -0
  214. package/testeranto/reports/mothership/src/mothership/test/node/prompt.txt +12 -0
  215. package/testeranto/reports/mothership/src/mothership/test/node/tests.json +24 -0
  216. package/testeranto/reports/mothership/src/mothership/test/node/type_errors.txt +18 -0
  217. package/testeranto/reports/mothership/summary.json +9 -0
  218. package/testeranto.config.ts +82 -44
  219. package/tsc.log +78 -81
  220. package/dist/common/src/SubPackages/react/component/index.js +0 -20
  221. package/dist/common/src/SubPackages/react/component/node.js +0 -10
  222. package/dist/common/src/SubPackages/react/component/pure.js +0 -10
  223. package/dist/common/src/SubPackages/react/component/web.js +0 -10
  224. package/dist/common/src/SubPackages/react/jsx/index.js +0 -64
  225. package/dist/common/src/SubPackages/react/jsx/node.js +0 -10
  226. package/dist/common/src/SubPackages/react/jsx/pure.js +0 -10
  227. package/dist/common/src/SubPackages/react/jsx/web.js +0 -10
  228. package/dist/common/src/SubPackages/react-dom/component/dynamic.js +0 -61
  229. package/dist/common/src/SubPackages/react-dom/component/node.js +0 -10
  230. package/dist/common/src/SubPackages/react-dom/component/pure.js +0 -10
  231. package/dist/common/src/SubPackages/react-dom/component/static.js +0 -26
  232. package/dist/common/src/SubPackages/react-dom/component/web.js +0 -16
  233. package/dist/common/src/SubPackages/react-dom/jsx/dynamic.js +0 -31
  234. package/dist/common/src/SubPackages/react-dom/jsx/node.js +0 -10
  235. package/dist/common/src/SubPackages/react-dom/jsx/pure.js +0 -10
  236. package/dist/common/src/SubPackages/react-dom/jsx/static.js +0 -59
  237. package/dist/common/src/SubPackages/react-dom/jsx/web.js +0 -16
  238. package/dist/common/src/SubPackages/react-test-renderer/MemoExoticComponent/node.js +0 -54
  239. package/dist/common/src/SubPackages/react-test-renderer/component/index.js +0 -15
  240. package/dist/common/src/SubPackages/react-test-renderer/component/interface.js +0 -70
  241. package/dist/common/src/SubPackages/react-test-renderer/component/node.js +0 -8
  242. package/dist/common/src/SubPackages/react-test-renderer/component/pure.js +0 -8
  243. package/dist/common/src/SubPackages/react-test-renderer/component/test/implementation.js +0 -57
  244. package/dist/common/src/SubPackages/react-test-renderer/component/test/node.js +0 -10
  245. package/dist/common/src/SubPackages/react-test-renderer/component/test/pure.js +0 -10
  246. package/dist/common/src/SubPackages/react-test-renderer/component/test/web.js +0 -10
  247. package/dist/common/src/SubPackages/react-test-renderer/component/web.js +0 -8
  248. package/dist/common/src/SubPackages/react-test-renderer/fc/node.js +0 -60
  249. package/dist/common/src/SubPackages/react-test-renderer/fc/web.js +0 -60
  250. package/dist/common/src/SubPackages/react-test-renderer/jsx/index.js +0 -67
  251. package/dist/common/src/SubPackages/react-test-renderer/jsx/node.js +0 -10
  252. package/dist/common/src/SubPackages/react-test-renderer/jsx/pure.js +0 -10
  253. package/dist/common/src/SubPackages/react-test-renderer/jsx/web.js +0 -10
  254. package/dist/common/src/SubPackages/react-test-renderer/jsx-promised/index.js +0 -52
  255. package/dist/common/src/SubPackages/react-test-renderer/jsx-promised/node.js +0 -10
  256. package/dist/common/src/SubPackages/react-test-renderer/jsx-promised/web.js +0 -10
  257. package/dist/common/src/examples/react/component/index.js +0 -33
  258. package/dist/common/src/examples/react/component/test.js +0 -36
  259. package/dist/module/src/SubPackages/react/component/index.js +0 -13
  260. package/dist/module/src/SubPackages/react/component/node.js +0 -5
  261. package/dist/module/src/SubPackages/react/component/pure.js +0 -5
  262. package/dist/module/src/SubPackages/react/component/web.js +0 -5
  263. package/dist/module/src/SubPackages/react/jsx/index.js +0 -58
  264. package/dist/module/src/SubPackages/react/jsx/node.js +0 -5
  265. package/dist/module/src/SubPackages/react/jsx/pure.js +0 -5
  266. package/dist/module/src/SubPackages/react/jsx/web.js +0 -5
  267. package/dist/module/src/SubPackages/react-dom/component/dynamic.js +0 -54
  268. package/dist/module/src/SubPackages/react-dom/component/node.js +0 -5
  269. package/dist/module/src/SubPackages/react-dom/component/pure.js +0 -5
  270. package/dist/module/src/SubPackages/react-dom/component/static.js +0 -22
  271. package/dist/module/src/SubPackages/react-dom/component/web.js +0 -11
  272. package/dist/module/src/SubPackages/react-dom/jsx/dynamic.js +0 -27
  273. package/dist/module/src/SubPackages/react-dom/jsx/node.js +0 -5
  274. package/dist/module/src/SubPackages/react-dom/jsx/pure.js +0 -5
  275. package/dist/module/src/SubPackages/react-dom/jsx/static.js +0 -53
  276. package/dist/module/src/SubPackages/react-dom/jsx/web.js +0 -11
  277. package/dist/module/src/SubPackages/react-test-renderer/MemoExoticComponent/node.js +0 -16
  278. package/dist/module/src/SubPackages/react-test-renderer/component/index.js +0 -14
  279. package/dist/module/src/SubPackages/react-test-renderer/component/interface.js +0 -31
  280. package/dist/module/src/SubPackages/react-test-renderer/component/node.js +0 -3
  281. package/dist/module/src/SubPackages/react-test-renderer/component/pure.js +0 -3
  282. package/dist/module/src/SubPackages/react-test-renderer/component/test/implementation.js +0 -54
  283. package/dist/module/src/SubPackages/react-test-renderer/component/test/node.js +0 -5
  284. package/dist/module/src/SubPackages/react-test-renderer/component/test/pure.js +0 -5
  285. package/dist/module/src/SubPackages/react-test-renderer/component/test/web.js +0 -5
  286. package/dist/module/src/SubPackages/react-test-renderer/component/web.js +0 -3
  287. package/dist/module/src/SubPackages/react-test-renderer/fc/node.js +0 -22
  288. package/dist/module/src/SubPackages/react-test-renderer/fc/web.js +0 -22
  289. package/dist/module/src/SubPackages/react-test-renderer/jsx/index.js +0 -28
  290. package/dist/module/src/SubPackages/react-test-renderer/jsx/node.js +0 -5
  291. package/dist/module/src/SubPackages/react-test-renderer/jsx/pure.js +0 -5
  292. package/dist/module/src/SubPackages/react-test-renderer/jsx/web.js +0 -5
  293. package/dist/module/src/SubPackages/react-test-renderer/jsx-promised/index.js +0 -16
  294. package/dist/module/src/SubPackages/react-test-renderer/jsx-promised/node.js +0 -5
  295. package/dist/module/src/SubPackages/react-test-renderer/jsx-promised/web.js +0 -5
  296. package/dist/module/src/examples/react/component/index.js +0 -26
  297. package/dist/module/src/examples/react/component/test.js +0 -32
  298. package/dist/prebuild/ReportClient.css +0 -11342
  299. package/dist/tsconfig.tsbuildinfo +0 -1
  300. package/dist/types/src/SubPackages/react/component/index.d.ts +0 -4
  301. package/dist/types/src/SubPackages/react/component/node.d.ts +0 -4
  302. package/dist/types/src/SubPackages/react/component/pure.d.ts +0 -4
  303. package/dist/types/src/SubPackages/react/component/web.d.ts +0 -4
  304. package/dist/types/src/SubPackages/react/jsx/index.d.ts +0 -5
  305. package/dist/types/src/SubPackages/react/jsx/node.d.ts +0 -4
  306. package/dist/types/src/SubPackages/react/jsx/pure.d.ts +0 -4
  307. package/dist/types/src/SubPackages/react/jsx/web.d.ts +0 -4
  308. package/dist/types/src/SubPackages/react-dom/component/dynamic.d.ts +0 -20
  309. package/dist/types/src/SubPackages/react-dom/component/node.d.ts +0 -4
  310. package/dist/types/src/SubPackages/react-dom/component/pure.d.ts +0 -4
  311. package/dist/types/src/SubPackages/react-dom/component/static.d.ts +0 -9
  312. package/dist/types/src/SubPackages/react-dom/component/web.d.ts +0 -4
  313. package/dist/types/src/SubPackages/react-dom/jsx/dynamic.d.ts +0 -5
  314. package/dist/types/src/SubPackages/react-dom/jsx/index.d.ts +0 -6
  315. package/dist/types/src/SubPackages/react-dom/jsx/node.d.ts +0 -4
  316. package/dist/types/src/SubPackages/react-dom/jsx/pure.d.ts +0 -4
  317. package/dist/types/src/SubPackages/react-dom/jsx/static.d.ts +0 -5
  318. package/dist/types/src/SubPackages/react-dom/jsx/web.d.ts +0 -5
  319. package/dist/types/src/SubPackages/react-test-renderer/MemoExoticComponent/node.d.ts +0 -6
  320. package/dist/types/src/SubPackages/react-test-renderer/component/index.d.ts +0 -5
  321. package/dist/types/src/SubPackages/react-test-renderer/component/interface.d.ts +0 -3
  322. package/dist/types/src/SubPackages/react-test-renderer/component/node.d.ts +0 -4
  323. package/dist/types/src/SubPackages/react-test-renderer/component/pure.d.ts +0 -4
  324. package/dist/types/src/SubPackages/react-test-renderer/component/test/implementation.d.ts +0 -4
  325. package/dist/types/src/SubPackages/react-test-renderer/component/test/node.d.ts +0 -3
  326. package/dist/types/src/SubPackages/react-test-renderer/component/test/pure.d.ts +0 -4
  327. package/dist/types/src/SubPackages/react-test-renderer/component/test/web.d.ts +0 -3
  328. package/dist/types/src/SubPackages/react-test-renderer/component/web.d.ts +0 -4
  329. package/dist/types/src/SubPackages/react-test-renderer/fc/node.d.ts +0 -8
  330. package/dist/types/src/SubPackages/react-test-renderer/fc/web.d.ts +0 -9
  331. package/dist/types/src/SubPackages/react-test-renderer/jsx/index.d.ts +0 -11
  332. package/dist/types/src/SubPackages/react-test-renderer/jsx/node.d.ts +0 -4
  333. package/dist/types/src/SubPackages/react-test-renderer/jsx/pure.d.ts +0 -4
  334. package/dist/types/src/SubPackages/react-test-renderer/jsx/web.d.ts +0 -4
  335. package/dist/types/src/SubPackages/react-test-renderer/jsx-promised/index.d.ts +0 -15
  336. package/dist/types/src/SubPackages/react-test-renderer/jsx-promised/node.d.ts +0 -5
  337. package/dist/types/src/SubPackages/react-test-renderer/jsx-promised/web.d.ts +0 -5
  338. package/dist/types/src/examples/react/component/index.d.ts +0 -13
  339. package/dist/types/src/examples/react/component/test.d.ts +0 -17
  340. package/src/SubPackages/react/component/index.ts +0 -28
  341. package/src/SubPackages/react/component/node.ts +0 -17
  342. package/src/SubPackages/react/component/pure.ts +0 -17
  343. package/src/SubPackages/react/component/web.ts +0 -17
  344. package/src/SubPackages/react/jsx/index.ts +0 -75
  345. package/src/SubPackages/react/jsx/node.ts +0 -23
  346. package/src/SubPackages/react/jsx/pure.ts +0 -23
  347. package/src/SubPackages/react/jsx/web.ts +0 -24
  348. package/src/SubPackages/react-dom/component/dynamic.ts +0 -107
  349. package/src/SubPackages/react-dom/component/node.ts +0 -17
  350. package/src/SubPackages/react-dom/component/pure.ts +0 -17
  351. package/src/SubPackages/react-dom/component/static.ts +0 -41
  352. package/src/SubPackages/react-dom/component/web.ts +0 -32
  353. package/src/SubPackages/react-dom/jsx/dynamic.ts +0 -46
  354. package/src/SubPackages/react-dom/jsx/index.ts +0 -6
  355. package/src/SubPackages/react-dom/jsx/node.ts +0 -18
  356. package/src/SubPackages/react-dom/jsx/pure.ts +0 -18
  357. package/src/SubPackages/react-dom/jsx/static.ts +0 -87
  358. package/src/SubPackages/react-dom/jsx/web.ts +0 -26
  359. package/src/SubPackages/react-test-renderer/MemoExoticComponent/node.ts +0 -54
  360. package/src/SubPackages/react-test-renderer/component/index.ts +0 -32
  361. package/src/SubPackages/react-test-renderer/component/interface.ts +0 -43
  362. package/src/SubPackages/react-test-renderer/component/node.ts +0 -18
  363. package/src/SubPackages/react-test-renderer/component/pure.ts +0 -18
  364. package/src/SubPackages/react-test-renderer/component/test/implementation.ts +0 -63
  365. package/src/SubPackages/react-test-renderer/component/test/node.ts +0 -14
  366. package/src/SubPackages/react-test-renderer/component/test/pure.ts +0 -14
  367. package/src/SubPackages/react-test-renderer/component/test/web.ts +0 -14
  368. package/src/SubPackages/react-test-renderer/component/web.ts +0 -18
  369. package/src/SubPackages/react-test-renderer/fc/node.ts +0 -83
  370. package/src/SubPackages/react-test-renderer/fc/web.ts +0 -80
  371. package/src/SubPackages/react-test-renderer/jsx/index.ts +0 -61
  372. package/src/SubPackages/react-test-renderer/jsx/node.ts +0 -31
  373. package/src/SubPackages/react-test-renderer/jsx/pure.ts +0 -31
  374. package/src/SubPackages/react-test-renderer/jsx/web.ts +0 -32
  375. package/src/SubPackages/react-test-renderer/jsx-promised/index.ts +0 -73
  376. package/src/SubPackages/react-test-renderer/jsx-promised/node.ts +0 -36
  377. package/src/SubPackages/react-test-renderer/jsx-promised/web.ts +0 -36
  378. package/src/examples/react/component/index.tsx +0 -35
  379. package/src/examples/react/component/test.ts +0 -83
  380. package/testeranto/bundles/node/redux/metafile.json +0 -559
  381. package/testeranto/bundles/pure/redux/metafile.json +0 -554
  382. package/testeranto/bundles/web/redux/metafile.json +0 -504
  383. package/testeranto/bundles/web/redux/test/web.html +0 -19
  384. package/testeranto/reports/redux/config.json +0 -38
  385. package/testeranto/reports/redux/summary.json +0 -20
  386. /package/dist/{module/src/SubPackages/react-dom/jsx/index.js → types/src/SP__Polygon.test.d.ts} +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,180 @@
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, platform, entryPoint.split(".").slice(0, -1).join("."), `tests.json`);
70
+ const featuresPath = path.join("testeranto", "reports", this.name, platform, entryPoint.split(".").slice(0, -1).join("."), `featurePrompt.txt`);
71
+ fs.writeFileSync(promptPath, `
72
+ ${addableFiles
73
+ .map((x) => {
74
+ return `/add ${x}`;
75
+ })
76
+ .join("\n")}
77
+
78
+ /read ${lintPather(entryPoint, platform, this.name)}
79
+ /read ${tscPather(entryPoint, platform, this.name)}
80
+ /read ${testPaths}
81
+
82
+ /load ${featuresPath}
83
+
84
+ /code Fix the failing tests described in ${testPaths}. Correct any type signature errors described in the files ${tscPather(entryPoint, platform, this.name)}. Implement any method which throws "Function not implemented. Resolve the lint errors described in ${lintPather(entryPoint, platform, this.name)}"
85
+ `);
86
+ this.summary[entryPoint].prompt = `aider --model deepseek/deepseek-chat --load testeranto/${this.name}/reports/${platform}/${entryPoint
87
+ .split(".")
88
+ .slice(0, -1)
89
+ .join(".")}/prompt.txt`;
90
+ this.checkForShutdown();
91
+ };
92
+ this.typeCheckIsRunning = (src) => {
93
+ this.summary[src].typeErrors = "?";
94
+ };
95
+ this.typeCheckIsNowDone = (src, failures) => {
96
+ this.summary[src].typeErrors = failures;
97
+ this.writeBigBoard();
98
+ this.checkForShutdown();
99
+ };
100
+ this.lintIsRunning = (src) => {
101
+ this.summary[src].staticErrors = "?";
102
+ this.writeBigBoard();
103
+ };
104
+ this.lintIsNowDone = (src, failures) => {
105
+ this.summary[src].staticErrors = failures;
106
+ this.writeBigBoard();
107
+ this.checkForShutdown();
108
+ };
109
+ this.bddTestIsRunning = (src) => {
110
+ this.summary[src].runTimeError = "?";
111
+ this.writeBigBoard();
112
+ };
113
+ this.bddTestIsNowDone = (src, failures) => {
114
+ this.summary[src].runTimeError = failures;
115
+ this.writeBigBoard();
116
+ this.checkForShutdown();
117
+ };
118
+ this.writeBigBoard = () => {
119
+ fs.writeFileSync(`./testeranto/reports/${this.name}/summary.json`, JSON.stringify(this.summary, null, 2));
120
+ };
121
+ this.checkForShutdown = () => {
122
+ console.log(ansiC.inverse(`checkForShutdown`));
123
+ this.writeBigBoard();
124
+ if (this.mode === "dev")
125
+ return;
126
+ let inflight = false;
127
+ Object.keys(this.summary).forEach((k) => {
128
+ if (this.summary[k].prompt === "?") {
129
+ console.log(ansiC.blue(ansiC.inverse(`🕕 prompt ${k}`)));
130
+ inflight = true;
131
+ }
132
+ });
133
+ Object.keys(this.summary).forEach((k) => {
134
+ if (this.summary[k].runTimeError === "?") {
135
+ console.log(ansiC.blue(ansiC.inverse(`🕕 runTimeError ${k}`)));
136
+ inflight = true;
137
+ }
138
+ });
139
+ Object.keys(this.summary).forEach((k) => {
140
+ if (this.summary[k].staticErrors === "?") {
141
+ console.log(ansiC.blue(ansiC.inverse(`🕕 staticErrors ${k}`)));
142
+ inflight = true;
143
+ }
144
+ });
145
+ Object.keys(this.summary).forEach((k) => {
146
+ if (this.summary[k].typeErrors === "?") {
147
+ console.log(ansiC.blue(ansiC.inverse(`🕕 typeErrors ${k}`)));
148
+ inflight = true;
149
+ }
150
+ });
151
+ this.writeBigBoard();
152
+ if (!inflight) {
153
+ this.browser.disconnect().then(() => {
154
+ console.log(ansiC.inverse(`${this.name} has been tested. Goodbye.`));
155
+ process.exit();
156
+ });
157
+ }
158
+ };
159
+ this.name = name;
160
+ this.mode = mode;
161
+ this.configs.tests.forEach(([t, rt, tr, sidecars]) => {
162
+ this.summary[t] = {
163
+ runTimeError: "?",
164
+ typeErrors: "?",
165
+ staticErrors: "?",
166
+ prompt: "?",
167
+ failingFeatures: {},
168
+ };
169
+ sidecars.forEach(([t]) => {
170
+ this.summary[t] = {
171
+ // runTimeError: "?",
172
+ typeErrors: "?",
173
+ staticErrors: "?",
174
+ // prompt: "?",
175
+ // failingFeatures: {},
176
+ };
177
+ });
178
+ });
179
+ }
180
+ }
@@ -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
  });