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.
- package/README.md +26 -1
- package/design-editor/DesignEditor.tsx +40 -241
- package/dist/common/design-editor/DesignEditor.js +33 -198
- package/dist/common/src/App.js +158 -16
- package/dist/common/src/PM/PM_WithBuild.js +135 -0
- package/dist/common/src/PM/PM_WithEslintAndTsc.js +79 -67
- package/dist/common/src/PM/PM_WithGit.js +517 -0
- package/dist/common/src/PM/PM_WithProcesses.js +519 -0
- package/dist/common/src/PM/PM_WithWebSocket.js +535 -0
- package/dist/common/src/PM/base.js +62 -0
- package/dist/common/src/PM/main.js +533 -1676
- package/dist/common/src/PM/metafileOutputs.js +78 -0
- package/dist/common/src/PM/node.js +0 -6
- package/dist/common/src/PM/pure.js +0 -8
- package/dist/common/src/PM/types.js +1 -0
- package/dist/common/src/PM/utils.js +210 -0
- package/dist/common/src/PM/web.js +0 -6
- package/dist/common/src/ReportServer.js +0 -10
- package/dist/common/src/ReportServerLib.js +0 -140
- package/dist/common/src/components/pure/AppFrame.js +68 -56
- package/dist/common/src/components/pure/ArtifactTree.js +80 -0
- package/dist/common/src/components/pure/BuildLogViewer.js +106 -0
- package/dist/common/src/components/pure/DebugEnv.js +30 -0
- package/dist/common/src/components/pure/FileTree.js +34 -0
- package/dist/common/src/components/pure/FileTreeItem.js +29 -0
- package/dist/common/src/components/pure/GitHubLoginButton.js +18 -0
- package/dist/common/src/components/pure/GitIntegrationView.js +342 -0
- package/dist/common/src/components/pure/ProcessManager.js +1 -0
- package/dist/common/src/components/pure/ProcessManagerView.js +73 -74
- package/dist/common/src/components/pure/ProjectPageView.js +4 -117
- package/dist/common/src/components/pure/Settings.js +121 -0
- package/dist/common/src/components/pure/Settings.test.js +34 -0
- package/dist/common/src/components/pure/SignIn.js +22 -0
- package/dist/common/src/components/pure/SingleProcessView.js +166 -213
- package/dist/common/src/components/pure/TestPageView.js +113 -368
- package/dist/common/src/components/pure/TestPageView_utils.js +117 -0
- package/dist/common/src/components/pure/TestTable.js +33 -0
- package/dist/common/src/components/pure/ToastNotification.js +14 -0
- package/dist/common/src/components/pure/UserProfile.js +27 -0
- package/dist/common/src/components/stateful/AuthCallbackPage.js +51 -0
- package/dist/common/src/components/stateful/FeaturesReporter.js +2 -1
- package/dist/common/src/components/stateful/FileTree.js +58 -39
- package/dist/common/src/components/stateful/GitIntegrationPage.js +12 -0
- package/dist/common/src/components/stateful/ProcessManagerPage.js +13 -15
- package/dist/common/src/components/stateful/ProjectPage.js +6 -5
- package/dist/common/src/components/stateful/ProjectsPage.js +17 -19
- package/dist/common/src/components/stateful/SingleProcessPage.js +16 -26
- package/dist/common/src/components/stateful/TestPage.js +7 -5
- package/dist/common/src/hooks/useGitMode.js +21 -0
- package/dist/common/src/lib/BaseSuite.test/mock.js +15 -8
- package/dist/common/src/lib/BaseSuite.test/test.js +56 -80
- package/dist/common/src/lib/Tiposkripto.js +24 -0
- package/dist/common/src/lib/Tiposkripto.test/MockTiposkripto.js +154 -10
- package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.adapter.js +6 -12
- package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.implementation.js +63 -23
- package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.specification.js +14 -6
- package/dist/common/src/lib/pmProxy.test/specification.js +167 -52
- package/dist/common/src/services/FileService.js +505 -0
- package/dist/common/src/services/GitHubAuthService.js +184 -0
- package/dist/common/src/testeranto.js +38 -97
- package/dist/common/src/utils/api.js +12 -8
- package/dist/common/src/utils/gitTest.js +27 -0
- package/dist/common/src/utils.js +23 -13
- package/dist/common/testeranto.config.js +21 -17
- package/dist/common/tsconfig.common.tsbuildinfo +1 -1
- package/dist/module/design-editor/DesignEditor.js +33 -199
- package/dist/module/src/App.js +121 -15
- package/dist/module/src/PM/PM_WithBuild.js +128 -0
- package/dist/module/src/PM/PM_WithEslintAndTsc.js +79 -67
- package/dist/module/src/PM/PM_WithGit.js +477 -0
- package/dist/module/src/PM/PM_WithProcesses.js +479 -0
- package/dist/module/src/PM/PM_WithWebSocket.js +528 -0
- package/dist/module/src/PM/base.js +62 -0
- package/dist/module/src/PM/main.js +533 -1676
- package/dist/module/src/PM/metafileOutputs.js +78 -0
- package/dist/module/src/PM/node.js +0 -6
- package/dist/module/src/PM/pure.js +0 -8
- package/dist/module/src/PM/types.js +1 -1
- package/dist/module/src/PM/utils.js +196 -0
- package/dist/module/src/PM/web.js +0 -6
- package/dist/module/src/ReportServer.js +1 -9
- package/dist/module/src/ReportServerLib.js +1 -134
- package/dist/module/src/components/pure/AppFrame.js +66 -24
- package/dist/module/src/components/pure/ArtifactTree.js +80 -0
- package/dist/module/src/components/pure/BuildLogViewer.js +99 -0
- package/dist/module/src/components/pure/DebugEnv.js +23 -0
- package/dist/module/src/components/pure/FileTree.js +27 -0
- package/dist/module/src/components/pure/FileTreeItem.js +22 -0
- package/dist/module/src/components/pure/GitHubLoginButton.js +11 -0
- package/dist/module/src/components/pure/GitIntegrationView.js +305 -0
- package/dist/module/src/components/pure/ProcessManager.js +1 -0
- package/dist/module/src/components/pure/ProcessManagerView.js +74 -75
- package/dist/module/src/components/pure/ProjectPageView.js +5 -118
- package/dist/module/src/components/pure/Settings.js +84 -0
- package/dist/module/src/components/pure/Settings.test.js +29 -0
- package/dist/module/src/components/pure/SignIn.js +15 -0
- package/dist/module/src/components/pure/SingleProcessView.js +130 -214
- package/dist/module/src/components/pure/TestPageView.js +97 -352
- package/dist/module/src/components/pure/TestPageView_utils.js +109 -0
- package/dist/module/src/components/pure/TestTable.js +26 -0
- package/dist/module/src/components/pure/ToastNotification.js +7 -0
- package/dist/module/src/components/pure/UserProfile.js +20 -0
- package/dist/module/src/components/stateful/AuthCallbackPage.js +14 -0
- package/dist/module/src/components/stateful/FeaturesReporter.js +2 -1
- package/dist/module/src/components/stateful/FileTree.js +59 -33
- package/dist/module/src/components/stateful/GitIntegrationPage.js +5 -0
- package/dist/module/src/components/stateful/ProcessManagerPage.js +13 -15
- package/dist/module/src/components/stateful/ProjectPage.js +6 -5
- package/dist/module/src/components/stateful/ProjectsPage.js +16 -18
- package/dist/module/src/components/stateful/SingleProcessPage.js +16 -26
- package/dist/module/src/components/stateful/TestPage.js +8 -6
- package/dist/module/src/hooks/useGitMode.js +17 -0
- package/dist/module/src/lib/BaseSuite.test/mock.js +15 -8
- package/dist/module/src/lib/BaseSuite.test/test.js +56 -80
- package/dist/module/src/lib/Tiposkripto.js +24 -0
- package/dist/module/src/lib/Tiposkripto.test/MockTiposkripto.js +154 -10
- package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.adapter.js +6 -12
- package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.implementation.js +63 -23
- package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.specification.js +14 -6
- package/dist/module/src/lib/pmProxy.test/specification.js +167 -52
- package/dist/module/src/services/FileService.js +468 -0
- package/dist/module/src/services/GitHubAuthService.js +180 -0
- package/dist/module/src/testeranto.js +38 -97
- package/dist/module/src/utils/api.js +10 -7
- package/dist/module/src/utils/gitTest.js +23 -0
- package/dist/module/src/utils.js +21 -12
- package/dist/module/testeranto.config.js +21 -17
- package/dist/module/tsconfig.module.tsbuildinfo +1 -1
- package/dist/prebuild/App.css +94 -121
- package/dist/prebuild/App.js +44601 -11225
- package/dist/prebuild/testeranto.mjs +3113 -2256
- package/dist/types/design-editor/DesignEditor.d.ts +1 -18
- package/dist/types/src/App.d.ts +18 -0
- package/dist/types/src/PM/PM_WithBuild.d.ts +13 -0
- package/dist/types/src/PM/PM_WithEslintAndTsc.d.ts +2 -4
- package/dist/types/src/PM/PM_WithGit.d.ts +27 -0
- package/dist/types/src/PM/PM_WithProcesses.d.ts +29 -0
- package/dist/types/src/PM/PM_WithWebSocket.d.ts +108 -0
- package/dist/types/src/PM/base.d.ts +1 -1
- package/dist/types/src/PM/index.d.ts +0 -2
- package/dist/types/src/PM/main.d.ts +6 -77
- package/dist/types/src/PM/metafileOutputs.d.ts +0 -0
- package/dist/types/src/PM/node.d.ts +0 -2
- package/dist/types/src/PM/pure.d.ts +0 -2
- package/dist/types/src/PM/types.d.ts +118 -0
- package/dist/types/src/PM/utils.d.ts +35 -0
- package/dist/types/src/PM/web.d.ts +0 -2
- package/dist/types/src/Pure.d.ts +6 -1
- package/dist/types/src/ReportServer.d.ts +0 -1
- package/dist/types/src/ReportServerLib.d.ts +0 -1
- package/dist/types/src/Types.d.ts +1 -0
- package/dist/types/src/components/pure/ArtifactTree.d.ts +0 -0
- package/dist/types/src/components/pure/BuildLogViewer.d.ts +7 -0
- package/dist/types/src/components/pure/DebugEnv.d.ts +2 -0
- package/dist/types/src/components/pure/FileTree.d.ts +6 -0
- package/dist/types/src/components/pure/FileTreeItem.d.ts +8 -0
- package/dist/types/src/components/pure/GitHubLoginButton.d.ts +8 -0
- package/dist/types/src/components/pure/GitIntegrationView.d.ts +1 -0
- package/dist/types/src/components/pure/Settings.d.ts +1 -0
- package/dist/types/src/components/pure/Settings.test.d.ts +1 -0
- package/dist/types/src/components/pure/SignIn.d.ts +1 -0
- package/dist/types/src/components/pure/SingleProcessView.d.ts +10 -0
- package/dist/types/src/components/pure/TestPageView.d.ts +2 -1
- package/dist/types/src/components/pure/TestPageView_utils.d.ts +23 -0
- package/dist/types/src/components/pure/TestTable.d.ts +16 -0
- package/dist/types/src/components/pure/ToastNotification.d.ts +6 -0
- package/dist/types/src/components/pure/UserProfile.d.ts +2 -0
- package/dist/types/src/components/stateful/AuthCallbackPage.d.ts +2 -0
- package/dist/types/src/components/stateful/FileTree.d.ts +0 -8
- package/dist/types/src/components/stateful/GitIntegrationPage.d.ts +1 -0
- package/dist/types/src/hooks/useGitMode.d.ts +7 -0
- package/dist/types/src/lib/BaseSuite.test/mock.d.ts +2 -2
- package/dist/types/src/lib/BaseSuite.test/test.d.ts +4 -3
- package/dist/types/src/lib/Tiposkripto.d.ts +2 -0
- package/dist/types/src/lib/Tiposkripto.test/MockTiposkripto.d.ts +3 -0
- package/dist/types/src/lib/Tiposkripto.test/Tiposkripto.types.d.ts +5 -0
- package/dist/types/src/lib/index.d.ts +6 -0
- package/dist/types/src/services/FileService.d.ts +34 -0
- package/dist/types/src/services/GitHubAuthService.d.ts +32 -0
- package/dist/types/src/utils/api.d.ts +1 -0
- package/dist/types/src/utils/gitTest.d.ts +11 -0
- package/dist/types/src/utils.d.ts +3 -3
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/example/__pycache__/Calculator.cpython-313.pyc +0 -0
- package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/README.md +187 -0
- package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/base_given.go +163 -0
- package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/base_suite.go +85 -0
- package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/base_then.go +21 -0
- package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/base_when.go +21 -0
- package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/golingvu.go +554 -0
- package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/test_adapter.go +33 -0
- package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/types.go +72 -0
- package/example/vendor/modules.txt +5 -0
- package/git-integration-plan.md +395 -0
- package/package.json +26 -14
- package/src/App.tsx +169 -18
- package/src/PM/PM_WithBuild.ts +171 -0
- package/src/PM/PM_WithEslintAndTsc.ts +109 -86
- package/src/PM/PM_WithGit.ts +585 -0
- package/src/PM/PM_WithProcesses.ts +639 -0
- package/src/PM/PM_WithWebSocket.ts +631 -0
- package/src/PM/base.ts +63 -1
- package/src/PM/index.ts +8 -5
- package/src/PM/main.ts +672 -2050
- package/src/PM/metafileOutputs.ts +90 -0
- package/src/PM/node.ts +18 -18
- package/src/PM/pure.ts +5 -13
- package/src/PM/types.ts +145 -0
- package/src/PM/utils.ts +256 -0
- package/src/PM/web.ts +8 -8
- package/src/README.md +122 -0
- package/src/ReportServer.ts +0 -12
- package/src/ReportServerLib.ts +0 -147
- package/src/Types.ts +1 -0
- package/src/app.scss +14 -164
- package/src/components/pure/AppFrame.tsx +237 -71
- package/src/components/pure/ArtifactTree.tsx +82 -0
- package/src/components/pure/BuildLogViewer.tsx +168 -0
- package/src/components/pure/DebugEnv.tsx +30 -0
- package/src/components/pure/FileTree.tsx +58 -0
- package/src/components/pure/FileTreeItem.tsx +49 -0
- package/src/components/pure/GitHubLoginButton.tsx +31 -0
- package/src/components/pure/GitIntegrationView.tsx +443 -0
- package/src/components/pure/ProcessManager.tsx +6 -5
- package/src/components/pure/ProcessManagerView.tsx +162 -166
- package/src/components/pure/ProjectPageView.tsx +6 -224
- package/src/components/pure/Settings.test.tsx +34 -0
- package/src/components/pure/Settings.tsx +163 -0
- package/src/components/pure/SignIn.tsx +33 -0
- package/src/components/pure/SingleProcessView.tsx +231 -235
- package/src/components/pure/TestPageView.test/specification.ts +1 -0
- package/src/components/pure/TestPageView.tsx +317 -826
- package/src/components/pure/TestPageView_utils.tsx +285 -0
- package/src/components/pure/TestTable.tsx +88 -0
- package/src/components/pure/ToastNotification.tsx +19 -0
- package/src/components/pure/UserProfile.tsx +44 -0
- package/src/components/stateful/AuthCallbackPage.tsx +21 -0
- package/src/components/stateful/FeaturesReporter.tsx +3 -1
- package/src/components/stateful/FileTree.tsx +58 -58
- package/src/components/stateful/GitIntegrationPage.tsx +8 -0
- package/src/components/stateful/ProcessManagerPage.tsx +13 -17
- package/src/components/stateful/ProjectPage.tsx +6 -5
- package/src/components/stateful/ProjectsPage.tsx +17 -19
- package/src/components/stateful/SVGEditor/CircleForm.tsx +68 -0
- package/src/components/stateful/SVGEditor/GroupForm.tsx +56 -0
- package/src/components/stateful/SVGEditor/RectForm.tsx +74 -0
- package/src/components/stateful/SVGEditor/SVGAttributeField.tsx +29 -0
- package/src/components/stateful/SVGEditor/SVGAttributesEditor.tsx +73 -0
- package/src/components/stateful/SVGEditor/SVGEditorControls.tsx +45 -0
- package/src/components/stateful/SVGEditor/SVGElementForm.tsx +45 -0
- package/src/components/stateful/SVGEditor/SVGPreview.tsx +225 -0
- package/src/components/stateful/SVGEditor/SVGTextEditor.tsx +166 -0
- package/src/components/stateful/SVGEditor/SVGTree.tsx +159 -0
- package/src/components/stateful/SVGEditor/SVGTypes.ts +36 -0
- package/src/components/stateful/SVGEditor/svg.xsd.xml +3038 -0
- package/src/components/stateful/SVGEditorPage.tsx +503 -0
- package/src/components/stateful/SingleProcessPage.tsx +18 -31
- package/src/components/stateful/TestPage.tsx +25 -22
- package/src/golingvu/golingvu.go +38 -2
- package/src/hooks/useGitMode.ts +20 -0
- package/src/lib/BaseSuite.test/mock.ts +16 -10
- package/src/lib/BaseSuite.test/test.ts +144 -103
- package/src/lib/Tiposkripto.test/MockTiposkripto.ts +178 -14
- package/src/lib/Tiposkripto.test/Tiposkripto.adapter.ts +9 -14
- package/src/lib/Tiposkripto.test/Tiposkripto.implementation.ts +78 -38
- package/src/lib/Tiposkripto.test/Tiposkripto.specification.ts +51 -9
- package/src/lib/Tiposkripto.test/Tiposkripto.types.ts +5 -0
- package/src/lib/Tiposkripto.ts +27 -0
- package/src/lib/index.ts +7 -0
- package/src/lib/pmProxy.test/specification.ts +168 -166
- package/src/pitono/PM/__pycache__/python.cpython-313.pyc +0 -0
- package/src/pitono/__pycache__/Pitono.cpython-313.pyc +0 -0
- package/src/pitono/__pycache__/__init__.cpython-313.pyc +0 -0
- package/src/pitono/__pycache__/base_given.cpython-313.pyc +0 -0
- package/src/pitono/__pycache__/base_suite.cpython-313.pyc +0 -0
- package/src/pitono/__pycache__/base_then.cpython-313.pyc +0 -0
- package/src/pitono/__pycache__/base_when.cpython-313.pyc +0 -0
- package/src/pitono/__pycache__/core_generator.cpython-313.pyc +0 -0
- package/src/pitono/__pycache__/simple_adapter.cpython-313.pyc +0 -0
- package/src/pitono/__pycache__/types.cpython-313.pyc +0 -0
- package/src/services/FileService.ts +542 -0
- package/src/services/GitHubAuthService.ts +240 -0
- package/src/testeranto.ts +62 -140
- package/src/utils/api.ts +15 -13
- package/src/utils/gitTest.ts +29 -0
- package/src/utils.ts +21 -12
- package/testeranto/App.css +94 -121
- package/testeranto/App.js +44601 -11225
- package/testeranto/bundles/golang/core/Calculator.golingvu.go +53 -0
- package/testeranto/bundles/golang/core/Calculator.golingvu.golingvu.go +53 -0
- package/testeranto/bundles/node/core/chunk-RIM6RECA.mjs +1170 -0
- package/testeranto/bundles/node/core/chunk-VXVF7WFO.mjs +4321 -0
- package/testeranto/bundles/node/core/example/Calculator.test.mjs +503 -0
- package/testeranto/bundles/node/core/src/lib/BaseSuite.test/node.test.mjs +94 -1231
- package/testeranto/bundles/node/core/src/lib/TipoSkripto.test/TipoSkripto.mjs +574 -0
- package/testeranto/bundles/node/core/src/lib/pmProxy.test/index.mjs +482 -0
- package/testeranto/bundles/pure/core/chunk-XYOCRDEQ.mjs +1080 -0
- package/testeranto/bundles/pure/core/src/Pure.test.mjs +410 -0
- package/testeranto/bundles/pure/core/src/lib/BaseSuite.test/pure.test.mjs +93 -1146
- package/testeranto/bundles/python/core/Calculator.pitono.test.py +24 -0
- package/testeranto/bundles/python/core/test_example.py +24 -0
- package/testeranto/bundles/web/core/MPLUSRounded1c-Black-O75GP5JI.ttf +0 -0
- package/testeranto/bundles/web/core/MPLUSRounded1c-Bold-R524Q5BH.ttf +0 -0
- package/testeranto/bundles/web/core/MPLUSRounded1c-ExtraBold-C6GRMYVT.ttf +0 -0
- package/testeranto/bundles/web/core/MPLUSRounded1c-Light-WKN65Y2C.ttf +0 -0
- package/testeranto/bundles/web/core/MPLUSRounded1c-Medium-ZC4DWL7C.ttf +0 -0
- package/testeranto/bundles/web/core/MPLUSRounded1c-Regular-DT6EKZ3S.ttf +0 -0
- package/testeranto/bundles/web/core/MPLUSRounded1c-Thin-YWDNVG6M.ttf +0 -0
- package/testeranto/bundles/web/core/chunk-DFRN4SYZ.mjs +2297 -0
- package/testeranto/bundles/web/core/chunk-JMDLMADH.mjs +27996 -0
- package/testeranto/bundles/web/core/chunk-LQMU5NCG.mjs +3082 -0
- package/testeranto/bundles/web/core/chunk-Q5TONB2Z.mjs +6874 -0
- package/testeranto/bundles/web/core/src/components/pure/FeaturesReporterView.test/index.mjs +164 -0
- package/testeranto/bundles/web/core/src/components/pure/ModalContent.test/index.css +11697 -0
- package/testeranto/bundles/web/core/src/components/pure/ModalContent.test/index.mjs +336 -0
- package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.css +11697 -0
- package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.mjs +517 -0
- package/testeranto/bundles/web/core/src/lib/BaseSuite.test/web.test.mjs +107 -1134
- package/testeranto/metafiles/golang/core.json +3 -3
- package/testeranto/metafiles/node/core.json +474 -31
- package/testeranto/metafiles/pure/core.json +144 -28
- package/testeranto/metafiles/python/core.json +11 -0
- package/testeranto/metafiles/web/core.json +15829 -45
- package/testeranto/reports/core/config.json +40 -0
- package/testeranto/reports/core/src/Pure.test/pure/exit.log +0 -0
- package/testeranto/reports/core/src/Pure.test/pure/lint_errors.txt +0 -0
- package/testeranto/reports/core/src/Pure.test/pure/prompt.txt +14 -0
- package/testeranto/reports/core/src/Pure.test/pure/type_errors.txt +73 -0
- package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/debug.log +0 -0
- package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/error.log +91 -0
- package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/exit.log +1 -0
- package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/info.log +2 -0
- package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/tests.json +68 -0
- package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/warn.log +0 -0
- package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/debug.log +0 -0
- package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/error.log +30 -0
- package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/exit.log +1 -0
- package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/info.log +2 -0
- package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/tests.json +88 -0
- package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/warn.log +0 -0
- package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/lint_errors.txt +0 -6
- package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/prompt.txt +0 -11
- package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/stdout.log +1 -0
- package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/tests.json +1 -1
- package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/type_errors.txt +35 -38
- package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/lint_errors.txt +0 -2
- package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/prompt.txt +0 -10
- package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/type_errors.txt +40 -38
- package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/tests.json +1 -1
- package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/exit.log +1 -0
- package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/lint_errors.txt +0 -0
- package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/message.txt +17 -0
- package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/prompt.txt +17 -0
- package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/stderr.log +55 -0
- package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/stdout.log +191 -0
- package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/type_errors.txt +71 -0
- package/testeranto/reports/core/src/lib/pmProxy.test/index/node/exit.log +1 -0
- package/testeranto/reports/core/src/lib/pmProxy.test/index/node/lint_errors.txt +15 -0
- package/testeranto/reports/core/src/lib/pmProxy.test/index/node/message.txt +17 -0
- package/testeranto/reports/core/src/lib/pmProxy.test/index/node/prompt.txt +17 -0
- package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stderr.log +20 -0
- package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stdout.log +4 -0
- package/testeranto/reports/core/src/lib/pmProxy.test/index/node/type_errors.txt +49 -0
- package/testeranto/reports/core/summary.json +34 -6
- package/testeranto.config.ts +26 -20
- package/tsc.log +141 -91
- package/tsconfig.json +6 -2
- package/dist/types/design-editor/server.d.ts +0 -1
- package/testeranto/bundles/web/core/src/lib/BaseSuite.test/web.test.html +0 -15
- package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/lint_errors.txt +0 -2
- package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/prompt.txt +0 -25
- package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/type_errors.txt +0 -56
- /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
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
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("
|
|
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] ===
|
|
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(
|
|
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] ===
|
|
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(
|
|
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
|
-
|
|
224
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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:
|
|
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
|
+
};
|