testeranto 0.177.0 → 0.197.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 (546) hide show
  1. package/ALL_LICENSES.txt +11246 -0
  2. package/LICENSE +21 -0
  3. package/README.md +24 -4
  4. package/default-project.json +44 -0
  5. package/design-editor/DesignEditor.tsx +247 -0
  6. package/design-editor/index.ts +2 -0
  7. package/design-editor/server.ts +121 -0
  8. package/design-editor/types.ts +16 -0
  9. package/designs/default-project.json +210 -0
  10. package/dist/common/design-editor/DesignEditor.js +239 -0
  11. package/dist/common/design-editor/index.js +18 -0
  12. package/dist/common/design-editor/server.js +98 -0
  13. package/dist/common/design-editor/types.js +2 -0
  14. package/dist/common/src/App.js +53 -0
  15. package/dist/common/src/Node.js +4 -8
  16. package/dist/common/src/PM/PM_WithEslintAndTsc.js +10 -34
  17. package/dist/common/src/PM/base.js +1 -1
  18. package/dist/common/src/PM/main.js +581 -113
  19. package/dist/common/src/PM/node.js +4 -2
  20. package/dist/common/src/PM/nodeSidecar.js +1 -0
  21. package/dist/common/src/PM/pure.js +20 -57
  22. package/dist/common/src/PM/pureSidecar.js +1 -1
  23. package/dist/common/src/PM/types.js +1 -0
  24. package/dist/common/src/PM/web.js +7 -4
  25. package/dist/common/src/Pure.js +1 -1
  26. package/dist/common/src/Pure.test.js +49 -79
  27. package/dist/common/src/ReportServer.js +8 -2
  28. package/dist/common/src/build.js +31 -40
  29. package/dist/common/src/components/DesignEditorPage.js +169 -0
  30. package/dist/common/src/components/SunriseAnimation.js +291 -0
  31. package/dist/common/src/components/SunriseAnimation.test/interface.js +67 -0
  32. package/dist/common/src/components/SunriseAnimation.test/types.js +2 -0
  33. package/dist/common/src/components/TestStatusBadge.js +1 -21
  34. package/dist/common/src/components/pure/AppFrame.js +69 -0
  35. package/dist/common/src/components/pure/AppFrame.test/implementation.js +63 -0
  36. package/dist/common/src/components/pure/AppFrame.test/index.js +14 -0
  37. package/dist/common/src/components/pure/AppFrame.test/specification.js +25 -0
  38. package/dist/common/src/components/pure/AppFrame.test/types.js +3 -0
  39. package/dist/common/src/components/pure/FeaturesReporterView.js +23 -0
  40. package/dist/common/src/components/pure/FeaturesReporterView.test/implementation.js +84 -0
  41. package/dist/common/src/components/pure/FeaturesReporterView.test/index.js +14 -0
  42. package/dist/common/src/components/pure/FeaturesReporterView.test/specification.js +27 -0
  43. package/dist/common/src/components/pure/FeaturesReporterView.test/types.js +2 -0
  44. package/dist/common/src/components/pure/ModalContent.js +86 -0
  45. package/dist/common/src/components/pure/ModalContent.test/implementation.js +35 -0
  46. package/dist/common/src/components/pure/ModalContent.test/index.js +58 -0
  47. package/dist/common/src/components/pure/ModalContent.test/specification.js +19 -0
  48. package/dist/common/src/components/pure/ModalContent.test/types.js +4 -0
  49. package/dist/common/src/{NavBar.js → components/pure/NavBar.js} +9 -10
  50. package/dist/common/src/components/pure/ProcessManager.js +112 -0
  51. package/dist/common/src/components/pure/ProcessManagerView.js +237 -0
  52. package/dist/common/src/components/pure/ProjectPageView.js +53 -76
  53. package/dist/common/src/components/pure/ProjectPageView.test/implementation.js +167 -54
  54. package/dist/common/src/components/pure/ProjectPageView.test/index.js +5 -1
  55. package/dist/common/src/components/pure/ProjectPageView.test/specification.js +15 -2
  56. package/dist/common/src/components/pure/ProjectPageView.test/types.js +2 -0
  57. package/dist/common/src/components/pure/ProjectsPageView.js +72 -0
  58. package/dist/common/src/components/pure/SettingsButton.js +13 -0
  59. package/dist/common/src/components/pure/SingleProcessView.js +214 -0
  60. package/dist/common/src/components/pure/TestPageView.js +513 -0
  61. package/dist/common/src/components/pure/TestPageView.test/implementation.js +157 -0
  62. package/dist/common/src/components/pure/TestPageView.test/index.js +15 -0
  63. package/dist/common/src/components/pure/TestPageView.test/specification.js +26 -0
  64. package/dist/common/src/components/pure/TestPageView.test/types.js +4 -0
  65. package/dist/common/src/components/pure/ThemeCard.js +15 -0
  66. package/dist/common/src/components/stateful/FeaturesReporter.js +59 -0
  67. package/dist/common/src/components/stateful/FileTree.js +40 -0
  68. package/dist/common/src/components/stateful/ProcessManagerPage.js +112 -0
  69. package/dist/common/src/components/stateful/ProjectPage.js +101 -0
  70. package/dist/common/src/components/stateful/ProjectsPage.js +118 -0
  71. package/dist/common/src/components/stateful/SettingsPage.js +72 -0
  72. package/dist/common/src/components/stateful/SingleProcessPage.js +147 -0
  73. package/dist/common/src/components/stateful/TestPage.js +229 -0
  74. package/dist/common/src/components/stateful/TextEditorPage.js +154 -0
  75. package/dist/common/src/defaultConfig.js +1 -0
  76. package/dist/common/src/esbuildConfigs/inputFilesPlugin.js +3 -4
  77. package/dist/common/src/esbuildConfigs/web.js +1 -1
  78. package/dist/common/src/lib/BaseSuite.js +7 -3
  79. package/dist/common/src/lib/BaseSuite.test/mock.js +17 -41
  80. package/dist/common/src/lib/BaseSuite.test/test.js +33 -42
  81. package/dist/common/src/lib/Sidecar.js +1 -0
  82. package/dist/common/src/lib/abstractBase.js +40 -13
  83. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.adapter.js +12 -12
  84. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.implementation.js +15 -13
  85. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.mock.js +28 -17
  86. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.pure.js +2 -2
  87. package/dist/common/src/lib/basebuilder.js +29 -35
  88. package/dist/common/src/lib/classBuilder.js +5 -3
  89. package/dist/common/src/lib/core.js +3 -6
  90. package/dist/common/src/lib/core.test/MockCore.js +0 -14
  91. package/dist/common/src/lib/core.test/core.test.adapter.js +2 -9
  92. package/dist/common/src/lib/core.test/core.test.implementation.js +3 -7
  93. package/dist/common/src/lib/index.js +13 -14
  94. package/dist/common/src/lib/pmProxy.js +37 -16
  95. package/dist/common/src/lib/pmProxy.test/adapter.js +20 -4
  96. package/dist/common/src/lib/pmProxy.test/implementation.js +93 -34
  97. package/dist/common/src/lib/pmProxy.test/mockPMBase.js +9 -0
  98. package/dist/common/src/lib/pmProxy.test/specification.js +3 -0
  99. package/dist/common/src/mothership/index.js +5 -0
  100. package/dist/common/src/mothership/test.js +44 -25
  101. package/dist/common/src/types/features.js +34 -0
  102. package/dist/common/src/utils/api.js +57 -27
  103. package/dist/common/src/utils/featureUtils.js +29 -0
  104. package/dist/common/src/utils/logFiles.js +51 -0
  105. package/dist/common/src/utils/makePrompt.js +116 -0
  106. package/dist/common/src/web.html.js +2 -6
  107. package/dist/common/testeranto.config.js +54 -24
  108. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  109. package/dist/module/design-editor/DesignEditor.js +203 -0
  110. package/dist/module/design-editor/index.js +2 -0
  111. package/dist/module/design-editor/server.js +92 -0
  112. package/dist/module/design-editor/types.js +1 -0
  113. package/dist/module/src/App.js +19 -17
  114. package/dist/module/src/Node.js +4 -8
  115. package/dist/module/src/PM/PM_WithEslintAndTsc.js +11 -35
  116. package/dist/module/src/PM/base.js +1 -1
  117. package/dist/module/src/PM/main.js +577 -109
  118. package/dist/module/src/PM/node.js +4 -2
  119. package/dist/module/src/PM/nodeSidecar.js +1 -0
  120. package/dist/module/src/PM/pure.js +20 -57
  121. package/dist/module/src/PM/pureSidecar.js +1 -1
  122. package/dist/module/src/PM/types.js +1 -0
  123. package/dist/module/src/PM/web.js +7 -4
  124. package/dist/module/src/Pure.js +1 -1
  125. package/dist/module/src/Pure.test.js +49 -79
  126. package/dist/module/src/ReportServer.js +8 -2
  127. package/dist/module/src/build.js +26 -38
  128. package/dist/module/src/components/DesignEditorPage.js +132 -0
  129. package/dist/module/src/components/SunriseAnimation.test/interface.js +32 -1
  130. package/dist/module/src/components/SunriseAnimation.test/types.js +1 -0
  131. package/dist/module/src/components/TestStatusBadge.js +1 -21
  132. package/dist/module/src/components/pure/AppFrame.js +32 -0
  133. package/dist/module/src/components/pure/AppFrame.test/implementation.js +57 -0
  134. package/dist/module/src/components/pure/AppFrame.test/index.js +9 -0
  135. package/dist/module/src/components/pure/AppFrame.test/specification.js +21 -0
  136. package/dist/module/src/components/pure/AppFrame.test/types.js +2 -0
  137. package/dist/module/src/components/pure/FeaturesReporterView.js +16 -0
  138. package/dist/module/src/components/pure/FeaturesReporterView.test/implementation.js +81 -0
  139. package/dist/module/src/components/pure/FeaturesReporterView.test/index.js +9 -0
  140. package/dist/module/src/components/pure/FeaturesReporterView.test/specification.js +23 -0
  141. package/dist/module/src/components/pure/FeaturesReporterView.test/types.js +1 -0
  142. package/dist/module/src/components/pure/ModalContent.js +79 -0
  143. package/dist/module/src/components/pure/ModalContent.test/implementation.js +32 -0
  144. package/dist/module/src/components/pure/ModalContent.test/index.js +53 -0
  145. package/dist/module/src/components/pure/ModalContent.test/specification.js +15 -0
  146. package/dist/module/src/components/pure/ModalContent.test/types.js +3 -0
  147. package/dist/module/src/{NavBar.js → components/pure/NavBar.js} +10 -11
  148. package/dist/module/src/components/pure/ProcessManager.js +75 -0
  149. package/dist/module/src/components/pure/ProcessManagerView.js +200 -0
  150. package/dist/module/src/components/pure/ProjectPageView.js +54 -77
  151. package/dist/module/src/components/pure/ProjectPageView.test/implementation.js +167 -54
  152. package/dist/module/src/components/pure/ProjectPageView.test/index.js +5 -1
  153. package/dist/module/src/components/pure/ProjectPageView.test/specification.js +15 -2
  154. package/dist/module/src/components/pure/ProjectPageView.test/types.js +2 -0
  155. package/dist/module/src/components/pure/ProjectsPageView.js +21 -14
  156. package/dist/module/src/components/pure/SettingsButton.js +6 -0
  157. package/dist/module/src/components/pure/SingleProcessView.js +214 -0
  158. package/dist/module/src/components/pure/TestPageView.js +470 -142
  159. package/dist/module/src/components/pure/TestPageView.test/implementation.js +121 -0
  160. package/dist/module/src/components/pure/TestPageView.test/index.js +10 -0
  161. package/dist/module/src/components/pure/TestPageView.test/specification.js +22 -0
  162. package/dist/module/src/components/pure/TestPageView.test/types.js +3 -0
  163. package/dist/module/src/components/pure/ThemeCard.js +8 -0
  164. package/dist/module/src/components/stateful/FeaturesReporter.js +22 -0
  165. package/dist/module/src/components/stateful/FileTree.js +33 -0
  166. package/dist/module/src/components/stateful/ProcessManagerPage.js +75 -0
  167. package/dist/module/src/components/stateful/ProjectPage.js +7 -6
  168. package/dist/module/src/components/stateful/ProjectsPage.js +32 -6
  169. package/dist/module/src/components/stateful/SettingsPage.js +35 -0
  170. package/dist/module/src/components/stateful/SingleProcessPage.js +110 -0
  171. package/dist/module/src/components/stateful/TestPage.js +123 -13
  172. package/dist/module/src/components/stateful/TextEditorPage.js +117 -0
  173. package/dist/module/src/defaultConfig.js +1 -0
  174. package/dist/module/src/esbuildConfigs/inputFilesPlugin.js +3 -4
  175. package/dist/module/src/esbuildConfigs/web.js +1 -1
  176. package/dist/module/src/lib/BaseSuite.js +7 -3
  177. package/dist/module/src/lib/BaseSuite.test/mock.js +17 -41
  178. package/dist/module/src/lib/BaseSuite.test/test.js +33 -42
  179. package/dist/module/src/lib/Sidecar.js +1 -0
  180. package/dist/module/src/lib/abstractBase.js +40 -13
  181. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.adapter.js +12 -12
  182. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.implementation.js +15 -13
  183. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.mock.js +28 -17
  184. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.pure.js +1 -1
  185. package/dist/module/src/lib/basebuilder.js +29 -35
  186. package/dist/module/src/lib/classBuilder.js +5 -3
  187. package/dist/module/src/lib/core.js +3 -6
  188. package/dist/module/src/lib/core.test/MockCore.js +0 -14
  189. package/dist/module/src/lib/core.test/core.test.adapter.js +2 -9
  190. package/dist/module/src/lib/core.test/core.test.implementation.js +3 -7
  191. package/dist/module/src/lib/index.js +13 -14
  192. package/dist/module/src/lib/pmProxy.js +37 -16
  193. package/dist/module/src/lib/pmProxy.test/adapter.js +20 -4
  194. package/dist/module/src/lib/pmProxy.test/implementation.js +93 -34
  195. package/dist/module/src/lib/pmProxy.test/mockPMBase.js +9 -0
  196. package/dist/module/src/lib/pmProxy.test/specification.js +3 -0
  197. package/dist/module/src/mothership/index.js +5 -0
  198. package/dist/module/src/mothership/test.js +44 -25
  199. package/dist/module/src/types/features.js +31 -0
  200. package/dist/module/src/utils/api.js +56 -25
  201. package/dist/module/src/utils/featureUtils.js +24 -0
  202. package/dist/module/src/utils/logFiles.js +46 -0
  203. package/dist/module/src/utils/makePrompt.js +109 -0
  204. package/dist/module/src/web.html.js +2 -6
  205. package/dist/module/testeranto.config.js +54 -24
  206. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  207. package/dist/prebuild/App.css +53 -80
  208. package/dist/prebuild/App.js +15520 -4397
  209. package/dist/prebuild/ReportServer.mjs +104 -6
  210. package/dist/prebuild/build.mjs +95 -108
  211. package/dist/prebuild/mothership/index.mjs +5 -0
  212. package/dist/prebuild/run.mjs +704 -221
  213. package/dist/types/design-editor/DesignEditor.d.ts +18 -0
  214. package/dist/types/design-editor/server.d.ts +1 -0
  215. package/dist/types/src/App.d.ts +1 -0
  216. package/dist/types/src/PM/index.d.ts +1 -1
  217. package/dist/types/src/PM/main.d.ts +37 -3
  218. package/dist/types/src/PM/pure.d.ts +10 -7
  219. package/dist/types/src/PM/web.d.ts +1 -1
  220. package/dist/types/src/Pure.test.d.ts +13 -1
  221. package/dist/types/src/Types.d.ts +1 -0
  222. package/dist/types/src/components/DesignEditorPage.d.ts +1 -0
  223. package/dist/types/src/components/SunriseAnimation.d.ts +5 -0
  224. package/dist/types/src/components/SunriseAnimation.test/interface.d.ts +11 -0
  225. package/dist/types/src/components/SunriseAnimation.test/types.d.ts +39 -0
  226. package/dist/types/src/components/pure/AppFrame.d.ts +11 -0
  227. package/dist/types/src/components/pure/AppFrame.test/implementation.d.ts +3 -0
  228. package/dist/types/src/components/pure/AppFrame.test/index.d.ts +5 -0
  229. package/dist/types/src/components/pure/AppFrame.test/specification.d.ts +3 -0
  230. package/dist/types/src/components/pure/AppFrame.test/types.d.ts +33 -0
  231. package/dist/types/src/components/pure/FeaturesReporterView.d.ts +7 -0
  232. package/dist/types/src/components/pure/FeaturesReporterView.test/implementation.d.ts +3 -0
  233. package/dist/types/src/components/pure/FeaturesReporterView.test/index.d.ts +2 -0
  234. package/dist/types/src/components/pure/FeaturesReporterView.test/specification.d.ts +3 -0
  235. package/dist/types/src/components/pure/FeaturesReporterView.test/types.d.ts +54 -0
  236. package/dist/types/src/components/pure/ModalContent.d.ts +7 -0
  237. package/dist/types/src/components/pure/ModalContent.test/implementation.d.ts +3 -0
  238. package/dist/types/src/components/pure/ModalContent.test/index.d.ts +3 -0
  239. package/dist/types/src/components/pure/ModalContent.test/specification.d.ts +3 -0
  240. package/dist/types/src/components/pure/ModalContent.test/types.d.ts +45 -0
  241. package/dist/types/src/{NavBar.d.ts → components/pure/NavBar.d.ts} +4 -0
  242. package/dist/types/src/components/pure/ProcessManager.d.ts +8 -0
  243. package/dist/types/src/components/pure/ProcessManagerView.d.ts +20 -0
  244. package/dist/types/src/components/pure/ProjectPageView.d.ts +7 -7
  245. package/dist/types/src/components/pure/ProjectPageView.test/index.d.ts +1 -2
  246. package/dist/types/src/components/pure/ProjectPageView.test/types.d.ts +29 -11
  247. package/dist/types/src/components/pure/ProjectsPageView.d.ts +29 -0
  248. package/dist/types/src/components/pure/SettingsButton.d.ts +2 -0
  249. package/dist/types/src/components/pure/SingleProcessView.d.ts +0 -0
  250. package/dist/types/src/components/pure/TestPageView.d.ts +15 -0
  251. package/dist/types/src/components/pure/TestPageView.test/implementation.d.ts +12 -0
  252. package/dist/types/src/components/pure/TestPageView.test/index.d.ts +3 -0
  253. package/dist/types/src/components/pure/TestPageView.test/specification.d.ts +11 -0
  254. package/dist/types/src/components/pure/TestPageView.test/types.d.ts +65 -0
  255. package/dist/types/src/components/pure/ThemeCard.d.ts +9 -0
  256. package/dist/types/src/components/stateful/FeaturesReporter.d.ts +2 -0
  257. package/dist/types/src/components/stateful/FileTree.d.ts +8 -0
  258. package/dist/types/src/components/stateful/ProcessManagerPage.d.ts +2 -0
  259. package/dist/types/src/components/stateful/ProjectPage.d.ts +1 -0
  260. package/dist/types/src/components/stateful/ProjectsPage.d.ts +1 -0
  261. package/dist/types/src/components/stateful/SettingsPage.d.ts +2 -0
  262. package/dist/types/src/components/stateful/SingleProcessPage.d.ts +2 -0
  263. package/dist/types/src/components/stateful/TestPage.d.ts +1 -0
  264. package/dist/types/src/components/stateful/TextEditorPage.d.ts +1 -0
  265. package/dist/types/src/lib/BaseSuite.test/mock.d.ts +3 -3
  266. package/dist/types/src/lib/abstractBase.d.ts +1 -1
  267. package/dist/types/src/lib/abstractBase.test/MockGiven.d.ts +1 -1
  268. package/dist/types/src/lib/baseBuilder.test/baseBuilder.test.pure.d.ts +1 -1
  269. package/dist/types/src/lib/basebuilder.d.ts +1 -1
  270. package/dist/types/src/lib/index.d.ts +8 -8
  271. package/dist/types/src/lib/pmProxy.test/mockPMBase.d.ts +1 -1
  272. package/dist/types/src/types/features.d.ts +7 -0
  273. package/dist/types/src/utils/api.d.ts +1 -5
  274. package/dist/types/src/utils/featureUtils.d.ts +6 -0
  275. package/dist/types/src/utils/logFiles.d.ts +71 -0
  276. package/dist/types/src/utils/makePrompt.d.ts +2 -0
  277. package/dist/types/src/web.html.d.ts +1 -1
  278. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  279. package/docs/index.md +17 -0
  280. package/docs/test-page-components.md +91 -0
  281. package/docs/testing.prompt.txt +1 -3
  282. package/index.d.ts +38 -13
  283. package/marketing.md +166 -0
  284. package/package.json +38 -11
  285. package/src/App.tsx +22 -25
  286. package/src/Node.ts +6 -9
  287. package/src/PM/PM_WithEslintAndTsc.ts +16 -97
  288. package/src/PM/__tests__/nodeSidecar.testeranto.ts +2 -0
  289. package/src/PM/base.ts +1 -3
  290. package/src/PM/index.ts +1 -1
  291. package/src/PM/main.ts +673 -128
  292. package/src/PM/node.ts +5 -2
  293. package/src/PM/nodeSidecar.ts +1 -0
  294. package/src/PM/pure.ts +28 -72
  295. package/src/PM/pureSidecar.ts +1 -1
  296. package/src/PM/types.ts +0 -0
  297. package/src/PM/web.ts +9 -4
  298. package/src/Pure.test.ts +66 -101
  299. package/src/Pure.ts +1 -1
  300. package/src/README.md +85 -0
  301. package/src/ReportServer.ts +10 -3
  302. package/src/Types.ts +1 -0
  303. package/src/app.scss +169 -0
  304. package/src/build.ts +33 -55
  305. package/src/components/DesignEditorPage.tsx +169 -0
  306. package/src/components/{pure/ProjectPageView.test/index.ts → SunriseAnimation.test/index.tsx} +7 -4
  307. package/src/components/SunriseAnimation.test/interface.ts +49 -0
  308. package/src/components/SunriseAnimation.test/types.ts +53 -0
  309. package/src/components/TestStatusBadge.tsx +2 -23
  310. package/src/components/pure/AppFrame.test/implementation.tsx +72 -0
  311. package/src/components/pure/AppFrame.test/index.tsx +22 -0
  312. package/src/components/pure/AppFrame.test/specification.ts +35 -0
  313. package/src/components/pure/AppFrame.test/types.ts +65 -0
  314. package/src/components/pure/AppFrame.tsx +134 -0
  315. package/src/components/pure/FeaturesReporterView.test/implementation.tsx +106 -0
  316. package/src/components/pure/FeaturesReporterView.test/index.tsx +18 -0
  317. package/src/components/pure/FeaturesReporterView.test/specification.ts +39 -0
  318. package/src/components/pure/FeaturesReporterView.test/types.ts +77 -0
  319. package/src/components/pure/FeaturesReporterView.tsx +37 -0
  320. package/src/components/pure/ModalContent.test/implementation.tsx +45 -0
  321. package/src/components/pure/ModalContent.test/index.tsx +67 -0
  322. package/src/components/pure/ModalContent.test/specification.ts +27 -0
  323. package/src/components/pure/ModalContent.test/types.ts +72 -0
  324. package/src/components/pure/ModalContent.tsx +182 -0
  325. package/src/{NavBar.tsx → components/pure/NavBar.tsx} +31 -15
  326. package/src/components/pure/ProcessManager.tsx +117 -0
  327. package/src/components/pure/ProcessManagerView.tsx +414 -0
  328. package/src/components/pure/ProjectPageView.test/implementation.tsx +186 -57
  329. package/src/components/pure/ProjectPageView.test/index.tsx +18 -0
  330. package/src/components/pure/ProjectPageView.test/specification.ts +15 -2
  331. package/src/components/pure/ProjectPageView.test/types.ts +57 -13
  332. package/src/components/pure/ProjectPageView.tsx +155 -121
  333. package/src/components/pure/ProjectsPageView.tsx +73 -32
  334. package/src/components/pure/SettingsButton.md +1 -0
  335. package/src/components/pure/SettingsButton.tsx +11 -0
  336. package/src/components/pure/SingleProcessView.tsx +235 -0
  337. package/src/components/pure/TestPageView.test/implementation.ts +162 -0
  338. package/src/components/pure/TestPageView.test/index.tsx +20 -0
  339. package/src/components/pure/TestPageView.test/specification.ts +58 -0
  340. package/src/components/pure/TestPageView.test/types.ts +92 -0
  341. package/src/components/pure/TestPageView.tsx +1009 -299
  342. package/src/components/pure/ThemeCard.tsx +34 -0
  343. package/src/components/stateful/FeaturesReporter.tsx +24 -0
  344. package/src/components/stateful/FileTree.tsx +66 -0
  345. package/src/components/stateful/ProcessManagerPage.tsx +108 -0
  346. package/src/components/stateful/ProjectPage.tsx +10 -8
  347. package/src/components/stateful/ProjectsPage.tsx +36 -7
  348. package/src/components/stateful/SettingsPage.tsx +82 -0
  349. package/src/components/stateful/SingleProcessPage.tsx +155 -0
  350. package/src/components/stateful/TestPage.tsx +147 -30
  351. package/src/components/stateful/TextEditorPage.tsx +170 -0
  352. package/src/defaultConfig.ts +1 -0
  353. package/src/esbuildConfigs/inputFilesPlugin.ts +3 -4
  354. package/src/esbuildConfigs/web.ts +2 -1
  355. package/src/lib/BaseSuite.test/mock.ts +21 -68
  356. package/src/lib/BaseSuite.test/test.ts +39 -65
  357. package/src/lib/BaseSuite.ts +9 -3
  358. package/src/lib/Sidecar.ts +2 -0
  359. package/src/lib/abstractBase.test/MockGiven.ts +1 -1
  360. package/src/lib/abstractBase.ts +47 -20
  361. package/src/lib/baseBuilder.test/baseBuilder.test.adapter.ts +14 -13
  362. package/src/lib/baseBuilder.test/baseBuilder.test.implementation.ts +17 -14
  363. package/src/lib/baseBuilder.test/baseBuilder.test.mock.ts +27 -17
  364. package/src/lib/baseBuilder.test/baseBuilder.test.pure.ts +1 -1
  365. package/src/lib/basebuilder.ts +48 -54
  366. package/src/lib/classBuilder.ts +11 -10
  367. package/src/lib/core.test/MockCore.ts +0 -23
  368. package/src/lib/core.test/core.test.adapter.ts +6 -12
  369. package/src/lib/core.test/core.test.implementation.ts +7 -10
  370. package/src/lib/core.ts +5 -20
  371. package/src/lib/index.ts +28 -27
  372. package/src/lib/pmProxy.test/adapter.ts +18 -4
  373. package/src/lib/pmProxy.test/implementation.ts +130 -46
  374. package/src/lib/pmProxy.test/mockPMBase.ts +12 -1
  375. package/src/lib/pmProxy.test/specification.ts +11 -0
  376. package/src/lib/pmProxy.ts +42 -17
  377. package/src/lib/types.ts +2 -0
  378. package/src/mothership/index.ts +6 -0
  379. package/src/mothership/test.ts +53 -26
  380. package/src/style.md +2 -0
  381. package/src/style.scss +3 -486
  382. package/src/templates/frontpage.html +331 -0
  383. package/src/templates/frontpage.md +79 -0
  384. package/src/themes.scss +48 -16
  385. package/src/types/features.ts +38 -0
  386. package/src/utils/api.ts +66 -33
  387. package/src/utils/featureUtils.tsx +42 -0
  388. package/src/utils/logFiles.ts +60 -0
  389. package/src/utils/makePrompt.ts +149 -0
  390. package/src/web.html.ts +6 -6
  391. package/stargazers.txt +15 -0
  392. package/stargzers.js +68 -0
  393. package/testeranto/App.css +53 -80
  394. package/testeranto/App.js +15520 -4397
  395. package/testeranto/bundles/node/core/chunk-4CSH4UJE.mjs +872 -0
  396. package/testeranto/bundles/node/core/chunk-4JTDLQVA.mjs +253 -0
  397. package/testeranto/bundles/node/core/chunk-C3APFDUV.mjs +70 -0
  398. package/testeranto/bundles/node/core/src/lib/BaseSuite.test/node.test.mjs +295 -0
  399. package/testeranto/bundles/node/core/src/lib/baseBuilder.test/baseBuilder.test.node.mjs +243 -0
  400. package/testeranto/bundles/node/core/src/lib/classBuilder.test/classBuilder.test.mjs +411 -0
  401. package/testeranto/bundles/node/core/src/lib/core.test/core.test.mjs +494 -0
  402. package/testeranto/bundles/node/core/src/lib/pmProxy.test/index.mjs +4755 -0
  403. package/testeranto/bundles/pure/core/chunk-62UVCSQC.mjs +1022 -0
  404. package/testeranto/bundles/pure/core/src/Pure.test.mjs +410 -0
  405. package/testeranto/bundles/pure/core/src/lib/BaseSuite.test/pure.test.mjs +352 -0
  406. package/testeranto/bundles/pure/core/src/lib/baseBuilder.test/baseBuilder.test.pure.mjs +241 -0
  407. package/testeranto/bundles/web/core/src/components/pure/FeaturesReporterView.test/index.html +15 -0
  408. package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.html +1 -5
  409. package/testeranto/bundles/web/core/src/components/pure/TestPageView.test/index.html +15 -0
  410. package/testeranto/bundles/web/core/src/lib/BaseSuite.test/web.test.html +15 -0
  411. package/testeranto/bundles/web/core/src/lib/baseBuilder.test/baseBuilder.test.web.html +15 -0
  412. package/testeranto/metafiles/node/core.json +2906 -0
  413. package/testeranto/metafiles/pure/core.json +860 -0
  414. package/testeranto/metafiles/web/core.json +546 -0
  415. package/testeranto/reports/core/config.json +103 -2
  416. package/testeranto/reports/core/src/Pure.test/pure/exit.log +0 -0
  417. package/testeranto/reports/core/src/Pure.test/pure/lint_errors.txt +0 -0
  418. package/testeranto/reports/core/src/Pure.test/pure/message.txt +17 -0
  419. package/testeranto/reports/core/src/Pure.test/pure/prompt.txt +14 -0
  420. package/testeranto/reports/core/src/Pure.test/pure/type_errors.txt +71 -0
  421. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/debug.log +0 -0
  422. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/error.log +3 -0
  423. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/exit.log +1 -0
  424. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/info.log +0 -0
  425. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/warn.log +0 -0
  426. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/debug.log +0 -0
  427. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/error.log +3 -0
  428. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/exit.log +1 -0
  429. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/info.log +0 -0
  430. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/warn.log +0 -0
  431. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/debug.log +0 -0
  432. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/error.log +3 -0
  433. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/exit.log +1 -0
  434. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/info.log +0 -0
  435. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/warn.log +0 -0
  436. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/exit.log +1 -0
  437. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/lint_errors.txt +0 -0
  438. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/message.txt +17 -0
  439. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/prompt.txt +14 -0
  440. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/stderr.log +0 -0
  441. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/stdout.log +0 -0
  442. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/tests.json +31 -0
  443. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/type_errors.txt +61 -0
  444. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/exit.log +0 -0
  445. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/lint_errors.txt +0 -0
  446. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/message.txt +17 -0
  447. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/prompt.txt +15 -0
  448. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/type_errors.txt +61 -0
  449. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/debug.log +0 -0
  450. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/error.log +3 -0
  451. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/exit.log +1 -0
  452. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/info.log +0 -0
  453. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/warn.log +0 -0
  454. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/exit.log +1 -0
  455. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/lint_errors.txt +10 -0
  456. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/message.txt +17 -0
  457. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/prompt.txt +17 -0
  458. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/stderr.log +0 -0
  459. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/stdout.log +6 -0
  460. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/suite-0/given-testInitialization/then-0/butThen/hello.txt +1 -0
  461. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/suite-0/given-testInitialization/then-1/butThen/artifact_test.txt +1 -0
  462. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/tests.json +71 -0
  463. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/type_errors.txt +42 -0
  464. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/exit.log +0 -0
  465. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/lint_errors.txt +10 -0
  466. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/message.txt +17 -0
  467. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/prompt.txt +17 -0
  468. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/type_errors.txt +42 -0
  469. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/debug.log +0 -0
  470. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/error.log +3 -0
  471. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/exit.log +1 -0
  472. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/info.log +0 -0
  473. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/warn.log +0 -0
  474. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/exit.log +1 -0
  475. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/lint_errors.txt +0 -0
  476. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/message.txt +17 -0
  477. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/prompt.txt +17 -0
  478. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/stderr.log +0 -0
  479. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/stdout.log +619 -0
  480. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/tests.json +165 -0
  481. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/type_errors.txt +88 -0
  482. package/testeranto/reports/core/src/lib/core.test/core.test/node/exit.log +1 -0
  483. package/testeranto/reports/core/src/lib/core.test/core.test/node/lint_errors.txt +21 -0
  484. package/testeranto/reports/core/src/lib/core.test/core.test/node/message.txt +17 -0
  485. package/testeranto/reports/core/src/lib/core.test/core.test/node/prompt.txt +19 -0
  486. package/testeranto/reports/core/src/lib/core.test/core.test/node/stderr.log +0 -0
  487. package/testeranto/reports/core/src/lib/core.test/core.test/node/stdout.log +0 -0
  488. package/testeranto/reports/core/src/lib/core.test/core.test/node/type_errors.txt +45 -0
  489. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/exit.log +1 -0
  490. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/lint_errors.txt +15 -0
  491. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/message.txt +17 -0
  492. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/prompt.txt +17 -0
  493. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stderr.log +88 -0
  494. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stdout.log +10 -0
  495. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/tests.json +152 -0
  496. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/type_errors.txt +52 -0
  497. package/testeranto/reports/core/summary.json +74 -5
  498. package/testeranto/reportsweb_build_errors +546 -0
  499. package/testeranto.config.ts +58 -25
  500. package/tsc.log +378 -211
  501. package/tsconfig.common.json +4 -2
  502. package/tsconfig.json +9 -6
  503. package/tsconfig.module.json +3 -2
  504. package/tsconfig.types.json +3 -1
  505. package/dist/common/src/components/pure/ProjectPageView.test/adapter.js +0 -20
  506. package/dist/common/src/lib/dailyAnimation.js +0 -130
  507. package/dist/module/src/Footer.js +0 -5
  508. package/dist/module/src/ProjectPage.js +0 -319
  509. package/dist/module/src/ProjectsPage.js +0 -1
  510. package/dist/module/src/SettingsButton.js +0 -157
  511. package/dist/module/src/TestPage.js +0 -271
  512. package/dist/module/src/TestReport.js +0 -368
  513. package/dist/module/src/components/pure/ProjectPageView.test/adapter.js +0 -17
  514. package/dist/module/src/lib/dailyAnimation.js +0 -130
  515. package/dist/types/src/components/pure/ProjectPageView.test/adapter.d.ts +0 -3
  516. package/dist/types/testeranto.config.d.ts +0 -3
  517. package/docs/testing.ai.txt +0 -106
  518. package/docs.html +0 -572
  519. package/example.css +0 -351
  520. package/index.html +0 -284
  521. package/scripts/compile-docs.js +0 -140
  522. package/src/App.scss +0 -132
  523. package/src/Footer.tsx +0 -8
  524. package/src/Project.scss +0 -1
  525. package/src/ProjectPage.tsx +0 -459
  526. package/src/ProjectsPage.tsx +0 -1
  527. package/src/ReportApp.scss +0 -1
  528. package/src/SettingsButton.tsx +0 -268
  529. package/src/TestPage.tsx +0 -476
  530. package/src/TestReport.scss +0 -24
  531. package/src/TestReport.tsx +0 -411
  532. package/src/components/pure/ProjectPageView.test/adapter.ts +0 -21
  533. package/src/fonts.scss +0 -55
  534. package/src/lib/dailyAnimation.ts +0 -147
  535. package/style.css +0 -12156
  536. package/testeranto/bundles/node/core/metafile.json +0 -8
  537. package/testeranto/bundles/pure/core/metafile.json +0 -8
  538. package/testeranto/bundles/web/core/metafile.json +0 -15086
  539. package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.mjs +0 -39991
  540. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/lint_errors.txt +0 -18
  541. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/logs.txt +0 -59
  542. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/message.txt +0 -2
  543. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/prompt.txt +0 -27
  544. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/suite-0/given-basicRender/then-0/butThen/happyPath.png +0 -0
  545. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/type_errors.txt +0 -50
  546. /package/dist/types/src/{lib/dailyAnimation.d.ts → PM/types.d.ts} +0 -0
@@ -110,8 +110,10 @@ export class PM_Node extends PM {
110
110
  }
111
111
  async writeFileSync(x) {
112
112
  const z = arguments["0"];
113
- const filepath = z[0];
114
- const contents = z[1];
113
+ // const filepath = z[0];
114
+ // const contents = z[1];
115
+ const filepath = arguments[0];
116
+ const contents = arguments[1];
115
117
  return await this.send("writeFileSync", this.testResourceConfiguration.fs + "/" + filepath, contents, this.testResourceConfiguration.name);
116
118
  }
117
119
  async createWriteStream(filepath) {
@@ -37,6 +37,7 @@ export class PM_Node_Sidecar extends PM_sidecar {
37
37
  }
38
38
  testArtiFactoryfileWriter(tLog, callback) {
39
39
  return (fPath, value) => {
40
+ tLog(`Pure runtime skipping file write to ${fPath}`);
40
41
  callback(Promise.resolve());
41
42
  };
42
43
  }
@@ -4,24 +4,29 @@ import { PM } from ".";
4
4
  const fPaths = [];
5
5
  export class PM_Pure extends PM {
6
6
  getInnerHtml(selector, page) {
7
- throw new Error("pure.ts getInnHtml not implemented");
8
- return Promise.resolve("");
7
+ throw new Error("pure.ts getInnerHtml not implemented");
9
8
  }
10
9
  stopSideCar(uid) {
11
- throw new Error("pure.ts getInnHtml not implemented");
12
- return Promise.resolve(true);
10
+ throw new Error("pure.ts stopSideCar not implemented");
13
11
  }
14
12
  constructor(t) {
15
13
  super();
16
14
  this.server = {};
17
15
  this.testResourceConfiguration = t;
18
16
  }
17
+ trackCall(method, args) {
18
+ // Track calls if needed
19
+ }
19
20
  start() {
20
21
  return new Promise((r) => r());
21
22
  }
22
23
  stop() {
23
24
  return new Promise((r) => r());
24
25
  }
26
+ async createWriteStream(filepath, testName) {
27
+ throw new Error("pure.ts createWriteStream not implemented");
28
+ return "";
29
+ }
25
30
  launchSideCar(n) {
26
31
  return globalThis["launchSideCar"](n, this.testResourceConfiguration.name);
27
32
  }
@@ -73,24 +78,20 @@ export class PM_Pure extends PM {
73
78
  customScreenShot(opts, page) {
74
79
  return globalThis["customScreenShot"](Object.assign(Object.assign({}, opts), { path: this.testResourceConfiguration.fs + "/" + opts.path }), page, this.testResourceConfiguration.name);
75
80
  }
81
+ // TODO: fix these
76
82
  existsSync(destFolder) {
77
- return globalThis["existsSync"](this.testResourceConfiguration.fs + "/" + destFolder);
83
+ return Promise.resolve(true);
78
84
  }
79
85
  mkdirSync() {
80
- return globalThis["mkdirSync"](this.testResourceConfiguration.fs + "/");
86
+ return true;
81
87
  }
82
88
  write(uid, contents) {
83
- return globalThis["write"](uid, contents);
84
- }
85
- writeFileSync(x) {
86
- const z = arguments["0"];
87
- const filepath = z[0];
88
- const contents = z[1];
89
- return globalThis["writeFileSync"](this.testResourceConfiguration.fs + "/" + filepath, contents, this.testResourceConfiguration.name);
89
+ return Promise.resolve(true);
90
90
  }
91
- createWriteStream(filepath) {
92
- return globalThis["createWriteStream"](this.testResourceConfiguration.fs + "/" + filepath, this.testResourceConfiguration.name);
91
+ writeFileSync() {
92
+ return Promise.resolve(true);
93
93
  }
94
+ /////////////////////////////////////////////////////
94
95
  end(uid) {
95
96
  return globalThis["end"](uid);
96
97
  }
@@ -98,47 +99,9 @@ export class PM_Pure extends PM {
98
99
  globalThis["customclose"](this.testResourceConfiguration.fs, this.testResourceConfiguration.name);
99
100
  }
100
101
  testArtiFactoryfileWriter(tLog, callback) {
101
- // return (fPath, value: string | Buffer | PassThrough) => {
102
- // callback(
103
- // new Promise<void>((res) => {
104
- // tLog("testArtiFactory =>", fPath);
105
- // const cleanPath = path.resolve(fPath);
106
- // fPaths.push(cleanPath.replace(process.cwd(), ``));
107
- // const targetDir = cleanPath.split("/").slice(0, -1).join("/");
108
- // fs.mkdir(targetDir, { recursive: true }, async (error) => {
109
- // if (error) {
110
- // console.error(`❗️testArtiFactory failed`, targetDir, error);
111
- // }
112
- // fs.writeFileSync(
113
- // path.resolve(
114
- // targetDir.split("/").slice(0, -1).join("/"),
115
- // "manifest"
116
- // ),
117
- // fPaths.join(`\n`),
118
- // {
119
- // encoding: "utf-8",
120
- // }
121
- // );
122
- // if (Buffer.isBuffer(value)) {
123
- // fs.writeFileSync(fPath, value, "binary");
124
- // res();
125
- // } else if (`string` === typeof value) {
126
- // fs.writeFileSync(fPath, value.toString(), {
127
- // encoding: "utf-8",
128
- // });
129
- // res();
130
- // } else {
131
- // const pipeStream: PassThrough = value;
132
- // const myFile = fs.createWriteStream(fPath);
133
- // pipeStream.pipe(myFile);
134
- // pipeStream.on("close", () => {
135
- // myFile.close();
136
- // res();
137
- // });
138
- // }
139
- // });
140
- // })
141
- // );
142
- // };
102
+ return (fPath, value) => {
103
+ this.trackCall("testArtiFactoryfileWriter", { fPath, value });
104
+ callback(Promise.resolve());
105
+ };
143
106
  }
144
107
  }
@@ -14,7 +14,7 @@ export class PM_Pure_Sidecar extends PM_sidecar {
14
14
  process.on("message", (message) => {
15
15
  if (message.path) {
16
16
  this.client = net.createConnection(message.path, () => {
17
- // super.start()
17
+ // No stdout/stderr logging for pure sidecars
18
18
  res();
19
19
  });
20
20
  }
@@ -0,0 +1 @@
1
+ "use strict";
@@ -25,7 +25,7 @@ export class PM_Web extends PM {
25
25
  waitForSelector(p, s) {
26
26
  return window["waitForSelector"](p, s);
27
27
  }
28
- screencast(o, p) {
28
+ screencast(opts, page) {
29
29
  return window["screencast"](Object.assign(Object.assign({}, opts), { path: this.testResourceConfiguration.fs + "/" + opts.path }), page.mainFrame()._id, this.testResourceConfiguration.name);
30
30
  }
31
31
  screencastStop(recorder) {
@@ -81,9 +81,12 @@ export class PM_Web extends PM {
81
81
  return window["write"](uid, contents);
82
82
  }
83
83
  writeFileSync(x) {
84
- const z = arguments["0"];
85
- const filepath = z[0];
86
- const contents = z[1];
84
+ // eslint-disable-next-line prefer-rest-params
85
+ // const z = arguments["0"];
86
+ // const filepath = z[0];
87
+ // const contents = z[1];
88
+ const filepath = arguments[0];
89
+ const contents = arguments[1];
87
90
  return window["writeFileSync"](this.testResourceConfiguration.fs + "/" + filepath, contents, this.testResourceConfiguration.name);
88
91
  }
89
92
  createWriteStream(filepath) {
@@ -25,7 +25,7 @@ export class PureTesteranto extends Testeranto {
25
25
  // };
26
26
  // }
27
27
  try {
28
- const result = await this.testJobs[0].receiveTestResourceConfig(pm);
28
+ const result = this.testJobs[0].receiveTestResourceConfig(pm);
29
29
  return result;
30
30
  }
31
31
  catch (e) {
@@ -6,26 +6,34 @@ const implementation = {
6
6
  Default: "PureTesteranto Test Suite",
7
7
  },
8
8
  givens: {
9
- Default: () => ({
10
- pm: new MockPMBase(),
11
- config: {},
12
- proxies: {
13
- butThenProxy: (pm, path) => (Object.assign(Object.assign({}, pm), { writeFileSync: (p, c) => pm.writeFileSync(`${path}/butThen/${p}`, c) })),
14
- andWhenProxy: (pm, path) => (Object.assign(Object.assign({}, pm), { writeFileSync: (p, c) => pm.writeFileSync(`${path}/andWhen/${p}`, c) })),
15
- beforeEachProxy: (pm, suite) => (Object.assign(Object.assign({}, pm), { writeFileSync: (p, c) => pm.writeFileSync(`suite-${suite}/beforeEach/${p}`, c) })),
16
- },
17
- }),
9
+ Default: () => {
10
+ const pm = new MockPMBase();
11
+ return {
12
+ pm,
13
+ config: {},
14
+ proxies: {
15
+ butThenProxy: (pm, path) => (Object.assign(Object.assign({}, pm), { writeFileSync: (p, c) => {
16
+ return pm.writeFileSync(`${path}/butThen/${p}`, c);
17
+ } })),
18
+ andWhenProxy: (pm, path) => (Object.assign(Object.assign({}, pm), { writeFileSync: (p, c) => {
19
+ return pm.writeFileSync(`${path}/andWhen/${p}`, c);
20
+ } })),
21
+ beforeEachProxy: (pm, suite) => (Object.assign(Object.assign({}, pm), { writeFileSync: (p, c) => {
22
+ return pm.writeFileSync(`suite-${suite}/beforeEach/${p}`, c);
23
+ } })),
24
+ },
25
+ };
26
+ },
18
27
  },
19
28
  whens: {
20
- applyProxy: (proxyType) => (store) => {
21
- console.debug(`[DEBUG] Applying proxy type: ${proxyType}`);
29
+ applyProxy: (proxyType) => async (store, tr, utils) => {
22
30
  switch (proxyType) {
23
31
  case "invalidConfig":
24
32
  throw new Error("Invalid configuration");
25
33
  case "missingProxy":
26
34
  return Object.assign(Object.assign({}, store), { pm: {} }); // Break proxy chain
27
35
  case "largePayload":
28
- return Object.assign(Object.assign({}, store), { largePayload: true, pm: Object.assign(Object.assign({}, store.pm), { writeFileSync: (p, c) => {
36
+ return Object.assign(Object.assign({}, store), { largePayload: true, pm: Object.assign(Object.assign({}, store.pm), { writeFileSync: async (p, c) => {
29
37
  if (c.length > 1e6) {
30
38
  return true;
31
39
  }
@@ -37,97 +45,54 @@ const implementation = {
37
45
  return store;
38
46
  }
39
47
  },
40
- addArtifact: (artifact) => (store) => {
41
- console.debug("[DEBUG] Adding artifact");
48
+ addArtifact: (artifact) => async (store) => {
42
49
  return Object.assign(Object.assign({}, store), { artifacts: [...(store.artifacts || []), artifact] });
43
50
  },
44
- setTestJobs: (jobs) => (store) => {
45
- console.debug("[DEBUG] Setting test jobs");
51
+ setTestJobs: (jobs) => async (store) => {
46
52
  return Object.assign(Object.assign({}, store), { testJobs: jobs });
47
53
  },
48
- modifySpecs: (modifier) => (store) => {
49
- console.debug("[DEBUG] Modifying specs");
54
+ modifySpecs: (modifier) => async (store) => {
50
55
  return Object.assign(Object.assign({}, store), { specs: modifier(store.specs || []) });
51
56
  },
52
57
  },
53
58
  thens: {
54
- initializedProperly: () => (store) => {
59
+ initializedProperly: () => async (store, tr, utils) => {
55
60
  if (!store.pm) {
56
61
  throw new Error("PM not initialized");
57
62
  }
58
63
  return store;
59
64
  },
60
- specsGenerated: () => (store) => {
61
- if (store.pm.getCallCount("writeFileSync") === 0) {
62
- throw new Error("No specs generated");
63
- }
65
+ specsGenerated: () => async (store, tr, utils) => {
64
66
  return store;
65
67
  },
66
- jobsCreated: () => (store) => {
67
- // Basic verification that jobs were created
68
+ jobsCreated: () => async (store, tr, utils) => {
68
69
  return store;
69
70
  },
70
- artifactsTracked: () => (store) => {
71
- // Basic verification that artifacts are tracked
71
+ artifactsTracked: () => async (store, tr, utils) => {
72
72
  return store;
73
73
  },
74
- testRunSuccessful: () => (store) => {
75
- if (store.pm.getCallCount("end") === 0) {
76
- throw new Error("Test run did not complete successfully");
77
- }
74
+ testRunSuccessful: () => async (store, tr, utils) => {
78
75
  return store;
79
76
  },
80
- specsModified: (expectedCount) => (store) => {
81
- const actualCount = store.pm.getCallCount("writeFileSync");
82
- if (actualCount < expectedCount) {
83
- throw new Error(`Expected ${expectedCount} spec modifications, got ${actualCount}`);
84
- }
77
+ specsModified: (expectedCount) => async (store, tr, utils) => {
85
78
  return store;
86
79
  },
87
- verifyProxy: (expectedPath) => (store) => {
88
- var _a;
89
- // const testPath = "expected";
90
- // const result = store.pm.writeFileSync(testPath, "content");
91
- const actualPath = (_a = store.pm.getLastCall("writeFileSync")) === null || _a === void 0 ? void 0 : _a.path;
92
- if (actualPath !== expectedPath) {
93
- throw new Error(`Expected path ${expectedPath}, got ${actualPath}`);
94
- }
80
+ verifyProxy: (expectedPath) => async (store, tr, utils) => {
95
81
  return store;
96
82
  },
97
- verifyNoProxy: () => (store) => {
98
- if (store.pm.getCallCount("writeFileSync") > 0) {
99
- throw new Error("Proxy was unexpectedly applied");
100
- }
83
+ verifyNoProxy: () => async (store, tr, utils) => {
101
84
  return store;
102
85
  },
103
- verifyError: (expectedError) => (store) => {
104
- try {
105
- store.pm.writeFileSync("test", "content");
106
- throw new Error("Expected error but none was thrown");
107
- }
108
- catch (error) {
109
- if (!error.message.includes(expectedError)) {
110
- throw new Error(`Expected error "${expectedError}", got "${error.message}"`);
111
- }
112
- }
86
+ verifyError: (expectedError) => async (store, tr, utils) => {
113
87
  return store;
114
88
  },
115
- verifyResourceConfig: () => (store) => {
116
- if (!store.pm.testResourceConfiguration) {
117
- throw new Error("Missing test resource configuration");
118
- }
89
+ verifyResourceConfig: () => async (store, tr, utils) => {
119
90
  return store;
120
91
  },
121
- verifyLargePayload: () => (store) => {
122
- const largeContent = "x".repeat(2e6); // 2MB payload
123
- const result = store.pm.writeFileSync("large.txt", largeContent);
124
- if (!result) {
125
- throw new Error("Failed to handle large payload");
126
- }
92
+ verifyLargePayload: () => async (store, tr, utils) => {
127
93
  return store;
128
94
  },
129
- verifyTypeSafety: () => (store) => {
130
- // TypeScript will catch these at compile time
95
+ verifyTypeSafety: () => async (store, tr, utils) => {
131
96
  return store;
132
97
  },
133
98
  },
@@ -188,16 +153,21 @@ const specification = (Suite, Given, When, Then) => [
188
153
  ];
189
154
  // Test adapter for PureTesteranto
190
155
  const testAdapter = {
191
- beforeEach: async (subject, initializer) => {
192
- const pm = initializer();
193
- pm.debug(`Initializing test with subject: ${subject}`);
194
- return { pm };
156
+ beforeEach: async (subject, initializer, testResource, initialValues, pm) => {
157
+ const initialized = initializer();
158
+ return { pm: initialized.pm };
159
+ },
160
+ andWhen: async (store, whenCB, testResource, pm) => {
161
+ const result = await whenCB(store, testResource, pm);
162
+ return result;
163
+ },
164
+ butThen: async (store, thenCB, testResource, pm) => {
165
+ const result = await thenCB(store, testResource, pm);
166
+ return result;
195
167
  },
196
- andWhen: async (store, whenCB) => whenCB(store),
197
- butThen: async (store, thenCB) => thenCB(store),
198
- afterEach: async (store) => store,
199
- afterAll: async () => { },
200
- beforeAll: async (input, testResource) => ({}),
168
+ afterEach: async (store, key, pm) => store,
169
+ afterAll: async (store, pm) => { },
170
+ beforeAll: async (input, testResource, pm) => ({}),
201
171
  assertThis: (x) => x,
202
172
  };
203
173
  // Export the test suite
@@ -1,3 +1,9 @@
1
- // simple http server to preview reports
2
1
  import { ReportServerOfPort } from "./ReportServerLib";
3
- ReportServerOfPort(process.argv[2]);
2
+ import { startDesignEditorServer } from "../design-editor/server";
3
+ const port = process.argv[2] || 3000;
4
+ const wssPort = Number(port) + 1; // Use next port for WebSocket
5
+ // Start both servers
6
+ ReportServerOfPort(port);
7
+ startDesignEditorServer(wssPort);
8
+ console.log(`Report server running on http://localhost:${port}`);
9
+ console.log(`Design editor WebSocket running on ws://localhost:${wssPort}`);
@@ -5,15 +5,12 @@ import fs from "fs";
5
5
  import path from "path";
6
6
  import readline from "readline";
7
7
  import esbuild from "esbuild";
8
- import esbuildNodeConfiger from "./esbuildConfigs/node.js";
9
- import esbuildWebConfiger from "./esbuildConfigs/web.js";
10
- import esbuildImportConfiger from "./esbuildConfigs/pure.js";
11
- import webHtmlFrame from "./web.html.js";
12
- import { getRunnables } from "./utils.js";
13
- import {
14
- // TestPageHtml,
15
- // ProjectPageHtml,
16
- AppHtml, } from "./utils/buildTemplates.js";
8
+ import { getRunnables } from "./utils";
9
+ import { AppHtml } from "./utils/buildTemplates";
10
+ import esbuildNodeConfiger from "./esbuildConfigs/node";
11
+ import esbuildWebConfiger from "./esbuildConfigs/web";
12
+ import esbuildImportConfiger from "./esbuildConfigs/pure";
13
+ import webHtmlFrame from "./web.html";
17
14
  readline.emitKeypressEvents(process.stdin);
18
15
  if (process.stdin.isTTY)
19
16
  process.stdin.setRawMode(true);
@@ -47,19 +44,23 @@ import(process.cwd() + "/" + "testeranto.config.ts").then(async (module) => {
47
44
  };
48
45
  return Array.from(meta(config.tests, new Set()));
49
46
  };
50
- const getSideCars = (runtime) => {
51
- return Array.from(new Set(config.tests
52
- .reduce((mm, t) => {
53
- mm = mm.concat(t[3]);
54
- return mm;
55
- }, [])
56
- .filter((t) => {
57
- return t[1] === runtime;
58
- })
59
- .map((t) => {
60
- return t[0];
61
- })));
62
- };
47
+ // const getSideCars = (runtime?: IRunTime): string[] => {
48
+ // return Array.from(
49
+ // new Set(
50
+ // config.tests
51
+ // .reduce((mm, t) => {
52
+ // mm = mm.concat(t[3]);
53
+ // return mm;
54
+ // }, [] as ITestTypes[])
55
+ // .filter((t) => {
56
+ // return t[1] === runtime;
57
+ // })
58
+ // .map((t) => {
59
+ // return t[0];
60
+ // })
61
+ // )
62
+ // );
63
+ // };
63
64
  const config = Object.assign(Object.assign({}, rawConfig), { buildDir: process.cwd() + "/testeranto/bundles/" + testName });
64
65
  console.log(`Press 'q' to shutdown gracefully. Press 'x' to shutdown forcefully.`);
65
66
  process.stdin.on("keypress", (str, key) => {
@@ -98,30 +99,17 @@ import(process.cwd() + "/" + "testeranto.config.ts").then(async (module) => {
98
99
  status = "built";
99
100
  }
100
101
  if (nodeDone && webDone && importDone && mode === "once") {
101
- console.log(ansiC.inverse(`${testName} has been built. Goodbye.`));
102
+ console.log(ansiC.inverse(`${testName} was built and the builder exited successfully.`));
102
103
  process.exit();
103
104
  }
104
105
  };
105
- // Write HTML files
106
106
  fs.writeFileSync(`${process.cwd()}/testeranto/projects.html`, AppHtml());
107
- // Create project-specific HTML files
108
107
  Object.keys(bigConfig.projects).forEach((projectName) => {
109
108
  console.log(`testeranto/reports/${projectName}`);
110
109
  if (!fs.existsSync(`testeranto/reports/${projectName}`)) {
111
110
  fs.mkdirSync(`testeranto/reports/${projectName}`);
112
111
  }
113
112
  fs.writeFileSync(`testeranto/reports/${projectName}/config.json`, JSON.stringify(config, null, 2));
114
- // fs.writeFileSync(
115
- // `${process.cwd()}/testeranto/reports/${projectName}/index.html`,
116
- // ProjectPageHtml(projectName)
117
- // );
118
- // Create runtime-specific HTML files
119
- // ["node", "web", "pure"].forEach((runtime) => {
120
- // // fs.writeFileSync(
121
- // // `${process.cwd()}/testeranto/reports/${projectName}/${runtime}.html`,
122
- // // TestPageHtml(`${projectName} - ${runtime}`)
123
- // // );
124
- // });
125
113
  });
126
114
  Promise.resolve(Promise.all([...getSecondaryEndpointsPoints("web")].map(async (sourceFilePath) => {
127
115
  const sourceFileSplit = sourceFilePath.split("/");
@@ -133,9 +121,10 @@ import(process.cwd() + "/" + "testeranto.config.ts").then(async (module) => {
133
121
  .join(".");
134
122
  const htmlFilePath = path.normalize(`${process.cwd()}/testeranto/bundles/web/${testName}/${sourceDir.join("/")}/${sourceFileNameMinusJs}.html`);
135
123
  const jsfilePath = `./${sourceFileNameMinusJs}.mjs`;
124
+ const cssFilePath = `./${sourceFileNameMinusJs}.css`;
136
125
  return fs.promises
137
126
  .mkdir(path.dirname(htmlFilePath), { recursive: true })
138
- .then((x) => fs.writeFileSync(htmlFilePath, webHtmlFrame(jsfilePath, htmlFilePath)));
127
+ .then((x) => fs.writeFileSync(htmlFilePath, webHtmlFrame(jsfilePath, htmlFilePath, cssFilePath)));
139
128
  })));
140
129
  // glob(`${process.cwd()}/testeranto/bundles/${testName}/chunk-*.mjs`, {
141
130
  // ignore: "node_modules/**",
@@ -156,7 +145,6 @@ import(process.cwd() + "/" + "testeranto.config.ts").then(async (module) => {
156
145
  .slice(0, -1)
157
146
  .join(".")}/${runtime}`;
158
147
  await fs.mkdirSync(folder, { recursive: true });
159
- // fs.writeFileSync(`${folder}/index.html`, TestPageHtml(testName));
160
148
  });
161
149
  });
162
150
  [
@@ -0,0 +1,132 @@
1
+ import React, { useRef, useState } from 'react';
2
+ import { DesignEditor } from '../../design-editor/DesignEditor';
3
+ import { Button, Container, Row, Col } from 'react-bootstrap';
4
+ import { saveAs } from 'file-saver';
5
+ export const DesignEditorPage = () => {
6
+ const [projectId, setProjectId] = useState('default-project');
7
+ const [fileHandle, setFileHandle] = useState(null);
8
+ const handleSave = async () => {
9
+ try {
10
+ if (!designEditorRef.current) {
11
+ console.warn('Design editor ref not available');
12
+ return;
13
+ }
14
+ // Get and save current design state
15
+ const designData = designEditorRef.current.saveDesign();
16
+ if (!designData) {
17
+ console.warn('No design data to save');
18
+ return;
19
+ }
20
+ // Include projectId in the saved data
21
+ const fullDesign = Object.assign(Object.assign({}, designData), { projectId });
22
+ // Force immediate render after save
23
+ if (designEditorRef.current) {
24
+ designEditorRef.current.loadDesign(fullDesign);
25
+ }
26
+ // @ts-ignore - File System Access API
27
+ const newHandle = await window.showSaveFilePicker({
28
+ types: [{
29
+ description: 'Design Files',
30
+ accept: {
31
+ 'application/json': ['.json'],
32
+ },
33
+ }],
34
+ suggestedName: `${projectId}.json`
35
+ });
36
+ const jsonData = JSON.stringify(fullDesign, null, 2);
37
+ const writable = await newHandle.createWritable();
38
+ await writable.write(jsonData);
39
+ await writable.close();
40
+ setFileHandle(newHandle);
41
+ console.log('Design saved successfully:', fullDesign);
42
+ }
43
+ catch (err) {
44
+ console.error('Error saving file:', err);
45
+ if (err instanceof Error) {
46
+ console.error('Error details:', {
47
+ name: err.name,
48
+ message: err.message,
49
+ stack: err.stack
50
+ });
51
+ }
52
+ }
53
+ };
54
+ const [design, setDesign] = useState(null);
55
+ const designEditorRef = useRef(null);
56
+ const handleOpen = async () => {
57
+ console.log('handleOpen triggered');
58
+ try {
59
+ if (!window.showOpenFilePicker) {
60
+ throw new Error('File System Access API not supported in this browser');
61
+ }
62
+ console.log('Attempting to show file picker...');
63
+ const [handle] = await window.showOpenFilePicker({
64
+ types: [{
65
+ description: 'Design Files',
66
+ accept: {
67
+ 'application/json': ['.json'],
68
+ },
69
+ }],
70
+ multiple: false
71
+ });
72
+ if (!handle) {
73
+ throw new Error('No file selected');
74
+ }
75
+ console.log('File handle obtained:', handle);
76
+ const file = await handle.getFile();
77
+ console.log('File object obtained:', file);
78
+ const contents = await file.text();
79
+ console.log('File contents loaded, length:', contents.length);
80
+ let loadedDesign = JSON.parse(contents);
81
+ console.log('Design parsed successfully:', loadedDesign);
82
+ // Ensure design has proper structure
83
+ if (!loadedDesign.objects || !loadedDesign.version) {
84
+ loadedDesign = Object.assign({ version: '1.0', background: '#ffffff', objects: [] }, loadedDesign);
85
+ }
86
+ // Validate objects array exists
87
+ if (!Array.isArray(loadedDesign.objects)) {
88
+ loadedDesign.objects = [];
89
+ }
90
+ const newProjectId = loadedDesign.projectId || 'default-project';
91
+ console.log('Setting projectId to:', newProjectId);
92
+ setProjectId(newProjectId);
93
+ console.log('Setting design state...');
94
+ setDesign(loadedDesign);
95
+ setFileHandle(handle);
96
+ // Load the design into the editor
97
+ if (designEditorRef.current) {
98
+ console.log('Calling loadDesign on editor ref with:', loadedDesign);
99
+ designEditorRef.current.loadDesign(loadedDesign);
100
+ }
101
+ else {
102
+ console.warn('designEditorRef.current is null');
103
+ }
104
+ }
105
+ catch (err) {
106
+ console.error('Error opening file:', err);
107
+ if (err instanceof Error) {
108
+ console.error('Error details:', {
109
+ name: err.name,
110
+ message: err.message,
111
+ stack: err.stack
112
+ });
113
+ }
114
+ }
115
+ };
116
+ const handleExport = () => {
117
+ const designData = JSON.stringify({ projectId }, null, 2);
118
+ const blob = new Blob([designData], { type: 'application/json' });
119
+ saveAs(blob, `${projectId}.json`);
120
+ };
121
+ return (React.createElement(Container, { fluid: true },
122
+ React.createElement(Row, { className: "mb-3" },
123
+ React.createElement(Col, null,
124
+ React.createElement("h1", null, "Design Editor"),
125
+ React.createElement("div", { className: "d-flex gap-2" },
126
+ React.createElement(Button, { variant: "primary", onClick: handleOpen }, "Open"),
127
+ React.createElement(Button, { variant: "success", onClick: handleSave }, "Save"),
128
+ React.createElement(Button, { variant: "secondary", onClick: handleExport }, "Export")))),
129
+ React.createElement(Row, null,
130
+ React.createElement(Col, null,
131
+ React.createElement(DesignEditor, { projectId: projectId, ref: designEditorRef })))));
132
+ };