testeranto 0.200.0 → 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 (376) hide show
  1. package/README.md +26 -1
  2. package/bundle.js +3 -2
  3. package/design-editor/DesignEditor.tsx +40 -241
  4. package/dist/common/design-editor/DesignEditor.js +33 -198
  5. package/dist/common/src/App.js +158 -16
  6. package/dist/common/src/PM/PM_WithBuild.js +135 -0
  7. package/dist/common/src/PM/PM_WithEslintAndTsc.js +79 -67
  8. package/dist/common/src/PM/PM_WithGit.js +517 -0
  9. package/dist/common/src/PM/PM_WithProcesses.js +519 -0
  10. package/dist/common/src/PM/PM_WithWebSocket.js +535 -0
  11. package/dist/common/src/PM/base.js +62 -0
  12. package/dist/common/src/PM/main.js +533 -1676
  13. package/dist/common/src/PM/metafileOutputs.js +78 -0
  14. package/dist/common/src/PM/node.js +0 -6
  15. package/dist/common/src/PM/pure.js +0 -8
  16. package/dist/common/src/PM/types.js +1 -0
  17. package/dist/common/src/PM/utils.js +210 -0
  18. package/dist/common/src/PM/web.js +0 -6
  19. package/dist/common/src/ReportServer.js +0 -10
  20. package/dist/common/src/ReportServerLib.js +0 -140
  21. package/dist/common/src/components/pure/AppFrame.js +68 -56
  22. package/dist/common/src/components/pure/ArtifactTree.js +80 -0
  23. package/dist/common/src/components/pure/BuildLogViewer.js +106 -0
  24. package/dist/common/src/components/pure/DebugEnv.js +30 -0
  25. package/dist/common/src/components/pure/FileTree.js +34 -0
  26. package/dist/common/src/components/pure/FileTreeItem.js +29 -0
  27. package/dist/common/src/components/pure/GitHubLoginButton.js +18 -0
  28. package/dist/common/src/components/pure/GitIntegrationView.js +342 -0
  29. package/dist/common/src/components/pure/ProcessManager.js +1 -0
  30. package/dist/common/src/components/pure/ProcessManagerView.js +73 -74
  31. package/dist/common/src/components/pure/ProjectPageView.js +4 -117
  32. package/dist/common/src/components/pure/Settings.js +121 -0
  33. package/dist/common/src/components/pure/Settings.test.js +34 -0
  34. package/dist/common/src/components/pure/SignIn.js +22 -0
  35. package/dist/common/src/components/pure/SingleProcessView.js +166 -213
  36. package/dist/common/src/components/pure/TestPageView.js +113 -368
  37. package/dist/common/src/components/pure/TestPageView_utils.js +117 -0
  38. package/dist/common/src/components/pure/TestTable.js +33 -0
  39. package/dist/common/src/components/pure/ToastNotification.js +14 -0
  40. package/dist/common/src/components/pure/UserProfile.js +27 -0
  41. package/dist/common/src/components/stateful/AuthCallbackPage.js +51 -0
  42. package/dist/common/src/components/stateful/FeaturesReporter.js +2 -1
  43. package/dist/common/src/components/stateful/FileTree.js +58 -39
  44. package/dist/common/src/components/stateful/GitIntegrationPage.js +12 -0
  45. package/dist/common/src/components/stateful/ProcessManagerPage.js +13 -15
  46. package/dist/common/src/components/stateful/ProjectPage.js +6 -5
  47. package/dist/common/src/components/stateful/ProjectsPage.js +17 -19
  48. package/dist/common/src/components/stateful/SingleProcessPage.js +16 -26
  49. package/dist/common/src/components/stateful/TestPage.js +7 -5
  50. package/dist/common/src/hooks/useGitMode.js +21 -0
  51. package/dist/common/src/lib/BaseSuite.test/mock.js +15 -8
  52. package/dist/common/src/lib/BaseSuite.test/test.js +56 -80
  53. package/dist/common/src/lib/Tiposkripto.js +24 -0
  54. package/dist/common/src/lib/Tiposkripto.test/MockTiposkripto.js +154 -10
  55. package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.adapter.js +6 -12
  56. package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.implementation.js +63 -23
  57. package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.specification.js +14 -6
  58. package/dist/common/src/lib/pmProxy.test/specification.js +167 -52
  59. package/dist/common/src/services/FileService.js +505 -0
  60. package/dist/common/src/services/GitHubAuthService.js +184 -0
  61. package/dist/common/src/testeranto.js +38 -97
  62. package/dist/common/src/utils/api.js +12 -8
  63. package/dist/common/src/utils/gitTest.js +27 -0
  64. package/dist/common/src/utils.js +23 -13
  65. package/dist/common/testeranto.config.js +21 -17
  66. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  67. package/dist/module/design-editor/DesignEditor.js +33 -199
  68. package/dist/module/src/App.js +121 -15
  69. package/dist/module/src/PM/PM_WithBuild.js +128 -0
  70. package/dist/module/src/PM/PM_WithEslintAndTsc.js +79 -67
  71. package/dist/module/src/PM/PM_WithGit.js +477 -0
  72. package/dist/module/src/PM/PM_WithProcesses.js +479 -0
  73. package/dist/module/src/PM/PM_WithWebSocket.js +528 -0
  74. package/dist/module/src/PM/base.js +62 -0
  75. package/dist/module/src/PM/main.js +533 -1676
  76. package/dist/module/src/PM/metafileOutputs.js +78 -0
  77. package/dist/module/src/PM/node.js +0 -6
  78. package/dist/module/src/PM/pure.js +0 -8
  79. package/dist/module/src/PM/types.js +1 -1
  80. package/dist/module/src/PM/utils.js +196 -0
  81. package/dist/module/src/PM/web.js +0 -6
  82. package/dist/module/src/ReportServer.js +1 -9
  83. package/dist/module/src/ReportServerLib.js +1 -134
  84. package/dist/module/src/components/pure/AppFrame.js +66 -24
  85. package/dist/module/src/components/pure/ArtifactTree.js +80 -0
  86. package/dist/module/src/components/pure/BuildLogViewer.js +99 -0
  87. package/dist/module/src/components/pure/DebugEnv.js +23 -0
  88. package/dist/module/src/components/pure/FileTree.js +27 -0
  89. package/dist/module/src/components/pure/FileTreeItem.js +22 -0
  90. package/dist/module/src/components/pure/GitHubLoginButton.js +11 -0
  91. package/dist/module/src/components/pure/GitIntegrationView.js +305 -0
  92. package/dist/module/src/components/pure/ProcessManager.js +1 -0
  93. package/dist/module/src/components/pure/ProcessManagerView.js +74 -75
  94. package/dist/module/src/components/pure/ProjectPageView.js +5 -118
  95. package/dist/module/src/components/pure/Settings.js +84 -0
  96. package/dist/module/src/components/pure/Settings.test.js +29 -0
  97. package/dist/module/src/components/pure/SignIn.js +15 -0
  98. package/dist/module/src/components/pure/SingleProcessView.js +130 -214
  99. package/dist/module/src/components/pure/TestPageView.js +97 -352
  100. package/dist/module/src/components/pure/TestPageView_utils.js +109 -0
  101. package/dist/module/src/components/pure/TestTable.js +26 -0
  102. package/dist/module/src/components/pure/ToastNotification.js +7 -0
  103. package/dist/module/src/components/pure/UserProfile.js +20 -0
  104. package/dist/module/src/components/stateful/AuthCallbackPage.js +14 -0
  105. package/dist/module/src/components/stateful/FeaturesReporter.js +2 -1
  106. package/dist/module/src/components/stateful/FileTree.js +59 -33
  107. package/dist/module/src/components/stateful/GitIntegrationPage.js +5 -0
  108. package/dist/module/src/components/stateful/ProcessManagerPage.js +13 -15
  109. package/dist/module/src/components/stateful/ProjectPage.js +6 -5
  110. package/dist/module/src/components/stateful/ProjectsPage.js +16 -18
  111. package/dist/module/src/components/stateful/SingleProcessPage.js +16 -26
  112. package/dist/module/src/components/stateful/TestPage.js +8 -6
  113. package/dist/module/src/hooks/useGitMode.js +17 -0
  114. package/dist/module/src/lib/BaseSuite.test/mock.js +15 -8
  115. package/dist/module/src/lib/BaseSuite.test/test.js +56 -80
  116. package/dist/module/src/lib/Tiposkripto.js +24 -0
  117. package/dist/module/src/lib/Tiposkripto.test/MockTiposkripto.js +154 -10
  118. package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.adapter.js +6 -12
  119. package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.implementation.js +63 -23
  120. package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.specification.js +14 -6
  121. package/dist/module/src/lib/pmProxy.test/specification.js +167 -52
  122. package/dist/module/src/services/FileService.js +468 -0
  123. package/dist/module/src/services/GitHubAuthService.js +180 -0
  124. package/dist/module/src/testeranto.js +38 -97
  125. package/dist/module/src/utils/api.js +10 -7
  126. package/dist/module/src/utils/gitTest.js +23 -0
  127. package/dist/module/src/utils.js +21 -12
  128. package/dist/module/testeranto.config.js +21 -17
  129. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  130. package/dist/prebuild/App.css +94 -121
  131. package/dist/prebuild/App.js +44601 -11225
  132. package/dist/prebuild/testeranto.mjs +4106 -0
  133. package/dist/types/design-editor/DesignEditor.d.ts +1 -18
  134. package/dist/types/src/App.d.ts +18 -0
  135. package/dist/types/src/PM/PM_WithBuild.d.ts +13 -0
  136. package/dist/types/src/PM/PM_WithEslintAndTsc.d.ts +2 -4
  137. package/dist/types/src/PM/PM_WithGit.d.ts +27 -0
  138. package/dist/types/src/PM/PM_WithProcesses.d.ts +29 -0
  139. package/dist/types/src/PM/PM_WithWebSocket.d.ts +108 -0
  140. package/dist/types/src/PM/base.d.ts +1 -1
  141. package/dist/types/src/PM/index.d.ts +0 -2
  142. package/dist/types/src/PM/main.d.ts +6 -77
  143. package/dist/types/src/PM/metafileOutputs.d.ts +0 -0
  144. package/dist/types/src/PM/node.d.ts +0 -2
  145. package/dist/types/src/PM/pure.d.ts +0 -2
  146. package/dist/types/src/PM/types.d.ts +118 -0
  147. package/dist/types/src/PM/utils.d.ts +35 -0
  148. package/dist/types/src/PM/web.d.ts +0 -2
  149. package/dist/types/src/Pure.d.ts +6 -1
  150. package/dist/types/src/ReportServer.d.ts +0 -1
  151. package/dist/types/src/ReportServerLib.d.ts +0 -1
  152. package/dist/types/src/Types.d.ts +1 -0
  153. package/dist/types/src/components/pure/ArtifactTree.d.ts +0 -0
  154. package/dist/types/src/components/pure/BuildLogViewer.d.ts +7 -0
  155. package/dist/types/src/components/pure/DebugEnv.d.ts +2 -0
  156. package/dist/types/src/components/pure/FileTree.d.ts +6 -0
  157. package/dist/types/src/components/pure/FileTreeItem.d.ts +8 -0
  158. package/dist/types/src/components/pure/GitHubLoginButton.d.ts +8 -0
  159. package/dist/types/src/components/pure/GitIntegrationView.d.ts +1 -0
  160. package/dist/types/src/components/pure/Settings.d.ts +1 -0
  161. package/dist/types/src/components/pure/Settings.test.d.ts +1 -0
  162. package/dist/types/src/components/pure/SignIn.d.ts +1 -0
  163. package/dist/types/src/components/pure/SingleProcessView.d.ts +10 -0
  164. package/dist/types/src/components/pure/TestPageView.d.ts +2 -1
  165. package/dist/types/src/components/pure/TestPageView_utils.d.ts +23 -0
  166. package/dist/types/src/components/pure/TestTable.d.ts +16 -0
  167. package/dist/types/src/components/pure/ToastNotification.d.ts +6 -0
  168. package/dist/types/src/components/pure/UserProfile.d.ts +2 -0
  169. package/dist/types/src/components/stateful/AuthCallbackPage.d.ts +2 -0
  170. package/dist/types/src/components/stateful/FileTree.d.ts +0 -8
  171. package/dist/types/src/components/stateful/GitIntegrationPage.d.ts +1 -0
  172. package/dist/types/src/hooks/useGitMode.d.ts +7 -0
  173. package/dist/types/src/lib/BaseSuite.test/mock.d.ts +2 -2
  174. package/dist/types/src/lib/BaseSuite.test/test.d.ts +4 -3
  175. package/dist/types/src/lib/Tiposkripto.d.ts +2 -0
  176. package/dist/types/src/lib/Tiposkripto.test/MockTiposkripto.d.ts +3 -0
  177. package/dist/types/src/lib/Tiposkripto.test/Tiposkripto.types.d.ts +5 -0
  178. package/dist/types/src/lib/index.d.ts +6 -0
  179. package/dist/types/src/services/FileService.d.ts +34 -0
  180. package/dist/types/src/services/GitHubAuthService.d.ts +32 -0
  181. package/dist/types/src/utils/api.d.ts +1 -0
  182. package/dist/types/src/utils/gitTest.d.ts +11 -0
  183. package/dist/types/src/utils.d.ts +3 -3
  184. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  185. package/example/__pycache__/Calculator.cpython-313.pyc +0 -0
  186. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/README.md +187 -0
  187. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/base_given.go +163 -0
  188. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/base_suite.go +85 -0
  189. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/base_then.go +21 -0
  190. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/base_when.go +21 -0
  191. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/golingvu.go +554 -0
  192. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/test_adapter.go +33 -0
  193. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/types.go +72 -0
  194. package/example/vendor/modules.txt +5 -0
  195. package/git-integration-plan.md +395 -0
  196. package/package.json +26 -14
  197. package/src/App.tsx +169 -18
  198. package/src/PM/PM_WithBuild.ts +171 -0
  199. package/src/PM/PM_WithEslintAndTsc.ts +109 -86
  200. package/src/PM/PM_WithGit.ts +585 -0
  201. package/src/PM/PM_WithProcesses.ts +639 -0
  202. package/src/PM/PM_WithWebSocket.ts +631 -0
  203. package/src/PM/base.ts +63 -1
  204. package/src/PM/index.ts +8 -5
  205. package/src/PM/main.ts +672 -2050
  206. package/src/PM/metafileOutputs.ts +90 -0
  207. package/src/PM/node.ts +18 -18
  208. package/src/PM/pure.ts +5 -13
  209. package/src/PM/types.ts +145 -0
  210. package/src/PM/utils.ts +256 -0
  211. package/src/PM/web.ts +8 -8
  212. package/src/README.md +122 -0
  213. package/src/ReportServer.ts +0 -12
  214. package/src/ReportServerLib.ts +0 -147
  215. package/src/Types.ts +1 -0
  216. package/src/app.scss +14 -164
  217. package/src/components/pure/AppFrame.tsx +237 -71
  218. package/src/components/pure/ArtifactTree.tsx +82 -0
  219. package/src/components/pure/BuildLogViewer.tsx +168 -0
  220. package/src/components/pure/DebugEnv.tsx +30 -0
  221. package/src/components/pure/FileTree.tsx +58 -0
  222. package/src/components/pure/FileTreeItem.tsx +49 -0
  223. package/src/components/pure/GitHubLoginButton.tsx +31 -0
  224. package/src/components/pure/GitIntegrationView.tsx +443 -0
  225. package/src/components/pure/ProcessManager.tsx +6 -5
  226. package/src/components/pure/ProcessManagerView.tsx +162 -166
  227. package/src/components/pure/ProjectPageView.tsx +6 -224
  228. package/src/components/pure/Settings.test.tsx +34 -0
  229. package/src/components/pure/Settings.tsx +163 -0
  230. package/src/components/pure/SignIn.tsx +33 -0
  231. package/src/components/pure/SingleProcessView.tsx +231 -235
  232. package/src/components/pure/TestPageView.test/specification.ts +1 -0
  233. package/src/components/pure/TestPageView.tsx +317 -826
  234. package/src/components/pure/TestPageView_utils.tsx +285 -0
  235. package/src/components/pure/TestTable.tsx +88 -0
  236. package/src/components/pure/ToastNotification.tsx +19 -0
  237. package/src/components/pure/UserProfile.tsx +44 -0
  238. package/src/components/stateful/AuthCallbackPage.tsx +21 -0
  239. package/src/components/stateful/FeaturesReporter.tsx +3 -1
  240. package/src/components/stateful/FileTree.tsx +58 -58
  241. package/src/components/stateful/GitIntegrationPage.tsx +8 -0
  242. package/src/components/stateful/ProcessManagerPage.tsx +13 -17
  243. package/src/components/stateful/ProjectPage.tsx +6 -5
  244. package/src/components/stateful/ProjectsPage.tsx +17 -19
  245. package/src/components/stateful/SVGEditor/CircleForm.tsx +68 -0
  246. package/src/components/stateful/SVGEditor/GroupForm.tsx +56 -0
  247. package/src/components/stateful/SVGEditor/RectForm.tsx +74 -0
  248. package/src/components/stateful/SVGEditor/SVGAttributeField.tsx +29 -0
  249. package/src/components/stateful/SVGEditor/SVGAttributesEditor.tsx +73 -0
  250. package/src/components/stateful/SVGEditor/SVGEditorControls.tsx +45 -0
  251. package/src/components/stateful/SVGEditor/SVGElementForm.tsx +45 -0
  252. package/src/components/stateful/SVGEditor/SVGPreview.tsx +225 -0
  253. package/src/components/stateful/SVGEditor/SVGTextEditor.tsx +166 -0
  254. package/src/components/stateful/SVGEditor/SVGTree.tsx +159 -0
  255. package/src/components/stateful/SVGEditor/SVGTypes.ts +36 -0
  256. package/src/components/stateful/SVGEditor/svg.xsd.xml +3038 -0
  257. package/src/components/stateful/SVGEditorPage.tsx +503 -0
  258. package/src/components/stateful/SingleProcessPage.tsx +18 -31
  259. package/src/components/stateful/TestPage.tsx +25 -22
  260. package/src/golingvu/golingvu.go +38 -2
  261. package/src/hooks/useGitMode.ts +20 -0
  262. package/src/lib/BaseSuite.test/mock.ts +16 -10
  263. package/src/lib/BaseSuite.test/test.ts +144 -103
  264. package/src/lib/Tiposkripto.test/MockTiposkripto.ts +178 -14
  265. package/src/lib/Tiposkripto.test/Tiposkripto.adapter.ts +9 -14
  266. package/src/lib/Tiposkripto.test/Tiposkripto.implementation.ts +78 -38
  267. package/src/lib/Tiposkripto.test/Tiposkripto.specification.ts +51 -9
  268. package/src/lib/Tiposkripto.test/Tiposkripto.types.ts +5 -0
  269. package/src/lib/Tiposkripto.ts +27 -0
  270. package/src/lib/index.ts +7 -0
  271. package/src/lib/pmProxy.test/specification.ts +168 -166
  272. package/src/pitono/PM/__pycache__/python.cpython-313.pyc +0 -0
  273. package/src/pitono/__pycache__/Pitono.cpython-313.pyc +0 -0
  274. package/src/pitono/__pycache__/__init__.cpython-313.pyc +0 -0
  275. package/src/pitono/__pycache__/base_given.cpython-313.pyc +0 -0
  276. package/src/pitono/__pycache__/base_suite.cpython-313.pyc +0 -0
  277. package/src/pitono/__pycache__/base_then.cpython-313.pyc +0 -0
  278. package/src/pitono/__pycache__/base_when.cpython-313.pyc +0 -0
  279. package/src/pitono/__pycache__/core_generator.cpython-313.pyc +0 -0
  280. package/src/pitono/__pycache__/simple_adapter.cpython-313.pyc +0 -0
  281. package/src/pitono/__pycache__/types.cpython-313.pyc +0 -0
  282. package/src/services/FileService.ts +542 -0
  283. package/src/services/GitHubAuthService.ts +240 -0
  284. package/src/testeranto.ts +62 -140
  285. package/src/utils/api.ts +15 -13
  286. package/src/utils/gitTest.ts +29 -0
  287. package/src/utils.ts +21 -12
  288. package/testeranto/App.css +94 -121
  289. package/testeranto/App.js +44601 -11225
  290. package/testeranto/bundles/golang/core/Calculator.golingvu.go +53 -0
  291. package/testeranto/bundles/golang/core/Calculator.golingvu.golingvu.go +53 -0
  292. package/testeranto/bundles/node/core/chunk-RIM6RECA.mjs +1170 -0
  293. package/testeranto/bundles/node/core/chunk-VXVF7WFO.mjs +4321 -0
  294. package/testeranto/bundles/node/core/example/Calculator.test.mjs +503 -0
  295. package/testeranto/bundles/node/core/src/lib/BaseSuite.test/node.test.mjs +94 -1231
  296. package/testeranto/bundles/node/core/src/lib/TipoSkripto.test/TipoSkripto.mjs +574 -0
  297. package/testeranto/bundles/node/core/src/lib/pmProxy.test/index.mjs +482 -0
  298. package/testeranto/bundles/pure/core/chunk-XYOCRDEQ.mjs +1080 -0
  299. package/testeranto/bundles/pure/core/src/Pure.test.mjs +410 -0
  300. package/testeranto/bundles/pure/core/src/lib/BaseSuite.test/pure.test.mjs +93 -1146
  301. package/testeranto/bundles/python/core/Calculator.pitono.test.py +24 -0
  302. package/testeranto/bundles/python/core/test_example.py +24 -0
  303. package/testeranto/bundles/web/core/MPLUSRounded1c-Black-O75GP5JI.ttf +0 -0
  304. package/testeranto/bundles/web/core/MPLUSRounded1c-Bold-R524Q5BH.ttf +0 -0
  305. package/testeranto/bundles/web/core/MPLUSRounded1c-ExtraBold-C6GRMYVT.ttf +0 -0
  306. package/testeranto/bundles/web/core/MPLUSRounded1c-Light-WKN65Y2C.ttf +0 -0
  307. package/testeranto/bundles/web/core/MPLUSRounded1c-Medium-ZC4DWL7C.ttf +0 -0
  308. package/testeranto/bundles/web/core/MPLUSRounded1c-Regular-DT6EKZ3S.ttf +0 -0
  309. package/testeranto/bundles/web/core/MPLUSRounded1c-Thin-YWDNVG6M.ttf +0 -0
  310. package/testeranto/bundles/web/core/chunk-DFRN4SYZ.mjs +2297 -0
  311. package/testeranto/bundles/web/core/chunk-JMDLMADH.mjs +27996 -0
  312. package/testeranto/bundles/web/core/chunk-LQMU5NCG.mjs +3082 -0
  313. package/testeranto/bundles/web/core/chunk-Q5TONB2Z.mjs +6874 -0
  314. package/testeranto/bundles/web/core/src/components/pure/FeaturesReporterView.test/index.mjs +164 -0
  315. package/testeranto/bundles/web/core/src/components/pure/ModalContent.test/index.css +11697 -0
  316. package/testeranto/bundles/web/core/src/components/pure/ModalContent.test/index.mjs +336 -0
  317. package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.css +11697 -0
  318. package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.mjs +517 -0
  319. package/testeranto/bundles/web/core/src/lib/BaseSuite.test/web.test.mjs +107 -1134
  320. package/testeranto/metafiles/golang/core.json +3 -3
  321. package/testeranto/metafiles/node/core.json +474 -31
  322. package/testeranto/metafiles/pure/core.json +144 -28
  323. package/testeranto/metafiles/python/core.json +11 -0
  324. package/testeranto/metafiles/web/core.json +15829 -45
  325. package/testeranto/reports/core/config.json +40 -0
  326. package/testeranto/reports/core/src/Pure.test/pure/exit.log +0 -0
  327. package/testeranto/reports/core/src/Pure.test/pure/lint_errors.txt +0 -0
  328. package/testeranto/reports/core/src/Pure.test/pure/prompt.txt +14 -0
  329. package/testeranto/reports/core/src/Pure.test/pure/type_errors.txt +73 -0
  330. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/debug.log +0 -0
  331. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/error.log +91 -0
  332. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/exit.log +1 -0
  333. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/info.log +2 -0
  334. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/tests.json +68 -0
  335. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/warn.log +0 -0
  336. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/debug.log +0 -0
  337. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/error.log +30 -0
  338. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/exit.log +1 -0
  339. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/info.log +2 -0
  340. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/tests.json +88 -0
  341. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/warn.log +0 -0
  342. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/lint_errors.txt +0 -6
  343. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/prompt.txt +0 -11
  344. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/stdout.log +1 -0
  345. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/tests.json +1 -1
  346. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/type_errors.txt +35 -38
  347. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/lint_errors.txt +0 -2
  348. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/prompt.txt +0 -10
  349. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/type_errors.txt +40 -38
  350. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/tests.json +1 -1
  351. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/exit.log +1 -0
  352. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/lint_errors.txt +0 -0
  353. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/message.txt +17 -0
  354. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/prompt.txt +17 -0
  355. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/stderr.log +55 -0
  356. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/stdout.log +191 -0
  357. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/type_errors.txt +71 -0
  358. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/exit.log +1 -0
  359. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/lint_errors.txt +15 -0
  360. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/message.txt +17 -0
  361. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/prompt.txt +17 -0
  362. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stderr.log +20 -0
  363. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stdout.log +4 -0
  364. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/type_errors.txt +49 -0
  365. package/testeranto/reports/core/summary.json +34 -6
  366. package/testeranto.config.ts +26 -20
  367. package/tsc.log +141 -91
  368. package/tsconfig.json +6 -2
  369. package/dist/prebuild/ReportServer.mjs +0 -227
  370. package/dist/prebuild/mothership/index.mjs +0 -22
  371. package/dist/types/design-editor/server.d.ts +0 -1
  372. package/testeranto/bundles/web/core/src/lib/BaseSuite.test/web.test.html +0 -15
  373. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/lint_errors.txt +0 -2
  374. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/prompt.txt +0 -25
  375. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/type_errors.txt +0 -56
  376. /package/testeranto/reports/core/src/{lib/BaseSuite.test/web.test/web → Pure.test/pure}/message.txt +0 -0
@@ -0,0 +1,240 @@
1
+ interface GitHubUser {
2
+ login: string;
3
+ id: number;
4
+ avatar_url: string;
5
+ name: string;
6
+ email: string;
7
+ }
8
+
9
+ type EventListener = (...args: any[]) => void;
10
+
11
+ export class GitHubAuthService {
12
+ private static get CLIENT_ID(): string | undefined {
13
+ // Read from the global configuration
14
+ if (
15
+ typeof window !== "undefined" &&
16
+ (window as any).testerantoConfig?.githubOAuth?.clientId
17
+ ) {
18
+ return (window as any).testerantoConfig.githubOAuth.clientId;
19
+ }
20
+ console.log("GitHub OAuth client ID not found in configuration");
21
+ return undefined;
22
+ }
23
+ private static readonly REDIRECT_URI = `${window.location.origin}/auth/github/callback`;
24
+ private static readonly SCOPE = "repo user";
25
+
26
+ private accessToken: string | null = null;
27
+ private user: GitHubUser | null = null;
28
+ private listeners: Map<string, EventListener[]> = new Map();
29
+
30
+ constructor() {
31
+ this.loadStoredAuth();
32
+ }
33
+
34
+ on(event: string, listener: EventListener) {
35
+ if (!this.listeners.has(event)) {
36
+ this.listeners.set(event, []);
37
+ }
38
+ this.listeners.get(event)!.push(listener);
39
+ }
40
+
41
+ off(event: string, listener: EventListener) {
42
+ const eventListeners = this.listeners.get(event);
43
+ if (eventListeners) {
44
+ const index = eventListeners.indexOf(listener);
45
+ if (index > -1) {
46
+ eventListeners.splice(index, 1);
47
+ }
48
+ }
49
+ }
50
+
51
+ emit(event: string, ...args: any[]) {
52
+ const eventListeners = this.listeners.get(event);
53
+ if (eventListeners) {
54
+ eventListeners.forEach((listener) => {
55
+ try {
56
+ listener(...args);
57
+ } catch (error) {
58
+ console.error(`Error in event listener for ${event}:`, error);
59
+ }
60
+ });
61
+ }
62
+ }
63
+
64
+ private loadStoredAuth() {
65
+ const token = localStorage.getItem("github_access_token");
66
+ const userStr = localStorage.getItem("github_user");
67
+
68
+ if (token) {
69
+ this.accessToken = token;
70
+ }
71
+
72
+ if (userStr) {
73
+ this.user = JSON.parse(userStr);
74
+ }
75
+ }
76
+
77
+ get isAuthenticated(): boolean {
78
+ return !!this.accessToken;
79
+ }
80
+
81
+ get userInfo(): GitHubUser | null {
82
+ return this.user;
83
+ }
84
+
85
+ get token(): string | null {
86
+ return this.accessToken;
87
+ }
88
+
89
+ initiateLogin() {
90
+ const clientId = GitHubAuthService.CLIENT_ID;
91
+ console.log("Initiating login with CLIENT_ID:", clientId);
92
+
93
+ if (!clientId) {
94
+ console.error(
95
+ "GitHub OAuth client ID is not configured. Please set GITHUB_CLIENT_ID environment variable."
96
+ );
97
+
98
+ // Provide helpful instructions for setup
99
+ const setupInstructions = `
100
+ GitHub authentication is not configured.
101
+
102
+ To set up GitHub OAuth:
103
+
104
+ 1. Go to https://github.com/settings/developers
105
+ 2. Create a new OAuth App
106
+ 3. Set Authorization callback URL to: ${GitHubAuthService.REDIRECT_URI}
107
+ 4. Add GITHUB_CLIENT_ID to your environment variables
108
+ 5. Restart the development server
109
+
110
+ For development, you can create a .env file in the root directory with:
111
+ GITHUB_CLIENT_ID=your_client_id_here
112
+
113
+ Current environment analysis:
114
+ - process.env.GITHUB_CLIENT_ID: ${
115
+ typeof process !== "undefined"
116
+ ? process.env?.GITHUB_CLIENT_ID || "undefined"
117
+ : "process undefined"
118
+ }
119
+ - window.env.GITHUB_CLIENT_ID: ${
120
+ typeof window !== "undefined"
121
+ ? (window as any).env?.GITHUB_CLIENT_ID || "undefined"
122
+ : "window undefined"
123
+ }
124
+ `;
125
+
126
+ alert(setupInstructions);
127
+ return;
128
+ }
129
+ const authUrl = `https://github.com/login/oauth/authorize?client_id=${clientId}&redirect_uri=${encodeURIComponent(
130
+ GitHubAuthService.REDIRECT_URI
131
+ )}&scope=${encodeURIComponent(GitHubAuthService.SCOPE)}`;
132
+ console.log("Opening auth popup:", authUrl);
133
+
134
+ // Open in a popup window
135
+ const width = 600;
136
+ const height = 700;
137
+ const left = (window.screen.width - width) / 2;
138
+ const top = (window.screen.height - height) / 2;
139
+
140
+ window.open(
141
+ authUrl,
142
+ 'github-auth',
143
+ `width=${width},height=${height},left=${left},top=${top},resizable=yes,scrollbars=yes,status=yes`
144
+ );
145
+ }
146
+
147
+ async handleCallback(code: string): Promise<boolean> {
148
+ try {
149
+ const response = await fetch("/api/auth/github/token", {
150
+ method: "POST",
151
+ headers: {
152
+ "Content-Type": "application/json",
153
+ },
154
+ body: JSON.stringify({ code }),
155
+ });
156
+
157
+ if (!response.ok) {
158
+ throw new Error("Failed to exchange code for token");
159
+ }
160
+
161
+ const data = await response.json();
162
+ this.accessToken = data.access_token;
163
+
164
+ // Store token
165
+ localStorage.setItem("github_access_token", this.accessToken);
166
+
167
+ // Get user info
168
+ await this.fetchUserInfo();
169
+
170
+ this.emit("authChange", true);
171
+ return true;
172
+ } catch (error) {
173
+ console.error("Authentication failed:", error);
174
+ this.logout();
175
+ return false;
176
+ }
177
+ }
178
+
179
+ private async fetchUserInfo() {
180
+ if (!this.accessToken) return;
181
+
182
+ try {
183
+ const response = await fetch("https://api.github.com/user", {
184
+ headers: {
185
+ Authorization: `Bearer ${this.accessToken}`,
186
+ Accept: "application/vnd.github.v3+json",
187
+ },
188
+ });
189
+
190
+ if (!response.ok) {
191
+ throw new Error("Failed to fetch user info");
192
+ }
193
+
194
+ this.user = await response.json();
195
+ localStorage.setItem("github_user", JSON.stringify(this.user));
196
+ } catch (error) {
197
+ console.error("Failed to fetch user info:", error);
198
+ }
199
+ }
200
+
201
+ logout() {
202
+ this.accessToken = null;
203
+ this.user = null;
204
+ localStorage.removeItem("github_access_token");
205
+ localStorage.removeItem("github_user");
206
+ this.emit("authChange", false);
207
+ }
208
+
209
+ isConfigured(): boolean {
210
+ const clientId = GitHubAuthService.CLIENT_ID;
211
+ console.log("Checking if configured - CLIENT_ID:", clientId);
212
+ return !!clientId;
213
+ }
214
+
215
+ async makeAuthenticatedRequest(url: string, options: RequestInit = {}) {
216
+ if (!this.accessToken) {
217
+ throw new Error("Not authenticated");
218
+ }
219
+
220
+ const headers = {
221
+ Authorization: `Bearer ${this.accessToken}`,
222
+ Accept: "application/vnd.github.v3+json",
223
+ ...options.headers,
224
+ };
225
+
226
+ const response = await fetch(url, {
227
+ ...options,
228
+ headers,
229
+ });
230
+
231
+ if (response.status === 401) {
232
+ this.logout();
233
+ throw new Error("Authentication expired");
234
+ }
235
+
236
+ return response;
237
+ }
238
+ }
239
+
240
+ export const githubAuthService = new GitHubAuthService();
package/src/testeranto.ts CHANGED
@@ -4,19 +4,25 @@ import ansiC from "ansi-colors";
4
4
  import fs from "fs";
5
5
  import path from "path";
6
6
  import readline from "readline";
7
- import esbuild from "esbuild";
8
7
 
9
8
  import { ITestconfig, IRunTime, ITestTypes, IBuiltConfig } from "./lib";
10
9
  import { IProject } from "./Types";
11
10
  import { getRunnables } from "./utils";
12
11
  import { AppHtml } from "./utils/buildTemplates";
13
12
 
14
- import esbuildNodeConfiger from "./esbuildConfigs/node";
15
- import esbuildWebConfiger from "./esbuildConfigs/web";
16
- import esbuildImportConfiger from "./esbuildConfigs/pure";
17
13
  import webHtmlFrame from "./web.html";
18
14
  import { PM_Main } from "./PM/main";
19
15
 
16
+ if (!process.env.GITHUB_CLIENT_ID) {
17
+ console.error(`env var "GITHUB_CLIENT_ID" needs to be set!`);
18
+ process.exit(-1);
19
+ }
20
+
21
+ if (!process.env.GITHUB_CLIENT_SECRET) {
22
+ console.error(`env var "GITHUB_CLIENT_SECRET" needs to be set!`);
23
+ process.exit(-1);
24
+ }
25
+
20
26
  readline.emitKeypressEvents(process.stdin);
21
27
  if (process.stdin.isTTY) process.stdin.setRawMode(true);
22
28
 
@@ -42,10 +48,15 @@ import(f).then(async (module) => {
42
48
  process.exit(-1);
43
49
  }
44
50
 
45
- fs.writeFileSync(
46
- `${process.cwd()}/testeranto/projects.json`,
47
- JSON.stringify(Object.keys(bigConfig.projects), null, 2)
48
- );
51
+ try {
52
+ fs.writeFileSync(
53
+ `${process.cwd()}/testeranto/projects.json`,
54
+ JSON.stringify(Object.keys(bigConfig.projects), null, 2)
55
+ );
56
+ } catch (e) {
57
+ console.error("there was a problem");
58
+ console.error(e);
59
+ }
49
60
 
50
61
  const rawConfig: ITestconfig = bigConfig.projects[testName];
51
62
 
@@ -77,79 +88,11 @@ import(f).then(async (module) => {
77
88
  }
78
89
  });
79
90
 
80
- let nodeDone: boolean = false;
81
- let webDone: boolean = false;
82
- let importDone: boolean = false;
83
- let golangDone: boolean = false;
84
- let pitonoDone: boolean = false;
85
-
86
- let status: "build" | "built" = "build";
87
-
88
- const {
89
- nodeEntryPoints,
90
- nodeEntryPointSidecars,
91
- webEntryPoints,
92
- webEntryPointSidecars,
93
- pureEntryPoints,
94
- pureEntryPointSidecars,
95
- } = getRunnables(config.tests, testName);
96
-
97
- const onNodeDone = () => {
98
- nodeDone = true;
99
- onDone();
100
- };
101
-
102
- const onWebDone = () => {
103
- webDone = true;
104
- onDone();
105
- };
106
-
107
- const onImportDone = () => {
108
- importDone = true;
109
- onDone();
110
- };
111
-
112
- const onGolangDone = () => {
113
- golangDone = true;
114
- onDone();
115
- };
116
-
117
- const onPitonoDone = () => {
118
- pitonoDone = true;
119
- onDone();
120
- };
121
-
122
91
  let pm: PM_Main | null = null;
123
- const onDone = async () => {
124
- // Check which test types are present
125
- const hasGolangTests = config.tests.some(test => test[1] === 'golang');
126
- const hasPitonoTests = config.tests.some(test => test[1] === 'pitono');
127
-
128
- // Wait for all relevant runtimes to be done
129
- const allDone =
130
- nodeDone && webDone && importDone &&
131
- (!hasGolangTests || golangDone) &&
132
- (!hasPitonoTests || pitonoDone);
133
-
134
- if (allDone) {
135
- status = "built";
136
-
137
- // Start the PM_Main to run the tests after build
138
- if (!pm) {
139
- const { PM_Main } = await import("./PM/main");
140
- pm = new PM_Main(config, testName, mode);
141
- await pm.start();
142
- }
143
- }
144
- if (allDone && mode === "once") {
145
- console.log(
146
- ansiC.inverse(
147
- `${testName} was built and the builder exited successfully.`
148
- )
149
- );
150
- // Let PM_Main handle the exit after tests are complete
151
- }
152
- };
92
+ // Start PM_Main immediately - it will handle the build processes internally
93
+ const { PM_Main } = await import("./PM/main");
94
+ pm = new PM_Main(config, testName, mode);
95
+ await pm.start();
153
96
 
154
97
  fs.writeFileSync(`${process.cwd()}/testeranto/projects.html`, AppHtml());
155
98
 
@@ -181,47 +124,60 @@ import(f).then(async (module) => {
181
124
  };
182
125
 
183
126
  // Also handle pitono endpoints for HTML generation if needed
184
- [...getSecondaryEndpointsPoints("pitono")].forEach(async (sourceFilePath) => {
127
+ [...getSecondaryEndpointsPoints("python")].forEach(async (sourceFilePath) => {
185
128
  // You might want to generate specific files for pitono tests here
186
129
  console.log(`Pitono test found: ${sourceFilePath}`);
187
130
  });
188
131
 
189
132
  // Handle golang tests by generating their metafiles
190
- const golangTests = config.tests.filter(test => test[1] === 'golang');
133
+ const golangTests = config.tests.filter((test) => test[1] === "golang");
191
134
  const hasGolangTests = golangTests.length > 0;
192
135
  if (hasGolangTests) {
193
136
  // Import and use the golang metafile utilities
194
- const { generateGolangMetafile, writeGolangMetafile } = await import('./utils/golingvuMetafile');
137
+ const { generateGolangMetafile, writeGolangMetafile } = await import(
138
+ "./utils/golingvuMetafile"
139
+ );
195
140
  // Get the entry points (first element of each test tuple)
196
- const golangEntryPoints = golangTests.map(test => test[0]);
141
+ const golangEntryPoints = golangTests.map((test) => test[0]);
197
142
  const metafile = await generateGolangMetafile(testName, golangEntryPoints);
198
143
  writeGolangMetafile(testName, metafile);
199
144
  // Mark golang as done after writing the metafile
200
- onGolangDone();
145
+ // onGolangDone();
201
146
  }
202
147
 
203
148
  // Handle pitono (Python) tests by generating their metafiles
204
- const pitonoTests = config.tests.filter(test => test[1] === 'pitono');
149
+ const pitonoTests = config.tests.filter((test) => test[1] === "python");
205
150
  const hasPitonoTests = pitonoTests.length > 0;
206
151
  if (hasPitonoTests) {
207
152
  // Import and use the pitono metafile utilities
208
- const { generatePitonoMetafile } = await import('./utils/pitonoMetafile');
153
+ const { generatePitonoMetafile } = await import("./utils/pitonoMetafile");
209
154
  // Get the entry points (first element of each test tuple)
210
- const pitonoEntryPoints = pitonoTests.map(test => test[0]);
155
+ const pitonoEntryPoints = pitonoTests.map((test) => test[0]);
211
156
  const metafile = await generatePitonoMetafile(testName, pitonoEntryPoints);
212
-
157
+
213
158
  // Ensure the directory exists
214
159
  const pitonoMetafilePath = `${process.cwd()}/testeranto/metafiles/python`;
215
160
  await fs.promises.mkdir(pitonoMetafilePath, { recursive: true });
216
-
161
+
217
162
  // Write the metafile to the specified path
218
163
  fs.writeFileSync(
219
164
  `${pitonoMetafilePath}/core.json`,
220
165
  JSON.stringify(metafile, null, 2)
221
166
  );
222
-
223
- // Mark pitono as done after writing the metafile
224
- onPitonoDone();
167
+
168
+ console.log(
169
+ ansiC.green(
170
+ ansiC.inverse(`Python metafile written to: ${pitonoMetafilePath}/core.json`)
171
+ )
172
+ );
173
+
174
+ // Add Python tests to the processing queue
175
+ pitonoEntryPoints.forEach((entryPoint) => {
176
+ if (pm) {
177
+ // For Python tests, the source file is the entry point itself
178
+ pm.addToQueue(entryPoint, "python");
179
+ }
180
+ });
225
181
  }
226
182
 
227
183
  Promise.resolve(
@@ -255,10 +211,22 @@ import(f).then(async (module) => {
255
211
  )
256
212
  );
257
213
 
214
+ const {
215
+ nodeEntryPoints,
216
+ nodeEntryPointSidecars,
217
+ webEntryPoints,
218
+ webEntryPointSidecars,
219
+ pureEntryPoints,
220
+ pureEntryPointSidecars,
221
+ pythonEntryPoints,
222
+ pythonEntryPointSidecars,
223
+ } = getRunnables(config.tests, testName);
224
+
258
225
  const x: [IRunTime, string[]][] = [
259
226
  ["pure", Object.keys(pureEntryPoints)],
260
227
  ["node", Object.keys(nodeEntryPoints)],
261
228
  ["web", Object.keys(webEntryPoints)],
229
+ ["python", Object.keys(pythonEntryPoints)],
262
230
  ];
263
231
 
264
232
  x.forEach(async ([runtime, keys]) => {
@@ -276,6 +244,7 @@ import(f).then(async (module) => {
276
244
  [pureEntryPoints, pureEntryPointSidecars, "pure"],
277
245
  [webEntryPoints, webEntryPointSidecars, "web"],
278
246
  [nodeEntryPoints, nodeEntryPointSidecars, "node"],
247
+ [pythonEntryPoints, pythonEntryPointSidecars, "python"],
279
248
  ].forEach(
280
249
  ([eps, eps2, runtime]: [
281
250
  Record<string, string>,
@@ -295,53 +264,6 @@ import(f).then(async (module) => {
295
264
  }
296
265
  );
297
266
 
298
- await Promise.all([
299
- ...(
300
- [
301
- [
302
- esbuildImportConfiger,
303
- pureEntryPoints,
304
- pureEntryPointSidecars,
305
- onImportDone,
306
- ],
307
- [
308
- esbuildNodeConfiger,
309
- nodeEntryPoints,
310
- nodeEntryPointSidecars,
311
- onNodeDone,
312
- ],
313
- [esbuildWebConfiger, webEntryPoints, webEntryPointSidecars, onWebDone],
314
- ] as [
315
- (a, b, c) => any,
316
- Record<string, string>,
317
- Record<string, string>,
318
- () => void
319
- ][]
320
- ).map(([configer, entryPoints, sidecars, done]) => {
321
- esbuild
322
- .context(
323
- configer(
324
- config,
325
- [...Object.keys(entryPoints), ...Object.keys(sidecars)],
326
- testName
327
- )
328
- )
329
- .then(async (ctx) => {
330
- if (mode === "dev") {
331
- await ctx.watch().then((v) => {
332
- done();
333
- });
334
- } else {
335
- ctx.rebuild().then((v) => {
336
- done();
337
- });
338
- }
339
-
340
- return ctx;
341
- });
342
- }),
343
- ]);
344
-
345
267
  process.stdin.on("keypress", (str, key) => {
346
268
  if (key.name === "q") {
347
269
  console.log("Testeranto is shutting down gracefully...");
package/src/utils/api.ts CHANGED
@@ -1,14 +1,11 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import { ISummary, IBuiltConfig } from "../Types";
3
- import {
4
- getLogFilesForRuntime,
5
- STANDARD_LOGS
6
- } from "./logFiles";
3
+ import { getLogFilesForRuntime, STANDARD_LOGS } from "./logFiles";
7
4
 
8
5
  export const fetchProjectData = async (projectName: string) => {
9
6
  const [summaryRes, configRes] = await Promise.all([
10
- fetch(`reports/${projectName}/summary.json`),
11
- fetch("reports/config.json"),
7
+ fetch(summaryDotJson(projectName)),
8
+ fetch("/reports/config.json"),
12
9
  ]);
13
10
 
14
11
  return {
@@ -39,11 +36,11 @@ export const fetchTestData = async (
39
36
  try {
40
37
  const response = await fetch(`${basePath}/${file}`);
41
38
  if (!response.ok) return null;
42
-
43
- const content = file.endsWith('.json')
39
+
40
+ const content = file.endsWith(".json")
44
41
  ? await response.json()
45
42
  : await response.text();
46
-
43
+
47
44
  return { file, content };
48
45
  } catch (err) {
49
46
  console.error(`Failed to fetch ${file}:`, err);
@@ -53,7 +50,7 @@ export const fetchTestData = async (
53
50
 
54
51
  // Wait for all requests and populate logs
55
52
  const logResults = await Promise.all(logRequests);
56
- logResults.forEach(result => {
53
+ logResults.forEach((result) => {
57
54
  if (result) {
58
55
  logs[result.file] = result.content;
59
56
  }
@@ -65,7 +62,7 @@ export const fetchTestData = async (
65
62
  try {
66
63
  const response = await fetch(`${basePath}/${file}`);
67
64
  if (response.ok) {
68
- logs[file] = file.endsWith('.json')
65
+ logs[file] = file.endsWith(".json")
69
66
  ? await response.json()
70
67
  : await response.text();
71
68
  }
@@ -84,13 +81,14 @@ export const fetchTestData = async (
84
81
  if (Object.keys(logs).length === 0) {
85
82
  return {
86
83
  logs: {},
87
- error: "No test logs found. The test may not have run or the report files are missing."
84
+ error:
85
+ "No test logs found. The test may not have run or the report files are missing.",
88
86
  };
89
87
  }
90
88
 
91
89
  return {
92
90
  logs,
93
- error: null
91
+ error: null,
94
92
  };
95
93
  } catch (err) {
96
94
  return {
@@ -104,3 +102,7 @@ export const fetchTestData = async (
104
102
  };
105
103
  }
106
104
  };
105
+
106
+ export const summaryDotJson = (name: string): string => {
107
+ return `reports/${name}/summary.json`;
108
+ };
@@ -0,0 +1,29 @@
1
+ import { getFileService } from '../services/FileService';
2
+
3
+ export const testGitIntegration = async () => {
4
+ try {
5
+ const fileService = getFileService('dev');
6
+
7
+ // Test basic file operations
8
+ const testContent = '// Test file content\nconsole.log("Hello Git!");';
9
+ await fileService.writeFile('test-file.ts', testContent);
10
+
11
+ const content = await fileService.readFile('test-file.ts');
12
+ console.log('File content:', content);
13
+
14
+ const exists = await fileService.exists('test-file.ts');
15
+ console.log('File exists:', exists);
16
+
17
+ // Test Git operations
18
+ const changes = await fileService.getChanges();
19
+ console.log('Changes:', changes);
20
+
21
+ const branch = await fileService.getCurrentBranch();
22
+ console.log('Current branch:', branch);
23
+
24
+ return { success: true, changes, branch };
25
+ } catch (error) {
26
+ console.error('Git integration test failed:', error);
27
+ return { success: false, error: error instanceof Error ? error.message : 'Unknown error' };
28
+ }
29
+ };