testeranto 0.200.1 → 0.202.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 (373) hide show
  1. package/README.md +26 -1
  2. package/design-editor/DesignEditor.tsx +40 -241
  3. package/dist/common/design-editor/DesignEditor.js +33 -198
  4. package/dist/common/src/App.js +158 -16
  5. package/dist/common/src/PM/PM_WithBuild.js +135 -0
  6. package/dist/common/src/PM/PM_WithEslintAndTsc.js +79 -67
  7. package/dist/common/src/PM/PM_WithGit.js +517 -0
  8. package/dist/common/src/PM/PM_WithProcesses.js +519 -0
  9. package/dist/common/src/PM/PM_WithWebSocket.js +535 -0
  10. package/dist/common/src/PM/base.js +62 -0
  11. package/dist/common/src/PM/main.js +533 -1676
  12. package/dist/common/src/PM/metafileOutputs.js +78 -0
  13. package/dist/common/src/PM/node.js +0 -6
  14. package/dist/common/src/PM/pure.js +0 -8
  15. package/dist/common/src/PM/types.js +1 -0
  16. package/dist/common/src/PM/utils.js +210 -0
  17. package/dist/common/src/PM/web.js +0 -6
  18. package/dist/common/src/ReportServer.js +0 -10
  19. package/dist/common/src/ReportServerLib.js +0 -140
  20. package/dist/common/src/components/pure/AppFrame.js +68 -56
  21. package/dist/common/src/components/pure/ArtifactTree.js +80 -0
  22. package/dist/common/src/components/pure/BuildLogViewer.js +106 -0
  23. package/dist/common/src/components/pure/DebugEnv.js +30 -0
  24. package/dist/common/src/components/pure/FileTree.js +34 -0
  25. package/dist/common/src/components/pure/FileTreeItem.js +29 -0
  26. package/dist/common/src/components/pure/GitHubLoginButton.js +18 -0
  27. package/dist/common/src/components/pure/GitIntegrationView.js +342 -0
  28. package/dist/common/src/components/pure/ProcessManager.js +1 -0
  29. package/dist/common/src/components/pure/ProcessManagerView.js +73 -74
  30. package/dist/common/src/components/pure/ProjectPageView.js +4 -117
  31. package/dist/common/src/components/pure/Settings.js +121 -0
  32. package/dist/common/src/components/pure/Settings.test.js +34 -0
  33. package/dist/common/src/components/pure/SignIn.js +22 -0
  34. package/dist/common/src/components/pure/SingleProcessView.js +166 -213
  35. package/dist/common/src/components/pure/TestPageView.js +113 -368
  36. package/dist/common/src/components/pure/TestPageView_utils.js +117 -0
  37. package/dist/common/src/components/pure/TestTable.js +33 -0
  38. package/dist/common/src/components/pure/ToastNotification.js +14 -0
  39. package/dist/common/src/components/pure/UserProfile.js +27 -0
  40. package/dist/common/src/components/stateful/AuthCallbackPage.js +51 -0
  41. package/dist/common/src/components/stateful/FeaturesReporter.js +2 -1
  42. package/dist/common/src/components/stateful/FileTree.js +58 -39
  43. package/dist/common/src/components/stateful/GitIntegrationPage.js +12 -0
  44. package/dist/common/src/components/stateful/ProcessManagerPage.js +13 -15
  45. package/dist/common/src/components/stateful/ProjectPage.js +6 -5
  46. package/dist/common/src/components/stateful/ProjectsPage.js +17 -19
  47. package/dist/common/src/components/stateful/SingleProcessPage.js +16 -26
  48. package/dist/common/src/components/stateful/TestPage.js +7 -5
  49. package/dist/common/src/hooks/useGitMode.js +21 -0
  50. package/dist/common/src/lib/BaseSuite.test/mock.js +15 -8
  51. package/dist/common/src/lib/BaseSuite.test/test.js +56 -80
  52. package/dist/common/src/lib/Tiposkripto.js +24 -0
  53. package/dist/common/src/lib/Tiposkripto.test/MockTiposkripto.js +154 -10
  54. package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.adapter.js +6 -12
  55. package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.implementation.js +63 -23
  56. package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.specification.js +14 -6
  57. package/dist/common/src/lib/pmProxy.test/specification.js +167 -52
  58. package/dist/common/src/services/FileService.js +505 -0
  59. package/dist/common/src/services/GitHubAuthService.js +184 -0
  60. package/dist/common/src/testeranto.js +38 -97
  61. package/dist/common/src/utils/api.js +12 -8
  62. package/dist/common/src/utils/gitTest.js +27 -0
  63. package/dist/common/src/utils.js +23 -13
  64. package/dist/common/testeranto.config.js +21 -17
  65. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  66. package/dist/module/design-editor/DesignEditor.js +33 -199
  67. package/dist/module/src/App.js +121 -15
  68. package/dist/module/src/PM/PM_WithBuild.js +128 -0
  69. package/dist/module/src/PM/PM_WithEslintAndTsc.js +79 -67
  70. package/dist/module/src/PM/PM_WithGit.js +477 -0
  71. package/dist/module/src/PM/PM_WithProcesses.js +479 -0
  72. package/dist/module/src/PM/PM_WithWebSocket.js +528 -0
  73. package/dist/module/src/PM/base.js +62 -0
  74. package/dist/module/src/PM/main.js +533 -1676
  75. package/dist/module/src/PM/metafileOutputs.js +78 -0
  76. package/dist/module/src/PM/node.js +0 -6
  77. package/dist/module/src/PM/pure.js +0 -8
  78. package/dist/module/src/PM/types.js +1 -1
  79. package/dist/module/src/PM/utils.js +196 -0
  80. package/dist/module/src/PM/web.js +0 -6
  81. package/dist/module/src/ReportServer.js +1 -9
  82. package/dist/module/src/ReportServerLib.js +1 -134
  83. package/dist/module/src/components/pure/AppFrame.js +66 -24
  84. package/dist/module/src/components/pure/ArtifactTree.js +80 -0
  85. package/dist/module/src/components/pure/BuildLogViewer.js +99 -0
  86. package/dist/module/src/components/pure/DebugEnv.js +23 -0
  87. package/dist/module/src/components/pure/FileTree.js +27 -0
  88. package/dist/module/src/components/pure/FileTreeItem.js +22 -0
  89. package/dist/module/src/components/pure/GitHubLoginButton.js +11 -0
  90. package/dist/module/src/components/pure/GitIntegrationView.js +305 -0
  91. package/dist/module/src/components/pure/ProcessManager.js +1 -0
  92. package/dist/module/src/components/pure/ProcessManagerView.js +74 -75
  93. package/dist/module/src/components/pure/ProjectPageView.js +5 -118
  94. package/dist/module/src/components/pure/Settings.js +84 -0
  95. package/dist/module/src/components/pure/Settings.test.js +29 -0
  96. package/dist/module/src/components/pure/SignIn.js +15 -0
  97. package/dist/module/src/components/pure/SingleProcessView.js +130 -214
  98. package/dist/module/src/components/pure/TestPageView.js +97 -352
  99. package/dist/module/src/components/pure/TestPageView_utils.js +109 -0
  100. package/dist/module/src/components/pure/TestTable.js +26 -0
  101. package/dist/module/src/components/pure/ToastNotification.js +7 -0
  102. package/dist/module/src/components/pure/UserProfile.js +20 -0
  103. package/dist/module/src/components/stateful/AuthCallbackPage.js +14 -0
  104. package/dist/module/src/components/stateful/FeaturesReporter.js +2 -1
  105. package/dist/module/src/components/stateful/FileTree.js +59 -33
  106. package/dist/module/src/components/stateful/GitIntegrationPage.js +5 -0
  107. package/dist/module/src/components/stateful/ProcessManagerPage.js +13 -15
  108. package/dist/module/src/components/stateful/ProjectPage.js +6 -5
  109. package/dist/module/src/components/stateful/ProjectsPage.js +16 -18
  110. package/dist/module/src/components/stateful/SingleProcessPage.js +16 -26
  111. package/dist/module/src/components/stateful/TestPage.js +8 -6
  112. package/dist/module/src/hooks/useGitMode.js +17 -0
  113. package/dist/module/src/lib/BaseSuite.test/mock.js +15 -8
  114. package/dist/module/src/lib/BaseSuite.test/test.js +56 -80
  115. package/dist/module/src/lib/Tiposkripto.js +24 -0
  116. package/dist/module/src/lib/Tiposkripto.test/MockTiposkripto.js +154 -10
  117. package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.adapter.js +6 -12
  118. package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.implementation.js +63 -23
  119. package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.specification.js +14 -6
  120. package/dist/module/src/lib/pmProxy.test/specification.js +167 -52
  121. package/dist/module/src/services/FileService.js +468 -0
  122. package/dist/module/src/services/GitHubAuthService.js +180 -0
  123. package/dist/module/src/testeranto.js +38 -97
  124. package/dist/module/src/utils/api.js +10 -7
  125. package/dist/module/src/utils/gitTest.js +23 -0
  126. package/dist/module/src/utils.js +21 -12
  127. package/dist/module/testeranto.config.js +21 -17
  128. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  129. package/dist/prebuild/App.css +94 -121
  130. package/dist/prebuild/App.js +44601 -11225
  131. package/dist/prebuild/testeranto.mjs +3113 -2256
  132. package/dist/types/design-editor/DesignEditor.d.ts +1 -18
  133. package/dist/types/src/App.d.ts +18 -0
  134. package/dist/types/src/PM/PM_WithBuild.d.ts +13 -0
  135. package/dist/types/src/PM/PM_WithEslintAndTsc.d.ts +2 -4
  136. package/dist/types/src/PM/PM_WithGit.d.ts +27 -0
  137. package/dist/types/src/PM/PM_WithProcesses.d.ts +29 -0
  138. package/dist/types/src/PM/PM_WithWebSocket.d.ts +108 -0
  139. package/dist/types/src/PM/base.d.ts +1 -1
  140. package/dist/types/src/PM/index.d.ts +0 -2
  141. package/dist/types/src/PM/main.d.ts +6 -77
  142. package/dist/types/src/PM/metafileOutputs.d.ts +0 -0
  143. package/dist/types/src/PM/node.d.ts +0 -2
  144. package/dist/types/src/PM/pure.d.ts +0 -2
  145. package/dist/types/src/PM/types.d.ts +118 -0
  146. package/dist/types/src/PM/utils.d.ts +35 -0
  147. package/dist/types/src/PM/web.d.ts +0 -2
  148. package/dist/types/src/Pure.d.ts +6 -1
  149. package/dist/types/src/ReportServer.d.ts +0 -1
  150. package/dist/types/src/ReportServerLib.d.ts +0 -1
  151. package/dist/types/src/Types.d.ts +1 -0
  152. package/dist/types/src/components/pure/ArtifactTree.d.ts +0 -0
  153. package/dist/types/src/components/pure/BuildLogViewer.d.ts +7 -0
  154. package/dist/types/src/components/pure/DebugEnv.d.ts +2 -0
  155. package/dist/types/src/components/pure/FileTree.d.ts +6 -0
  156. package/dist/types/src/components/pure/FileTreeItem.d.ts +8 -0
  157. package/dist/types/src/components/pure/GitHubLoginButton.d.ts +8 -0
  158. package/dist/types/src/components/pure/GitIntegrationView.d.ts +1 -0
  159. package/dist/types/src/components/pure/Settings.d.ts +1 -0
  160. package/dist/types/src/components/pure/Settings.test.d.ts +1 -0
  161. package/dist/types/src/components/pure/SignIn.d.ts +1 -0
  162. package/dist/types/src/components/pure/SingleProcessView.d.ts +10 -0
  163. package/dist/types/src/components/pure/TestPageView.d.ts +2 -1
  164. package/dist/types/src/components/pure/TestPageView_utils.d.ts +23 -0
  165. package/dist/types/src/components/pure/TestTable.d.ts +16 -0
  166. package/dist/types/src/components/pure/ToastNotification.d.ts +6 -0
  167. package/dist/types/src/components/pure/UserProfile.d.ts +2 -0
  168. package/dist/types/src/components/stateful/AuthCallbackPage.d.ts +2 -0
  169. package/dist/types/src/components/stateful/FileTree.d.ts +0 -8
  170. package/dist/types/src/components/stateful/GitIntegrationPage.d.ts +1 -0
  171. package/dist/types/src/hooks/useGitMode.d.ts +7 -0
  172. package/dist/types/src/lib/BaseSuite.test/mock.d.ts +2 -2
  173. package/dist/types/src/lib/BaseSuite.test/test.d.ts +4 -3
  174. package/dist/types/src/lib/Tiposkripto.d.ts +2 -0
  175. package/dist/types/src/lib/Tiposkripto.test/MockTiposkripto.d.ts +3 -0
  176. package/dist/types/src/lib/Tiposkripto.test/Tiposkripto.types.d.ts +5 -0
  177. package/dist/types/src/lib/index.d.ts +6 -0
  178. package/dist/types/src/services/FileService.d.ts +34 -0
  179. package/dist/types/src/services/GitHubAuthService.d.ts +32 -0
  180. package/dist/types/src/utils/api.d.ts +1 -0
  181. package/dist/types/src/utils/gitTest.d.ts +11 -0
  182. package/dist/types/src/utils.d.ts +3 -3
  183. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  184. package/example/__pycache__/Calculator.cpython-313.pyc +0 -0
  185. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/README.md +187 -0
  186. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/base_given.go +163 -0
  187. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/base_suite.go +85 -0
  188. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/base_then.go +21 -0
  189. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/base_when.go +21 -0
  190. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/golingvu.go +554 -0
  191. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/test_adapter.go +33 -0
  192. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/types.go +72 -0
  193. package/example/vendor/modules.txt +5 -0
  194. package/git-integration-plan.md +395 -0
  195. package/package.json +26 -14
  196. package/src/App.tsx +169 -18
  197. package/src/PM/PM_WithBuild.ts +171 -0
  198. package/src/PM/PM_WithEslintAndTsc.ts +109 -86
  199. package/src/PM/PM_WithGit.ts +585 -0
  200. package/src/PM/PM_WithProcesses.ts +639 -0
  201. package/src/PM/PM_WithWebSocket.ts +631 -0
  202. package/src/PM/base.ts +63 -1
  203. package/src/PM/index.ts +8 -5
  204. package/src/PM/main.ts +672 -2050
  205. package/src/PM/metafileOutputs.ts +90 -0
  206. package/src/PM/node.ts +18 -18
  207. package/src/PM/pure.ts +5 -13
  208. package/src/PM/types.ts +145 -0
  209. package/src/PM/utils.ts +256 -0
  210. package/src/PM/web.ts +8 -8
  211. package/src/README.md +122 -0
  212. package/src/ReportServer.ts +0 -12
  213. package/src/ReportServerLib.ts +0 -147
  214. package/src/Types.ts +1 -0
  215. package/src/app.scss +14 -164
  216. package/src/components/pure/AppFrame.tsx +237 -71
  217. package/src/components/pure/ArtifactTree.tsx +82 -0
  218. package/src/components/pure/BuildLogViewer.tsx +168 -0
  219. package/src/components/pure/DebugEnv.tsx +30 -0
  220. package/src/components/pure/FileTree.tsx +58 -0
  221. package/src/components/pure/FileTreeItem.tsx +49 -0
  222. package/src/components/pure/GitHubLoginButton.tsx +31 -0
  223. package/src/components/pure/GitIntegrationView.tsx +443 -0
  224. package/src/components/pure/ProcessManager.tsx +6 -5
  225. package/src/components/pure/ProcessManagerView.tsx +162 -166
  226. package/src/components/pure/ProjectPageView.tsx +6 -224
  227. package/src/components/pure/Settings.test.tsx +34 -0
  228. package/src/components/pure/Settings.tsx +163 -0
  229. package/src/components/pure/SignIn.tsx +33 -0
  230. package/src/components/pure/SingleProcessView.tsx +231 -235
  231. package/src/components/pure/TestPageView.test/specification.ts +1 -0
  232. package/src/components/pure/TestPageView.tsx +317 -826
  233. package/src/components/pure/TestPageView_utils.tsx +285 -0
  234. package/src/components/pure/TestTable.tsx +88 -0
  235. package/src/components/pure/ToastNotification.tsx +19 -0
  236. package/src/components/pure/UserProfile.tsx +44 -0
  237. package/src/components/stateful/AuthCallbackPage.tsx +21 -0
  238. package/src/components/stateful/FeaturesReporter.tsx +3 -1
  239. package/src/components/stateful/FileTree.tsx +58 -58
  240. package/src/components/stateful/GitIntegrationPage.tsx +8 -0
  241. package/src/components/stateful/ProcessManagerPage.tsx +13 -17
  242. package/src/components/stateful/ProjectPage.tsx +6 -5
  243. package/src/components/stateful/ProjectsPage.tsx +17 -19
  244. package/src/components/stateful/SVGEditor/CircleForm.tsx +68 -0
  245. package/src/components/stateful/SVGEditor/GroupForm.tsx +56 -0
  246. package/src/components/stateful/SVGEditor/RectForm.tsx +74 -0
  247. package/src/components/stateful/SVGEditor/SVGAttributeField.tsx +29 -0
  248. package/src/components/stateful/SVGEditor/SVGAttributesEditor.tsx +73 -0
  249. package/src/components/stateful/SVGEditor/SVGEditorControls.tsx +45 -0
  250. package/src/components/stateful/SVGEditor/SVGElementForm.tsx +45 -0
  251. package/src/components/stateful/SVGEditor/SVGPreview.tsx +225 -0
  252. package/src/components/stateful/SVGEditor/SVGTextEditor.tsx +166 -0
  253. package/src/components/stateful/SVGEditor/SVGTree.tsx +159 -0
  254. package/src/components/stateful/SVGEditor/SVGTypes.ts +36 -0
  255. package/src/components/stateful/SVGEditor/svg.xsd.xml +3038 -0
  256. package/src/components/stateful/SVGEditorPage.tsx +503 -0
  257. package/src/components/stateful/SingleProcessPage.tsx +18 -31
  258. package/src/components/stateful/TestPage.tsx +25 -22
  259. package/src/golingvu/golingvu.go +38 -2
  260. package/src/hooks/useGitMode.ts +20 -0
  261. package/src/lib/BaseSuite.test/mock.ts +16 -10
  262. package/src/lib/BaseSuite.test/test.ts +144 -103
  263. package/src/lib/Tiposkripto.test/MockTiposkripto.ts +178 -14
  264. package/src/lib/Tiposkripto.test/Tiposkripto.adapter.ts +9 -14
  265. package/src/lib/Tiposkripto.test/Tiposkripto.implementation.ts +78 -38
  266. package/src/lib/Tiposkripto.test/Tiposkripto.specification.ts +51 -9
  267. package/src/lib/Tiposkripto.test/Tiposkripto.types.ts +5 -0
  268. package/src/lib/Tiposkripto.ts +27 -0
  269. package/src/lib/index.ts +7 -0
  270. package/src/lib/pmProxy.test/specification.ts +168 -166
  271. package/src/pitono/PM/__pycache__/python.cpython-313.pyc +0 -0
  272. package/src/pitono/__pycache__/Pitono.cpython-313.pyc +0 -0
  273. package/src/pitono/__pycache__/__init__.cpython-313.pyc +0 -0
  274. package/src/pitono/__pycache__/base_given.cpython-313.pyc +0 -0
  275. package/src/pitono/__pycache__/base_suite.cpython-313.pyc +0 -0
  276. package/src/pitono/__pycache__/base_then.cpython-313.pyc +0 -0
  277. package/src/pitono/__pycache__/base_when.cpython-313.pyc +0 -0
  278. package/src/pitono/__pycache__/core_generator.cpython-313.pyc +0 -0
  279. package/src/pitono/__pycache__/simple_adapter.cpython-313.pyc +0 -0
  280. package/src/pitono/__pycache__/types.cpython-313.pyc +0 -0
  281. package/src/services/FileService.ts +542 -0
  282. package/src/services/GitHubAuthService.ts +240 -0
  283. package/src/testeranto.ts +62 -140
  284. package/src/utils/api.ts +15 -13
  285. package/src/utils/gitTest.ts +29 -0
  286. package/src/utils.ts +21 -12
  287. package/testeranto/App.css +94 -121
  288. package/testeranto/App.js +44601 -11225
  289. package/testeranto/bundles/golang/core/Calculator.golingvu.go +53 -0
  290. package/testeranto/bundles/golang/core/Calculator.golingvu.golingvu.go +53 -0
  291. package/testeranto/bundles/node/core/chunk-RIM6RECA.mjs +1170 -0
  292. package/testeranto/bundles/node/core/chunk-VXVF7WFO.mjs +4321 -0
  293. package/testeranto/bundles/node/core/example/Calculator.test.mjs +503 -0
  294. package/testeranto/bundles/node/core/src/lib/BaseSuite.test/node.test.mjs +94 -1231
  295. package/testeranto/bundles/node/core/src/lib/TipoSkripto.test/TipoSkripto.mjs +574 -0
  296. package/testeranto/bundles/node/core/src/lib/pmProxy.test/index.mjs +482 -0
  297. package/testeranto/bundles/pure/core/chunk-XYOCRDEQ.mjs +1080 -0
  298. package/testeranto/bundles/pure/core/src/Pure.test.mjs +410 -0
  299. package/testeranto/bundles/pure/core/src/lib/BaseSuite.test/pure.test.mjs +93 -1146
  300. package/testeranto/bundles/python/core/Calculator.pitono.test.py +24 -0
  301. package/testeranto/bundles/python/core/test_example.py +24 -0
  302. package/testeranto/bundles/web/core/MPLUSRounded1c-Black-O75GP5JI.ttf +0 -0
  303. package/testeranto/bundles/web/core/MPLUSRounded1c-Bold-R524Q5BH.ttf +0 -0
  304. package/testeranto/bundles/web/core/MPLUSRounded1c-ExtraBold-C6GRMYVT.ttf +0 -0
  305. package/testeranto/bundles/web/core/MPLUSRounded1c-Light-WKN65Y2C.ttf +0 -0
  306. package/testeranto/bundles/web/core/MPLUSRounded1c-Medium-ZC4DWL7C.ttf +0 -0
  307. package/testeranto/bundles/web/core/MPLUSRounded1c-Regular-DT6EKZ3S.ttf +0 -0
  308. package/testeranto/bundles/web/core/MPLUSRounded1c-Thin-YWDNVG6M.ttf +0 -0
  309. package/testeranto/bundles/web/core/chunk-DFRN4SYZ.mjs +2297 -0
  310. package/testeranto/bundles/web/core/chunk-JMDLMADH.mjs +27996 -0
  311. package/testeranto/bundles/web/core/chunk-LQMU5NCG.mjs +3082 -0
  312. package/testeranto/bundles/web/core/chunk-Q5TONB2Z.mjs +6874 -0
  313. package/testeranto/bundles/web/core/src/components/pure/FeaturesReporterView.test/index.mjs +164 -0
  314. package/testeranto/bundles/web/core/src/components/pure/ModalContent.test/index.css +11697 -0
  315. package/testeranto/bundles/web/core/src/components/pure/ModalContent.test/index.mjs +336 -0
  316. package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.css +11697 -0
  317. package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.mjs +517 -0
  318. package/testeranto/bundles/web/core/src/lib/BaseSuite.test/web.test.mjs +107 -1134
  319. package/testeranto/metafiles/golang/core.json +3 -3
  320. package/testeranto/metafiles/node/core.json +474 -31
  321. package/testeranto/metafiles/pure/core.json +144 -28
  322. package/testeranto/metafiles/python/core.json +11 -0
  323. package/testeranto/metafiles/web/core.json +15829 -45
  324. package/testeranto/reports/core/config.json +40 -0
  325. package/testeranto/reports/core/src/Pure.test/pure/exit.log +0 -0
  326. package/testeranto/reports/core/src/Pure.test/pure/lint_errors.txt +0 -0
  327. package/testeranto/reports/core/src/Pure.test/pure/prompt.txt +14 -0
  328. package/testeranto/reports/core/src/Pure.test/pure/type_errors.txt +73 -0
  329. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/debug.log +0 -0
  330. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/error.log +91 -0
  331. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/exit.log +1 -0
  332. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/info.log +2 -0
  333. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/tests.json +68 -0
  334. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/warn.log +0 -0
  335. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/debug.log +0 -0
  336. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/error.log +30 -0
  337. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/exit.log +1 -0
  338. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/info.log +2 -0
  339. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/tests.json +88 -0
  340. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/warn.log +0 -0
  341. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/lint_errors.txt +0 -6
  342. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/prompt.txt +0 -11
  343. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/stdout.log +1 -0
  344. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/tests.json +1 -1
  345. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/type_errors.txt +35 -38
  346. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/lint_errors.txt +0 -2
  347. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/prompt.txt +0 -10
  348. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/type_errors.txt +40 -38
  349. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/tests.json +1 -1
  350. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/exit.log +1 -0
  351. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/lint_errors.txt +0 -0
  352. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/message.txt +17 -0
  353. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/prompt.txt +17 -0
  354. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/stderr.log +55 -0
  355. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/stdout.log +191 -0
  356. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/type_errors.txt +71 -0
  357. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/exit.log +1 -0
  358. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/lint_errors.txt +15 -0
  359. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/message.txt +17 -0
  360. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/prompt.txt +17 -0
  361. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stderr.log +20 -0
  362. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stdout.log +4 -0
  363. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/type_errors.txt +49 -0
  364. package/testeranto/reports/core/summary.json +34 -6
  365. package/testeranto.config.ts +26 -20
  366. package/tsc.log +141 -91
  367. package/tsconfig.json +6 -2
  368. package/dist/types/design-editor/server.d.ts +0 -1
  369. package/testeranto/bundles/web/core/src/lib/BaseSuite.test/web.test.html +0 -15
  370. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/lint_errors.txt +0 -2
  371. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/prompt.txt +0 -25
  372. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/type_errors.txt +0 -56
  373. /package/testeranto/reports/core/src/{lib/BaseSuite.test/web.test/web → Pure.test/pure}/message.txt +0 -0
@@ -0,0 +1,1080 @@
1
+ import { createRequire } from 'module';const require = createRequire(import.meta.url);
2
+
3
+ // src/lib/pmProxy.ts
4
+ var baseProxy = function(pm, mappings) {
5
+ return new Proxy(pm, {
6
+ get: (target, prop, receiver) => {
7
+ for (const mapping of mappings) {
8
+ const method = mapping[0];
9
+ const arger = mapping[1];
10
+ if (prop === method) {
11
+ return (...x) => {
12
+ const modifiedArgs = arger(...x);
13
+ return target[prop](...modifiedArgs);
14
+ };
15
+ }
16
+ }
17
+ return (...x) => {
18
+ return target[prop](...x);
19
+ };
20
+ }
21
+ });
22
+ };
23
+ var butThenProxy = (pm, filepath, addArtifact) => {
24
+ return baseProxy(pm, [
25
+ [
26
+ "screencast",
27
+ (opts, p) => {
28
+ const path = `${filepath}/butThen/${opts.path}`;
29
+ addArtifact(path);
30
+ return [
31
+ {
32
+ ...opts,
33
+ path
34
+ },
35
+ p
36
+ ];
37
+ }
38
+ ],
39
+ [
40
+ "createWriteStream",
41
+ (fp) => {
42
+ const path = `${filepath}/butThen/${fp}`;
43
+ addArtifact(path);
44
+ return [path];
45
+ }
46
+ ],
47
+ [
48
+ "writeFileSync",
49
+ (fp, contents, testName) => {
50
+ const path = `${filepath}/butThen/${fp}`;
51
+ addArtifact(path);
52
+ return [path, contents, testName];
53
+ }
54
+ ],
55
+ [
56
+ "customScreenShot",
57
+ (opts, p) => {
58
+ const path = `${filepath}/butThen/${opts.path}`;
59
+ addArtifact(path);
60
+ return [
61
+ {
62
+ ...opts,
63
+ path
64
+ },
65
+ p
66
+ ];
67
+ }
68
+ ]
69
+ ]);
70
+ };
71
+ var andWhenProxy = (pm, filepath, addArtifact) => {
72
+ return baseProxy(pm, [
73
+ [
74
+ "screencast",
75
+ (opts, p) => {
76
+ const path = `${filepath}/andWhen/${opts.path}`;
77
+ addArtifact(path);
78
+ return [
79
+ {
80
+ ...opts,
81
+ path
82
+ },
83
+ p
84
+ ];
85
+ }
86
+ ],
87
+ [
88
+ "createWriteStream",
89
+ (fp) => {
90
+ const path = `${filepath}/andWhen/${fp}`;
91
+ addArtifact(path);
92
+ return [path];
93
+ }
94
+ ],
95
+ [
96
+ "writeFileSync",
97
+ (fp, contents, testName) => {
98
+ const path = `${filepath}/andWhen/${fp}`;
99
+ addArtifact(path);
100
+ return [path, contents, testName];
101
+ }
102
+ ],
103
+ [
104
+ "customScreenShot",
105
+ (opts, p) => {
106
+ const path = `${filepath}/andWhen/${opts.path}`;
107
+ addArtifact(path);
108
+ return [
109
+ {
110
+ ...opts,
111
+ path
112
+ },
113
+ p
114
+ ];
115
+ }
116
+ ]
117
+ ]);
118
+ };
119
+ var afterEachProxy = (pm, suite, given, addArtifact) => {
120
+ return baseProxy(pm, [
121
+ [
122
+ "screencast",
123
+ (opts, p) => {
124
+ const path = `suite-${suite}/given-${given}/afterEach/${opts.path}`;
125
+ addArtifact(path);
126
+ return [
127
+ {
128
+ ...opts,
129
+ path
130
+ },
131
+ p
132
+ ];
133
+ }
134
+ ],
135
+ [
136
+ "createWriteStream",
137
+ (fp) => {
138
+ const path = `suite-${suite}/afterEach/${fp}`;
139
+ addArtifact(path);
140
+ return [path];
141
+ }
142
+ ],
143
+ [
144
+ "writeFileSync",
145
+ (fp, contents, testName) => {
146
+ const path = `suite-${suite}/given-${given}/afterEach/${fp}`;
147
+ addArtifact(path);
148
+ return [path, contents, testName];
149
+ }
150
+ ],
151
+ [
152
+ "customScreenShot",
153
+ (opts, p) => {
154
+ const path = `suite-${suite}/given-${given}/afterEach/${opts.path}`;
155
+ addArtifact(path);
156
+ return [
157
+ {
158
+ ...opts,
159
+ path
160
+ },
161
+ p
162
+ ];
163
+ }
164
+ ]
165
+ ]);
166
+ };
167
+ var beforeEachProxy = (pm, suite, addArtifact) => {
168
+ return baseProxy(pm, [
169
+ [
170
+ "screencast",
171
+ (opts, p) => {
172
+ const path = `suite-${suite}/beforeEach/${opts.path}`;
173
+ addArtifact(path);
174
+ return [
175
+ {
176
+ ...opts,
177
+ path
178
+ },
179
+ p
180
+ ];
181
+ }
182
+ ],
183
+ [
184
+ "writeFileSync",
185
+ (fp, contents, testName) => {
186
+ const path = `suite-${suite}/beforeEach/${fp}`;
187
+ addArtifact(path);
188
+ return [path, contents, testName];
189
+ }
190
+ ],
191
+ [
192
+ "customScreenShot",
193
+ (opts, p) => {
194
+ const path = `suite-${suite}/beforeEach/${opts.path}`;
195
+ addArtifact(path);
196
+ return [
197
+ {
198
+ ...opts,
199
+ path
200
+ },
201
+ p
202
+ ];
203
+ }
204
+ ],
205
+ [
206
+ "createWriteStream",
207
+ (fp) => {
208
+ const path = `suite-${suite}/beforeEach/${fp}`;
209
+ addArtifact(path);
210
+ return [path];
211
+ }
212
+ ]
213
+ ]);
214
+ };
215
+ var beforeAllProxy = (pm, suite, addArtifact) => {
216
+ return baseProxy(pm, [
217
+ [
218
+ "writeFileSync",
219
+ (fp, contents, testName) => {
220
+ const path = `suite-${suite}/beforeAll/${fp}`;
221
+ addArtifact(path);
222
+ return [path, contents, testName];
223
+ }
224
+ ],
225
+ [
226
+ "customScreenShot",
227
+ (opts, p) => {
228
+ const path = `suite-${suite}/beforeAll/${opts.path}`;
229
+ addArtifact(path);
230
+ return [
231
+ {
232
+ ...opts,
233
+ path
234
+ },
235
+ p
236
+ ];
237
+ }
238
+ ],
239
+ [
240
+ "createWriteStream",
241
+ (fp) => {
242
+ const path = `suite-${suite}/beforeAll/${fp}`;
243
+ addArtifact(path);
244
+ return [path];
245
+ }
246
+ ]
247
+ ]);
248
+ };
249
+ var afterAllProxy = (pm, suite, addArtifact) => {
250
+ return baseProxy(pm, [
251
+ [
252
+ "createWriteStream",
253
+ (fp) => {
254
+ const path = `suite-${suite}/afterAll/${fp}`;
255
+ addArtifact(path);
256
+ return [path];
257
+ }
258
+ ],
259
+ [
260
+ "writeFileSync",
261
+ (fp, contents, testName) => {
262
+ const path = `suite-${suite}/afterAll/${fp}`;
263
+ addArtifact(path);
264
+ return [path, contents, testName];
265
+ }
266
+ ],
267
+ [
268
+ "customScreenShot",
269
+ (opts, p) => {
270
+ const path = `suite-${suite}/afterAll/${opts.path}`;
271
+ addArtifact(path);
272
+ return [
273
+ {
274
+ ...opts,
275
+ path
276
+ },
277
+ p
278
+ ];
279
+ }
280
+ ]
281
+ ]);
282
+ };
283
+
284
+ // src/lib/BaseSuite.ts
285
+ var BaseSuite = class {
286
+ constructor(name, index, givens = {}) {
287
+ this.artifacts = [];
288
+ const suiteName = name || "testSuite";
289
+ if (!suiteName) {
290
+ throw new Error("BaseSuite requires a non-empty name");
291
+ }
292
+ this.name = suiteName;
293
+ this.index = index;
294
+ this.givens = givens;
295
+ this.fails = 0;
296
+ }
297
+ addArtifact(path) {
298
+ if (typeof path !== "string") {
299
+ throw new Error(`[ARTIFACT ERROR] Expected string, got ${typeof path}: ${JSON.stringify(path)}`);
300
+ }
301
+ const normalizedPath = path.replace(/\\/g, "/");
302
+ this.artifacts.push(normalizedPath);
303
+ }
304
+ features() {
305
+ try {
306
+ const features = Object.keys(this.givens).map((k) => this.givens[k].features).flat().filter((value, index, array) => {
307
+ return array.indexOf(value) === index;
308
+ });
309
+ const stringFeatures = features.map((feature) => {
310
+ if (typeof feature === "string") {
311
+ return feature;
312
+ } else if (feature && typeof feature === "object") {
313
+ return feature.name || JSON.stringify(feature);
314
+ } else {
315
+ return String(feature);
316
+ }
317
+ });
318
+ return stringFeatures || [];
319
+ } catch (e) {
320
+ console.error("[ERROR] Failed to extract features:", JSON.stringify(e));
321
+ return [];
322
+ }
323
+ }
324
+ toObj() {
325
+ const givens = Object.keys(this.givens).map((k) => {
326
+ const givenObj = this.givens[k].toObj();
327
+ if (givenObj.features) {
328
+ givenObj.features = givenObj.features.map((feature) => {
329
+ if (typeof feature === "string") {
330
+ return feature;
331
+ } else if (feature && typeof feature === "object") {
332
+ return feature.name || JSON.stringify(feature);
333
+ } else {
334
+ return String(feature);
335
+ }
336
+ });
337
+ }
338
+ return givenObj;
339
+ });
340
+ return {
341
+ name: this.name,
342
+ givens,
343
+ fails: this.fails,
344
+ failed: this.failed,
345
+ features: this.features(),
346
+ artifacts: this.artifacts ? this.artifacts.filter((art) => typeof art === "string") : []
347
+ };
348
+ }
349
+ setup(s, artifactory, tr, pm) {
350
+ return new Promise((res) => res(s));
351
+ }
352
+ assertThat(t) {
353
+ return !!t;
354
+ }
355
+ afterAll(store, artifactory, pm) {
356
+ return store;
357
+ }
358
+ async run(input, testResourceConfiguration, artifactory, tLog, pm) {
359
+ this.testResourceConfiguration = testResourceConfiguration;
360
+ const suiteArtifactory = (fPath, value) => artifactory(`suite-${this.index}-${this.name}/${fPath}`, value);
361
+ const sNdx = this.index;
362
+ const addArtifact = this.addArtifact.bind(this);
363
+ const proxiedPm = beforeAllProxy(pm, sNdx.toString(), addArtifact);
364
+ const subject = await this.setup(
365
+ input,
366
+ suiteArtifactory,
367
+ testResourceConfiguration,
368
+ proxiedPm
369
+ );
370
+ for (const [gKey, g] of Object.entries(this.givens)) {
371
+ const giver = this.givens[gKey];
372
+ try {
373
+ this.store = await giver.give(
374
+ subject,
375
+ gKey,
376
+ testResourceConfiguration,
377
+ this.assertThat,
378
+ suiteArtifactory,
379
+ tLog,
380
+ pm,
381
+ sNdx
382
+ );
383
+ this.fails += giver.fails || 0;
384
+ } catch (e) {
385
+ this.failed = true;
386
+ this.fails += 1;
387
+ if (giver.fails) {
388
+ this.fails += giver.fails;
389
+ }
390
+ console.error(`Error in given ${gKey}:`, e);
391
+ }
392
+ }
393
+ if (this.fails > 0) {
394
+ this.failed = true;
395
+ }
396
+ try {
397
+ const addArtifact2 = this.addArtifact.bind(this);
398
+ const afterAllPm = afterAllProxy(pm, sNdx.toString(), addArtifact2);
399
+ this.afterAll(this.store, artifactory, afterAllPm);
400
+ } catch (e) {
401
+ console.error(JSON.stringify(e));
402
+ }
403
+ return this;
404
+ }
405
+ };
406
+
407
+ // src/lib/index.ts
408
+ var BaseAdapter = () => ({
409
+ beforeAll: async (input, testResource, pm) => {
410
+ return input;
411
+ },
412
+ beforeEach: async function(subject, initializer, testResource, initialValues, pm) {
413
+ return subject;
414
+ },
415
+ afterEach: async (store, key, pm) => Promise.resolve(store),
416
+ afterAll: (store, pm) => void 0,
417
+ butThen: async (store, thenCb, testResource, pm) => {
418
+ return thenCb(store, pm);
419
+ },
420
+ andWhen: async (store, whenCB, testResource, pm) => {
421
+ return whenCB(store, pm);
422
+ },
423
+ assertThis: (x) => x
424
+ });
425
+ var DefaultAdapter = (p) => {
426
+ const base = BaseAdapter();
427
+ return {
428
+ ...base,
429
+ ...p
430
+ };
431
+ };
432
+ var defaultTestResourceRequirement = {
433
+ ports: 0
434
+ };
435
+
436
+ // src/lib/BaseGiven.ts
437
+ var BaseGiven = class {
438
+ constructor(features, whens, thens, givenCB, initialValues) {
439
+ this.artifacts = [];
440
+ this.features = (Array.isArray(features) ? features : []).map((feature) => {
441
+ if (typeof feature === "string")
442
+ return feature;
443
+ if (feature && typeof feature === "object") {
444
+ console.error(
445
+ `[ERROR] Found object in features array: ${feature.name || JSON.stringify(feature)}`
446
+ );
447
+ return "";
448
+ }
449
+ return String(feature);
450
+ }).filter((f) => f !== null && f !== void 0 && f !== "");
451
+ this.whens = Array.isArray(whens) ? whens : [];
452
+ this.thens = Array.isArray(thens) ? thens : [];
453
+ this.givenCB = givenCB;
454
+ this.initialValues = initialValues;
455
+ this.fails = 0;
456
+ }
457
+ addArtifact(path) {
458
+ if (typeof path !== "string") {
459
+ throw new Error(
460
+ `[ARTIFACT ERROR] Expected string, got ${typeof path}: ${JSON.stringify(
461
+ path
462
+ )}`
463
+ );
464
+ }
465
+ const normalizedPath = path.replace(/\\/g, "/");
466
+ this.artifacts.push(normalizedPath);
467
+ }
468
+ beforeAll(store) {
469
+ return store;
470
+ }
471
+ toObj() {
472
+ return {
473
+ key: this.key,
474
+ // name: this.name,
475
+ whens: (this.whens || []).map((w) => {
476
+ if (w && w.toObj)
477
+ return w.toObj();
478
+ console.error("When step is not as expected!", JSON.stringify(w));
479
+ return {};
480
+ }),
481
+ thens: (this.thens || []).map((t) => t && t.toObj ? t.toObj() : {}),
482
+ error: this.error ? [this.error, this.error.stack] : null,
483
+ failed: this.failed,
484
+ features: this.features || [],
485
+ artifacts: this.artifacts
486
+ };
487
+ }
488
+ async afterEach(store, key, artifactory, pm) {
489
+ return store;
490
+ }
491
+ async give(subject, key, testResourceConfiguration, tester, artifactory, tLog, pm, suiteNdx) {
492
+ this.key = key;
493
+ this.fails = 0;
494
+ tLog(`
495
+ ${this.key}`);
496
+ tLog(`
497
+ Given: ${this.name}`);
498
+ const givenArtifactory = (fPath, value) => artifactory(`given-${key}/${fPath}`, value);
499
+ this.uberCatcher((e) => {
500
+ console.error(e.toString());
501
+ this.error = e.error;
502
+ tLog(e.stack);
503
+ });
504
+ try {
505
+ const addArtifact = this.addArtifact.bind(this);
506
+ const proxiedPm = beforeEachProxy(pm, suiteNdx.toString(), addArtifact);
507
+ this.store = await this.givenThat(
508
+ subject,
509
+ testResourceConfiguration,
510
+ givenArtifactory,
511
+ this.givenCB,
512
+ this.initialValues,
513
+ proxiedPm
514
+ );
515
+ } catch (e) {
516
+ this.failed = true;
517
+ this.fails++;
518
+ this.error = e.stack;
519
+ }
520
+ try {
521
+ const whens = this.whens || [];
522
+ if (whens.length > 0) {
523
+ for (const [whenNdx, whenStep] of whens.entries()) {
524
+ if (whenStep && whenStep.name && whenStep.name.startsWith("result:")) {
525
+ this.thens.push(whenStep);
526
+ continue;
527
+ }
528
+ if (whenStep && typeof whenStep.test === "function") {
529
+ try {
530
+ this.store = await whenStep.test(
531
+ this.store,
532
+ testResourceConfiguration,
533
+ tLog,
534
+ pm,
535
+ `suite-${suiteNdx}/given-${key}/when/${whenNdx}`
536
+ );
537
+ } catch (e) {
538
+ this.failed = true;
539
+ this.fails++;
540
+ throw e;
541
+ }
542
+ } else {
543
+ this.failed = true;
544
+ this.fails++;
545
+ throw new Error(`When step ${whenNdx} does not have a test method`);
546
+ }
547
+ }
548
+ } else {
549
+ console.log(`[BaseGiven.give] No when steps to process`);
550
+ }
551
+ for (const [thenNdx, thenStep] of this.thens.entries()) {
552
+ try {
553
+ const t = await thenStep.test(
554
+ this.store,
555
+ testResourceConfiguration,
556
+ tLog,
557
+ pm,
558
+ `suite-${suiteNdx}/given-${key}/then-${thenNdx}`
559
+ );
560
+ tester(t);
561
+ } catch (e) {
562
+ this.failed = true;
563
+ this.fails++;
564
+ throw e;
565
+ }
566
+ }
567
+ } catch (e) {
568
+ this.error = e.stack;
569
+ this.failed = true;
570
+ } finally {
571
+ try {
572
+ const addArtifact = this.addArtifact.bind(this);
573
+ const proxiedPm = afterEachProxy(
574
+ pm,
575
+ suiteNdx.toString(),
576
+ key,
577
+ addArtifact
578
+ );
579
+ await this.afterEach(this.store, this.key, givenArtifactory, proxiedPm);
580
+ } catch (e) {
581
+ this.failed = true;
582
+ this.fails++;
583
+ throw e;
584
+ }
585
+ }
586
+ return this.store;
587
+ }
588
+ };
589
+
590
+ // src/lib/BaseWhen.ts
591
+ var BaseWhen = class {
592
+ constructor(name, whenCB) {
593
+ this.artifacts = [];
594
+ this.name = name;
595
+ this.whenCB = whenCB;
596
+ }
597
+ addArtifact(path) {
598
+ if (typeof path !== "string") {
599
+ throw new Error(
600
+ `[ARTIFACT ERROR] Expected string, got ${typeof path}: ${JSON.stringify(
601
+ path
602
+ )}`
603
+ );
604
+ }
605
+ const normalizedPath = path.replace(/\\/g, "/");
606
+ this.artifacts.push(normalizedPath);
607
+ }
608
+ toObj() {
609
+ const obj = {
610
+ name: this.name,
611
+ error: this.error ? `${this.error.name}: ${this.error.message}
612
+ ${this.error.stack}` : null,
613
+ artifacts: this.artifacts
614
+ };
615
+ console.log(
616
+ `[TOOBJ] Serializing ${this.constructor.name} with artifacts:`,
617
+ obj.artifacts
618
+ );
619
+ return obj;
620
+ }
621
+ async test(store, testResourceConfiguration, tLog, pm, filepath) {
622
+ try {
623
+ const addArtifact = this.addArtifact.bind(this);
624
+ const proxiedPm = andWhenProxy(pm, filepath, addArtifact);
625
+ const result = await this.andWhen(
626
+ store,
627
+ this.whenCB,
628
+ testResourceConfiguration,
629
+ proxiedPm
630
+ );
631
+ return result;
632
+ } catch (e) {
633
+ console.error(
634
+ "[ERROR] When step failed:",
635
+ this.name.toString(),
636
+ e.toString()
637
+ );
638
+ this.error = e;
639
+ throw e;
640
+ }
641
+ }
642
+ };
643
+
644
+ // src/lib/BaseThen.ts
645
+ var BaseThen = class {
646
+ constructor(name, thenCB) {
647
+ this.artifacts = [];
648
+ this.name = name;
649
+ this.thenCB = thenCB;
650
+ this.error = false;
651
+ this.artifacts = [];
652
+ }
653
+ addArtifact(path) {
654
+ if (typeof path !== "string") {
655
+ throw new Error(
656
+ `[ARTIFACT ERROR] Expected string, got ${typeof path}: ${JSON.stringify(
657
+ path
658
+ )}`
659
+ );
660
+ }
661
+ const normalizedPath = path.replace(/\\/g, "/");
662
+ this.artifacts.push(normalizedPath);
663
+ }
664
+ toObj() {
665
+ const obj = {
666
+ name: this.name,
667
+ error: this.error,
668
+ artifacts: this.artifacts
669
+ };
670
+ return obj;
671
+ }
672
+ async test(store, testResourceConfiguration, tLog, pm, filepath) {
673
+ const addArtifact = this.addArtifact.bind(this);
674
+ const proxiedPm = butThenProxy(pm, filepath, addArtifact);
675
+ try {
676
+ return await this.butThen(
677
+ store,
678
+ async (s) => {
679
+ try {
680
+ if (typeof this.thenCB === "function") {
681
+ const result = await this.thenCB(s, proxiedPm);
682
+ return result;
683
+ } else {
684
+ return this.thenCB;
685
+ }
686
+ } catch (e) {
687
+ this.error = true;
688
+ throw e;
689
+ }
690
+ },
691
+ testResourceConfiguration,
692
+ proxiedPm
693
+ );
694
+ } catch (e) {
695
+ this.error = true;
696
+ throw e;
697
+ }
698
+ }
699
+ };
700
+
701
+ // src/lib/Tiposkripto.ts
702
+ var Tiposkripto = class {
703
+ constructor(input, testSpecification, testImplementation, testResourceRequirement = defaultTestResourceRequirement, testAdapter = {}, uberCatcher = (cb) => cb()) {
704
+ this.artifacts = [];
705
+ const fullAdapter = DefaultAdapter(testAdapter);
706
+ const classySuites = Object.entries(testImplementation.suites).reduce(
707
+ (a, [key], index) => {
708
+ a[key] = (somestring, givens) => {
709
+ return new class extends BaseSuite {
710
+ afterAll(store, artifactory, pm) {
711
+ return fullAdapter.afterAll(store, pm);
712
+ }
713
+ assertThat(t) {
714
+ return fullAdapter.assertThis(t);
715
+ }
716
+ async setup(s, artifactory, tr, pm) {
717
+ return fullAdapter.beforeAll?.(s, tr, pm) ?? s;
718
+ }
719
+ }(somestring, index, givens);
720
+ };
721
+ return a;
722
+ },
723
+ {}
724
+ );
725
+ const classyGivens = Object.entries(testImplementation.givens).reduce(
726
+ (a, [key, g]) => {
727
+ a[key] = (features, whens, thens, gcb, initialValues) => {
728
+ const safeFeatures = Array.isArray(features) ? [...features] : [];
729
+ const safeWhens = Array.isArray(whens) ? [...whens] : [];
730
+ const safeThens = Array.isArray(thens) ? [...thens] : [];
731
+ return new class extends BaseGiven {
732
+ constructor() {
733
+ super(...arguments);
734
+ this.uberCatcher = uberCatcher;
735
+ }
736
+ async givenThat(subject, testResource, artifactory, initializer, initialValues2, pm) {
737
+ return fullAdapter.beforeEach(
738
+ subject,
739
+ initializer,
740
+ testResource,
741
+ initialValues2,
742
+ pm
743
+ );
744
+ }
745
+ afterEach(store, key2, artifactory, pm) {
746
+ return Promise.resolve(fullAdapter.afterEach(store, key2, pm));
747
+ }
748
+ }(
749
+ // name,
750
+ safeFeatures,
751
+ safeWhens,
752
+ safeThens,
753
+ testImplementation.givens[key],
754
+ initialValues
755
+ );
756
+ };
757
+ return a;
758
+ },
759
+ {}
760
+ );
761
+ const classyWhens = Object.entries(testImplementation.whens).reduce(
762
+ (a, [key, whEn]) => {
763
+ a[key] = (...payload) => {
764
+ const whenInstance = new class extends BaseWhen {
765
+ async andWhen(store, whenCB, testResource, pm) {
766
+ return await fullAdapter.andWhen(store, whenCB, testResource, pm);
767
+ }
768
+ }(`${key}: ${payload && payload.toString()}`, whEn(...payload));
769
+ return whenInstance;
770
+ };
771
+ return a;
772
+ },
773
+ {}
774
+ );
775
+ const classyThens = Object.entries(testImplementation.thens).reduce(
776
+ (a, [key, thEn]) => {
777
+ a[key] = (...args) => {
778
+ const thenInstance = new class extends BaseThen {
779
+ async butThen(store, thenCB, testResource, pm) {
780
+ return await fullAdapter.butThen(store, thenCB, testResource, pm);
781
+ }
782
+ }(`${key}: ${args && args.toString()}`, thEn(...args));
783
+ return thenInstance;
784
+ };
785
+ return a;
786
+ },
787
+ {}
788
+ );
789
+ this.suitesOverrides = classySuites;
790
+ this.givenOverides = classyGivens;
791
+ this.whenOverides = classyWhens;
792
+ this.thenOverides = classyThens;
793
+ this.testResourceRequirement = testResourceRequirement;
794
+ this.testSpecification = testSpecification;
795
+ this.specs = testSpecification(
796
+ this.Suites(),
797
+ this.Given(),
798
+ this.When(),
799
+ this.Then()
800
+ );
801
+ this.totalTests = this.calculateTotalTests();
802
+ this.testJobs = this.specs.map((suite) => {
803
+ const suiteRunner = (suite2) => async (puppetMaster, tLog) => {
804
+ try {
805
+ const x = await suite2.run(
806
+ input,
807
+ puppetMaster.testResourceConfiguration,
808
+ (fPath, value) => puppetMaster.testArtiFactoryfileWriter(
809
+ tLog,
810
+ (p) => {
811
+ this.artifacts.push(p);
812
+ }
813
+ )(
814
+ puppetMaster.testResourceConfiguration.fs + "/" + fPath,
815
+ value
816
+ ),
817
+ tLog,
818
+ puppetMaster
819
+ );
820
+ return x;
821
+ } catch (e) {
822
+ console.error(e.stack);
823
+ throw e;
824
+ }
825
+ };
826
+ const runner = suiteRunner(suite);
827
+ return {
828
+ test: suite,
829
+ toObj: () => {
830
+ return suite.toObj();
831
+ },
832
+ runner,
833
+ receiveTestResourceConfig: async function(puppetMaster) {
834
+ const tLog = async (...l) => {
835
+ };
836
+ try {
837
+ const suiteDone = await runner(puppetMaster, tLog);
838
+ const fails = suiteDone.fails;
839
+ await puppetMaster.writeFileSync(
840
+ `tests.json`,
841
+ JSON.stringify(this.toObj(), null, 2),
842
+ "test"
843
+ );
844
+ return {
845
+ failed: fails > 0,
846
+ fails,
847
+ artifacts: this.artifacts || [],
848
+ features: suiteDone.features(),
849
+ tests: 0,
850
+ // Keep existing field
851
+ runTimeTests: this.totalTests
852
+ // Add the total number of tests
853
+ };
854
+ } catch (e) {
855
+ console.error(e.stack);
856
+ return {
857
+ failed: true,
858
+ fails: -1,
859
+ artifacts: this.artifacts || [],
860
+ features: [],
861
+ tests: 0,
862
+ // Keep existing field
863
+ runTimeTests: -1
864
+ // Set to -1 on hard error
865
+ };
866
+ }
867
+ }
868
+ };
869
+ });
870
+ }
871
+ Specs() {
872
+ return this.specs;
873
+ }
874
+ Suites() {
875
+ return this.suitesOverrides;
876
+ }
877
+ Given() {
878
+ return this.givenOverides;
879
+ }
880
+ When() {
881
+ return this.whenOverides;
882
+ }
883
+ Then() {
884
+ return this.thenOverides;
885
+ }
886
+ // Add a method to access test jobs which can be used by receiveTestResourceConfig
887
+ getTestJobs() {
888
+ return this.testJobs;
889
+ }
890
+ calculateTotalTests() {
891
+ let total = 0;
892
+ for (const suite of this.specs) {
893
+ if (suite && typeof suite === "object") {
894
+ if ("givens" in suite) {
895
+ const givens = suite.givens;
896
+ if (givens && typeof givens === "object") {
897
+ total += Object.keys(givens).length;
898
+ }
899
+ }
900
+ }
901
+ }
902
+ return total;
903
+ }
904
+ };
905
+
906
+ // src/PM/index.ts
907
+ var PM = class {
908
+ // abstract launchSideCar(
909
+ // n: number
910
+ // ): Promise<[number, ITTestResourceConfiguration]>;
911
+ // abstract stopSideCar(n: number): Promise<any>;
912
+ };
913
+
914
+ // src/PM/pure.ts
915
+ var PM_Pure = class extends PM {
916
+ constructor(t) {
917
+ super();
918
+ this.server = {};
919
+ this.testResourceConfiguration = t;
920
+ }
921
+ getInnerHtml(selector, page) {
922
+ throw new Error("pure.ts getInnerHtml not implemented");
923
+ }
924
+ trackCall(method, args) {
925
+ }
926
+ start() {
927
+ return new Promise((r) => r());
928
+ }
929
+ stop() {
930
+ return new Promise((r) => r());
931
+ }
932
+ async createWriteStream(filepath, testName) {
933
+ throw new Error("pure.ts createWriteStream not implemented");
934
+ }
935
+ pages() {
936
+ return globalThis["pages"]();
937
+ }
938
+ waitForSelector(p, s) {
939
+ return globalThis["waitForSelector"](p, s);
940
+ }
941
+ closePage(p) {
942
+ return globalThis["closePage"](p);
943
+ }
944
+ goto(cdpPage, url) {
945
+ return globalThis["goto"](cdpPage.mainFrame()._id, url);
946
+ }
947
+ newPage() {
948
+ return globalThis["newPage"]();
949
+ }
950
+ $(selector) {
951
+ return globalThis["$"](selector);
952
+ }
953
+ isDisabled(selector) {
954
+ return globalThis["isDisabled"](selector);
955
+ }
956
+ getAttribute(selector, attribute) {
957
+ return globalThis["getAttribute"](selector, attribute);
958
+ }
959
+ getValue(selector) {
960
+ return globalThis["getValue"](selector);
961
+ }
962
+ focusOn(selector) {
963
+ return globalThis["focusOn"](selector);
964
+ }
965
+ typeInto(selector, value) {
966
+ return globalThis["typeInto"](selector, value);
967
+ }
968
+ page() {
969
+ return globalThis["page"]();
970
+ }
971
+ click(selector) {
972
+ return globalThis["click"](selector);
973
+ }
974
+ screencast(opts, page) {
975
+ return globalThis["screencast"](
976
+ {
977
+ ...opts,
978
+ path: this.testResourceConfiguration.fs + "/" + opts.path
979
+ },
980
+ page,
981
+ this.testResourceConfiguration.name
982
+ );
983
+ }
984
+ screencastStop(p) {
985
+ return globalThis["screencastStop"](p);
986
+ }
987
+ customScreenShot(opts, page) {
988
+ return globalThis["customScreenShot"](
989
+ {
990
+ ...opts,
991
+ path: this.testResourceConfiguration.fs + "/" + opts.path
992
+ },
993
+ page,
994
+ this.testResourceConfiguration.name
995
+ );
996
+ }
997
+ // TODO: fix these
998
+ existsSync(destFolder) {
999
+ return Promise.resolve(true);
1000
+ }
1001
+ mkdirSync() {
1002
+ return true;
1003
+ }
1004
+ write(uid, contents) {
1005
+ return Promise.resolve(true);
1006
+ }
1007
+ writeFileSync() {
1008
+ return Promise.resolve(true);
1009
+ }
1010
+ end(uid) {
1011
+ return globalThis["end"](uid);
1012
+ }
1013
+ customclose() {
1014
+ globalThis["customclose"](
1015
+ this.testResourceConfiguration.fs,
1016
+ this.testResourceConfiguration.name
1017
+ );
1018
+ }
1019
+ testArtiFactoryfileWriter(tLog, callback) {
1020
+ return (fPath, value) => {
1021
+ this.trackCall("testArtiFactoryfileWriter", { fPath, value });
1022
+ callback(Promise.resolve());
1023
+ };
1024
+ }
1025
+ // launchSideCar(n: number): Promise<[number, ITTestResourceConfiguration]> {
1026
+ // return globalThis["launchSideCar"](n, this.testResourceConfiguration.name);
1027
+ // }
1028
+ // stopSideCar(uid: number): Promise<any> {
1029
+ // throw new Error("pure.ts stopSideCar not implemented");
1030
+ // }
1031
+ };
1032
+
1033
+ // src/Pure.ts
1034
+ var PureTesteranto = class extends Tiposkripto {
1035
+ constructor(input, testSpecification, testImplementation, testResourceRequirement, testAdapter) {
1036
+ super(
1037
+ input,
1038
+ testSpecification,
1039
+ testImplementation,
1040
+ testResourceRequirement,
1041
+ testAdapter,
1042
+ () => {
1043
+ }
1044
+ );
1045
+ }
1046
+ async receiveTestResourceConfig(partialTestResource) {
1047
+ const t = JSON.parse(partialTestResource);
1048
+ const pm = new PM_Pure(t);
1049
+ try {
1050
+ const result = this.testJobs[0].receiveTestResourceConfig(pm);
1051
+ return result;
1052
+ } catch (e) {
1053
+ console.error("[ERROR] Test job failed:", e);
1054
+ return {
1055
+ failed: true,
1056
+ fails: -1,
1057
+ artifacts: [],
1058
+ // logPromise: Promise.resolve(),
1059
+ features: []
1060
+ };
1061
+ }
1062
+ }
1063
+ };
1064
+ var Pure_default = async (input, testSpecification, testImplementation, testAdapter, testResourceRequirement = defaultTestResourceRequirement) => {
1065
+ return new PureTesteranto(
1066
+ input,
1067
+ testSpecification,
1068
+ testImplementation,
1069
+ testResourceRequirement,
1070
+ testAdapter
1071
+ );
1072
+ };
1073
+
1074
+ export {
1075
+ BaseGiven,
1076
+ BaseWhen,
1077
+ BaseThen,
1078
+ BaseSuite,
1079
+ Pure_default
1080
+ };