testeranto 0.200.1 → 0.203.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 +49 -1
- package/UX/chache/index.md +11 -0
- package/design-editor/DesignEditor.tsx +40 -241
- package/dist/prebuild/App.css +171 -120
- package/dist/prebuild/App.js +47117 -11727
- package/dist/prebuild/testeranto.mjs +5048 -2578
- package/example/Calculator.go +63 -0
- package/example/Calculator.golingvu.adapter.go +81 -0
- package/example/Calculator.golingvu.go +67 -0
- package/example/Calculator.golingvu.implementation.go +95 -0
- package/example/Calculator.golingvu.specification.go +68 -0
- package/example/Calculator.pitono.adapter.py +68 -0
- package/example/Calculator.pitono.implementation.py +30 -0
- package/example/Calculator.pitono.specification.py +154 -0
- package/example/Calculator.pitono.test.py +47 -0
- package/example/Calculator.py +93 -0
- package/example/Calculator.test.adapter.ts +86 -0
- package/example/Calculator.test.implementation.ts +82 -0
- package/example/Calculator.test.specification.ts +213 -0
- package/example/Calculator.test.ts +13 -0
- package/example/Calculator.test.types.ts +50 -0
- package/example/Calculator.ts +130 -0
- package/example/README.md +1 -0
- package/example/base_suite_test.go +51 -0
- package/example/cmd/main.go +16 -0
- package/example/go.mod +9 -0
- package/example/main +0 -0
- package/example/test_example.py +143 -74
- package/example/testeranto/bundles/golang/core/Calculator.golingvu.go +53 -0
- package/example/testeranto/metafiles/golang/core.json +198 -0
- package/git-integration-plan.md +395 -0
- package/go.mod +3 -1
- package/golingvu.tmp.txt +68 -0
- package/log.txt +85 -0
- package/package.json +67 -46
- package/scripts/build-example.ts +245 -0
- package/src/App.tsx +226 -25
- package/src/Helpo.tsx +89 -0
- package/src/PM/PM_WithBuild.ts +183 -0
- package/src/PM/PM_WithEslintAndTsc.ts +109 -86
- package/src/PM/PM_WithGit.ts +632 -0
- package/src/PM/PM_WithHelpo.ts +341 -0
- package/src/PM/PM_WithProcesses.ts +900 -0
- package/src/PM/PM_WithWebSocket.ts +839 -0
- package/src/PM/base.ts +63 -1
- package/src/PM/golingvuBuild.ts +56 -0
- package/src/PM/index.ts +8 -5
- package/src/PM/main.ts +735 -1981
- package/src/PM/node.ts +18 -18
- package/src/PM/pitonoBuild.ts +56 -0
- package/src/PM/pure.ts +5 -13
- package/src/PM/types.ts +145 -0
- package/src/PM/utils.ts +262 -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 +92 -140
- package/src/components/pure/AppFrame.tsx +354 -78
- 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 +732 -0
- package/src/components/pure/HelpoChatDrawer.tsx +222 -0
- package/src/components/pure/MagicRobotModal.tsx +136 -0
- package/src/components/pure/ProcessDetails.tsx +99 -0
- package/src/components/pure/ProcessInput.tsx +67 -0
- package/src/components/pure/ProcessList.tsx +89 -0
- package/src/components/pure/ProcessLogs.tsx +54 -0
- package/src/components/pure/ProcessManager.tsx +38 -46
- package/src/components/pure/ProcessManagerView.tsx +44 -373
- package/src/components/pure/ProcessManagerViewTypes.ts +10 -0
- package/src/components/pure/ProcessSidebar.tsx +88 -0
- package/src/components/pure/ProcessTerminal.tsx +51 -0
- 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 +85 -180
- package/src/components/pure/TerminalInput.tsx +73 -0
- package/src/components/pure/TerminalLogs.tsx +80 -0
- package/src/components/pure/TestPageView.test/specification.ts +1 -0
- package/src/components/pure/TestPageView.tsx +308 -912
- package/src/components/pure/TestPageView_utils.tsx +287 -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/DratoPage.tsx +457 -0
- package/src/components/stateful/FeaturesReporter.tsx +3 -1
- package/src/components/stateful/FileTree.tsx +58 -58
- package/src/components/stateful/GenericXMLEditor/AttributeEditor.tsx +87 -0
- package/src/components/stateful/GenericXMLEditor/Drawer.tsx +174 -0
- package/src/components/stateful/GenericXMLEditor/GenericPreview.tsx +160 -0
- package/src/components/stateful/GenericXMLEditor/GenericTextEditor.tsx +104 -0
- package/src/components/stateful/GenericXMLEditor/GenericTree.tsx +104 -0
- package/src/components/stateful/GenericXMLEditorPage.tsx +346 -0
- package/src/components/stateful/GitIntegrationPage.tsx +263 -0
- package/src/components/stateful/GrafeoPage.tsx +563 -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 +91 -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 +227 -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 +517 -0
- package/src/components/stateful/SingleProcessPage.tsx +133 -144
- package/src/components/stateful/SkriboPage.tsx +765 -0
- package/src/components/stateful/TestPage.tsx +27 -23
- package/src/esbuildConfigs/node.ts +1 -1
- package/src/example/go.mod +9 -0
- package/src/example/main.go +61 -0
- package/src/golingvu/PM/golang_test.go +103 -0
- package/src/golingvu/README.md +186 -2
- package/src/golingvu/base_given.go +89 -2
- package/src/golingvu/base_suite.go +48 -2
- package/src/golingvu/go.mod +6 -0
- package/src/golingvu/golingvu.go +724 -14
- package/src/golingvu/types.go +0 -14
- package/src/helpo/directives.md +5 -0
- package/src/helpo/prompt.txt +38 -0
- package/src/hooks/useGitMode.ts +20 -0
- package/src/hooks/useTerminalWebSocket.ts +49 -0
- package/src/lib/BaseGiven.ts +126 -28
- package/src/lib/BaseSuite.test/mock.ts +16 -10
- package/src/lib/BaseSuite.test/test.ts +165 -207
- package/src/lib/BaseSuite.ts +52 -10
- package/src/lib/BaseThen.ts +34 -38
- package/src/lib/BaseWhen.ts +9 -2
- 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 -8
- package/src/lib/Tiposkripto.test/Tiposkripto.types.ts +5 -0
- package/src/lib/Tiposkripto.ts +64 -7
- package/src/lib/index.ts +7 -0
- package/src/lib/pmProxy.test/specification.ts +168 -166
- package/src/lib/pmProxy.ts +55 -18
- package/src/pitono/PM/python.py +165 -0
- package/src/pitono/Pitono.py +298 -0
- package/src/pitono/PitonoTest.py +25 -0
- package/src/pitono/README.md +21 -0
- package/src/pitono/__init__.py +6 -0
- package/{pitono → src/pitono}/base_given.py +42 -20
- package/{pitono → src/pitono}/base_suite.py +55 -2
- package/{pitono → src/pitono}/base_then.py +15 -1
- package/{pitono → src/pitono}/base_when.py +15 -1
- package/{pitono → src/pitono}/pitono.egg-info/PKG-INFO +25 -0
- package/{pitono → src/pitono}/pitono.egg-info/SOURCES.txt +1 -0
- package/src/pitono/types.py +87 -0
- package/src/services/FileService.ts +677 -0
- package/src/services/GitHubAuthService.ts +240 -0
- package/src/testeranto.ts +133 -245
- package/src/utils/api.ts +15 -13
- package/src/utils/gitTest.ts +29 -0
- package/src/utils/golingvuMetafile.ts +822 -118
- package/src/utils/golingvuWatcher.ts +285 -0
- package/src/utils/logFiles.ts +10 -2
- package/src/utils/makePrompt.ts +12 -1
- package/src/utils/pitonoMetafile.ts +326 -54
- package/src/utils/pitonoWatcher.ts +157 -0
- package/src/utils.ts +21 -12
- package/testeranto/App.css +171 -120
- package/testeranto/App.js +47117 -11727
- package/testeranto/bundles/node/core/chunk-MJTSYIAQ.mjs +1099 -0
- package/testeranto/bundles/node/core/src/lib/BaseSuite.test/node.test.mjs +58 -1147
- package/testeranto/bundles/node/core/src/lib/TipoSkripto.test/TipoSkripto.mjs +572 -0
- package/testeranto/bundles/node/core/src/lib/pmProxy.test/index.mjs +4795 -0
- package/testeranto/bundles/pure/core/chunk-6HR24P27.mjs +1003 -0
- package/testeranto/bundles/pure/core/src/Pure.test.mjs +410 -0
- package/testeranto/bundles/pure/core/src/lib/BaseSuite.test/pure.test.mjs +57 -1062
- 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-AZZHJNSU.mjs +30278 -0
- package/testeranto/bundles/web/core/chunk-ME6I6FJZ.mjs +3005 -0
- package/testeranto/bundles/web/core/src/components/pure/FeaturesReporterView.test/index.html +15 -0
- package/testeranto/bundles/web/core/src/components/pure/FeaturesReporterView.test/index.mjs +162 -0
- package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.css +11619 -0
- package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.html +15 -0
- package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.mjs +6924 -0
- package/testeranto/bundles/web/core/src/lib/BaseSuite.test/web.test.mjs +71 -1050
- package/testeranto/helpo_chat_history.json +1 -0
- package/testeranto/metafiles/golang/core.json +42 -47
- package/testeranto/metafiles/node/core.json +584 -125
- package/testeranto/metafiles/pure/core.json +152 -51
- package/testeranto/metafiles/python/core.json +87 -0
- package/testeranto/metafiles/web/core.json +16365 -75
- package/testeranto/reports/core/config.json +66 -2
- package/testeranto/reports/core/example/Calculator.golingvu/golang/exit.log +1 -0
- package/testeranto/reports/core/example/Calculator.golingvu/golang/stderr.log +2 -0
- package/testeranto/reports/core/example/Calculator.golingvu/golang/stdout.log +1 -0
- package/testeranto/reports/core/example/Calculator.pitono.test/python/exit.log +1 -0
- package/testeranto/reports/core/example/Calculator.pitono.test/python/stderr.log +11 -0
- package/testeranto/reports/core/example/Calculator.pitono.test/python/stdout.log +1 -0
- package/testeranto/reports/core/example/Calculator.test/node/exit.log +1 -0
- package/testeranto/reports/core/example/Calculator.test/node/lint_errors.txt +2 -0
- package/testeranto/reports/core/example/Calculator.test/node/message.txt +16 -0
- package/testeranto/reports/core/example/Calculator.test/node/prompt.txt +13 -0
- package/testeranto/reports/core/example/Calculator.test/node/stderr.log +33 -0
- package/testeranto/reports/core/example/Calculator.test/node/stdout.log +1076 -0
- package/testeranto/reports/core/example/Calculator.test/node/tests.json +1109 -0
- package/testeranto/reports/core/example/Calculator.test/node/type_errors.txt +34 -0
- package/testeranto/reports/core/example/test_example/python/exit.log +1 -0
- package/testeranto/reports/core/example/test_example/python/stderr.log +24 -0
- package/testeranto/reports/core/src/Pure.test/pure/message.txt +16 -0
- package/testeranto/reports/core/src/Pure.test/pure/prompt.txt +13 -0
- package/testeranto/reports/core/src/Pure.test/pure/type_errors.txt +86 -0
- package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/exit.log +0 -0
- package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/info.log +0 -0
- package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/lint_errors.txt +0 -0
- package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/message.txt +17 -0
- package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/prompt.txt +26 -0
- package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/type_errors.txt +69 -0
- package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/warn.log +0 -0
- package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/debug.log +0 -0
- package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/error.log +0 -0
- package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/exit.log +0 -0
- package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/info.log +0 -0
- package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/lint_errors.txt +16 -0
- package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/message.txt +17 -0
- package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/prompt.txt +27 -0
- package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/type_errors.txt +42 -0
- package/testeranto/reports/core/src/components/pure/ModalContent.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 +0 -0
- package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/exit.log +0 -0
- package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/info.log +0 -0
- package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/lint_errors.txt +30 -0
- package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/message.txt +17 -0
- package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/prompt.txt +30 -0
- package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/type_errors.txt +58 -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/exit.log +1 -1
- 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 +9 -12
- package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/stderr.log +1 -0
- package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/stdout.log +4 -0
- package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/tests.json +99 -8
- package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/type_errors.txt +57 -44
- 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/message.txt +1 -2
- package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/prompt.txt +4 -16
- package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/type_errors.txt +62 -44
- package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/error.log +0 -1
- package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/exit.log +0 -1
- 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 +13 -13
- package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/type_errors.txt +57 -44
- 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 +16 -0
- package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/prompt.txt +13 -0
- package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/stderr.log +88 -0
- package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/stdout.log +521 -0
- package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/tests.json +166 -0
- package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/type_errors.txt +78 -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 +25 -0
- package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stderr.log +0 -0
- package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stdout.log +2 -0
- package/testeranto/reports/core/src/lib/pmProxy.test/index/node/tests.json +31 -0
- package/testeranto/reports/core/src/lib/pmProxy.test/index/node/type_errors.txt +62 -0
- package/testeranto/reports/core/summary.json +66 -11
- package/testeranto.config.ts +38 -44
- package/tsc.log +141 -91
- package/tsconfig.json +6 -2
- package/dist/cjs-shim.js +0 -12
- package/dist/common/design-editor/DesignEditor.js +0 -242
- package/dist/common/design-editor/index.js +0 -18
- package/dist/common/design-editor/server.js +0 -98
- package/dist/common/design-editor/types.js +0 -2
- package/dist/common/package.json +0 -3
- package/dist/common/src/App.js +0 -77
- package/dist/common/src/CoreTypes.js +0 -2
- package/dist/common/src/Init.js +0 -48
- package/dist/common/src/Node.js +0 -40
- package/dist/common/src/NodeSidecar.js +0 -15
- package/dist/common/src/PM/PM_WithEslintAndTsc.js +0 -192
- package/dist/common/src/PM/__tests__/nodeSidecar.testeranto.js +0 -108
- package/dist/common/src/PM/__tests__/pureSidecar.testeranto.js +0 -93
- package/dist/common/src/PM/__tests__/webSidecar.testeranto.js +0 -93
- package/dist/common/src/PM/base.js +0 -257
- package/dist/common/src/PM/index.js +0 -6
- package/dist/common/src/PM/main.js +0 -1815
- package/dist/common/src/PM/node.js +0 -185
- package/dist/common/src/PM/nodeSidecar.js +0 -65
- package/dist/common/src/PM/pitonoRunner.js +0 -54
- package/dist/common/src/PM/pure.js +0 -111
- package/dist/common/src/PM/pureSidecar.js +0 -48
- package/dist/common/src/PM/sidecar.js +0 -11
- package/dist/common/src/PM/types.js +0 -1
- package/dist/common/src/PM/web.js +0 -112
- package/dist/common/src/PM/webSidecar.js +0 -47
- package/dist/common/src/Pure.js +0 -52
- package/dist/common/src/Pure.test.js +0 -180
- package/dist/common/src/PureSidecar.js +0 -13
- package/dist/common/src/ReportServer.js +0 -11
- package/dist/common/src/ReportServer.test.ts/index.js +0 -78
- package/dist/common/src/ReportServerLib.js +0 -141
- package/dist/common/src/Types.js +0 -2
- package/dist/common/src/Web.js +0 -61
- package/dist/common/src/WebSidecar.js +0 -14
- package/dist/common/src/components/DesignEditorPage.js +0 -205
- package/dist/common/src/components/SunriseAnimation.js +0 -291
- package/dist/common/src/components/SunriseAnimation.test/implementation.js +0 -1
- package/dist/common/src/components/SunriseAnimation.test/index.js +0 -1
- package/dist/common/src/components/SunriseAnimation.test/interface.js +0 -68
- package/dist/common/src/components/SunriseAnimation.test/specification.js +0 -1
- package/dist/common/src/components/SunriseAnimation.test/types.js +0 -2
- package/dist/common/src/components/TestStatusBadge.js +0 -35
- package/dist/common/src/components/pure/AppFrame.js +0 -69
- package/dist/common/src/components/pure/AppFrame.test/implementation.js +0 -63
- package/dist/common/src/components/pure/AppFrame.test/index.js +0 -14
- package/dist/common/src/components/pure/AppFrame.test/specification.js +0 -25
- package/dist/common/src/components/pure/AppFrame.test/types.js +0 -3
- package/dist/common/src/components/pure/FeaturesReporterView.js +0 -23
- package/dist/common/src/components/pure/FeaturesReporterView.test/implementation.js +0 -84
- package/dist/common/src/components/pure/FeaturesReporterView.test/index.js +0 -14
- package/dist/common/src/components/pure/FeaturesReporterView.test/specification.js +0 -27
- package/dist/common/src/components/pure/FeaturesReporterView.test/types.js +0 -2
- package/dist/common/src/components/pure/ModalContent.js +0 -86
- package/dist/common/src/components/pure/ModalContent.test/implementation.js +0 -35
- package/dist/common/src/components/pure/ModalContent.test/index.js +0 -58
- package/dist/common/src/components/pure/ModalContent.test/specification.js +0 -19
- package/dist/common/src/components/pure/ModalContent.test/types.js +0 -4
- package/dist/common/src/components/pure/NavBar.js +0 -44
- package/dist/common/src/components/pure/ProcessManager.js +0 -112
- package/dist/common/src/components/pure/ProcessManagerView.js +0 -237
- package/dist/common/src/components/pure/ProjectPageView.js +0 -181
- package/dist/common/src/components/pure/ProjectPageView.test/implementation.js +0 -184
- package/dist/common/src/components/pure/ProjectPageView.test/index.js +0 -14
- package/dist/common/src/components/pure/ProjectPageView.test/specification.js +0 -32
- package/dist/common/src/components/pure/ProjectPageView.test/types.js +0 -4
- package/dist/common/src/components/pure/ProjectsPageView.js +0 -72
- package/dist/common/src/components/pure/SettingsButton.js +0 -13
- package/dist/common/src/components/pure/SingleProcessView.js +0 -214
- package/dist/common/src/components/pure/TestPageView.js +0 -628
- package/dist/common/src/components/pure/TestPageView.test/implementation.js +0 -157
- package/dist/common/src/components/pure/TestPageView.test/index.js +0 -15
- package/dist/common/src/components/pure/TestPageView.test/specification.js +0 -26
- package/dist/common/src/components/pure/TestPageView.test/types.js +0 -4
- package/dist/common/src/components/pure/ThemeCard.js +0 -15
- package/dist/common/src/components/stateful/FeaturesReporter.js +0 -59
- package/dist/common/src/components/stateful/FileTree.js +0 -40
- package/dist/common/src/components/stateful/ProcessManagerPage.js +0 -112
- package/dist/common/src/components/stateful/ProjectPage.js +0 -101
- package/dist/common/src/components/stateful/ProjectsPage.js +0 -118
- package/dist/common/src/components/stateful/SettingsPage.js +0 -72
- package/dist/common/src/components/stateful/SingleProcessPage.js +0 -147
- package/dist/common/src/components/stateful/TestPage.js +0 -268
- package/dist/common/src/components/stateful/TextEditorPage.js +0 -154
- package/dist/common/src/defaultConfig.js +0 -19
- package/dist/common/src/esbuildConfigs/consoleDetectorPlugin.js +0 -38
- package/dist/common/src/esbuildConfigs/eslint-formatter-testeranto.js +0 -21
- package/dist/common/src/esbuildConfigs/featuresPlugin.js +0 -39
- package/dist/common/src/esbuildConfigs/index.js +0 -21
- package/dist/common/src/esbuildConfigs/inputFilesPlugin.js +0 -30
- package/dist/common/src/esbuildConfigs/nativeImportDetectorPlugin.js +0 -24
- package/dist/common/src/esbuildConfigs/node.js +0 -24
- package/dist/common/src/esbuildConfigs/pure.js +0 -42
- package/dist/common/src/esbuildConfigs/rebuildPlugin.js +0 -19
- package/dist/common/src/esbuildConfigs/web.js +0 -48
- package/dist/common/src/init-docs.js +0 -9
- package/dist/common/src/lib/BaseGiven.js +0 -99
- package/dist/common/src/lib/BaseSuite.js +0 -91
- package/dist/common/src/lib/BaseSuite.test/mock.js +0 -61
- package/dist/common/src/lib/BaseSuite.test/node.test.js +0 -10
- package/dist/common/src/lib/BaseSuite.test/pure.test.js +0 -10
- package/dist/common/src/lib/BaseSuite.test/test.js +0 -253
- package/dist/common/src/lib/BaseSuite.test/web.test.js +0 -10
- package/dist/common/src/lib/BaseThen.js +0 -64
- package/dist/common/src/lib/BaseWhen.js +0 -45
- package/dist/common/src/lib/Sidecar.js +0 -7
- package/dist/common/src/lib/Tiposkripto.js +0 -149
- package/dist/common/src/lib/Tiposkripto.test/MockTiposkripto.js +0 -36
- package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.adapter.js +0 -35
- package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.implementation.js +0 -173
- package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.js +0 -11
- package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.specification.js +0 -42
- package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.types.js +0 -2
- package/dist/common/src/lib/abstractBase.test/MockGiven.js +0 -24
- package/dist/common/src/lib/abstractBase.test/MockThen.js +0 -16
- package/dist/common/src/lib/abstractBase.test/MockWhen.js +0 -20
- package/dist/common/src/lib/abstractBase.test/adapter.js +0 -24
- package/dist/common/src/lib/abstractBase.test/implementation.js +0 -38
- package/dist/common/src/lib/abstractBase.test/index.js +0 -18
- package/dist/common/src/lib/abstractBase.test/specification.js +0 -19
- package/dist/common/src/lib/abstractBase.test/types.js +0 -2
- package/dist/common/src/lib/index.js +0 -31
- package/dist/common/src/lib/pmProxy.js +0 -293
- package/dist/common/src/lib/pmProxy.test/adapter.js +0 -54
- package/dist/common/src/lib/pmProxy.test/implementation.js +0 -137
- package/dist/common/src/lib/pmProxy.test/index.js +0 -15
- package/dist/common/src/lib/pmProxy.test/mockPM.js +0 -34
- package/dist/common/src/lib/pmProxy.test/mockPMBase.js +0 -131
- package/dist/common/src/lib/pmProxy.test/specification.js +0 -64
- package/dist/common/src/lib/pmProxy.test/types.js +0 -2
- package/dist/common/src/lib/types.js +0 -3
- package/dist/common/src/mothership/index.js +0 -21
- package/dist/common/src/mothership/test.js +0 -83
- package/dist/common/src/run.js +0 -49
- package/dist/common/src/testeranto.js +0 -283
- package/dist/common/src/types/features.js +0 -34
- package/dist/common/src/utils/api.js +0 -89
- package/dist/common/src/utils/buildTemplates.js +0 -37
- package/dist/common/src/utils/featureUtils.js +0 -29
- package/dist/common/src/utils/golingvuMetafile.js +0 -116
- package/dist/common/src/utils/logFiles.js +0 -52
- package/dist/common/src/utils/makePrompt.js +0 -116
- package/dist/common/src/utils/pitonoMetafile.js +0 -67
- package/dist/common/src/utils/queue.js +0 -36
- package/dist/common/src/utils.js +0 -133
- package/dist/common/src/web.html.js +0 -18
- package/dist/common/testeranto.config.js +0 -98
- package/dist/common/tsconfig.common.tsbuildinfo +0 -1
- package/dist/module/design-editor/DesignEditor.js +0 -206
- package/dist/module/design-editor/index.js +0 -2
- package/dist/module/design-editor/server.js +0 -92
- package/dist/module/design-editor/types.js +0 -1
- package/dist/module/package.json +0 -3
- package/dist/module/src/App.js +0 -70
- package/dist/module/src/CoreTypes.js +0 -1
- package/dist/module/src/Init.js +0 -43
- package/dist/module/src/Node.js +0 -33
- package/dist/module/src/NodeSidecar.js +0 -11
- package/dist/module/src/PM/PM_WithEslintAndTsc.js +0 -185
- package/dist/module/src/PM/__tests__/nodeSidecar.testeranto.js +0 -103
- package/dist/module/src/PM/__tests__/pureSidecar.testeranto.js +0 -88
- package/dist/module/src/PM/__tests__/webSidecar.testeranto.js +0 -88
- package/dist/module/src/PM/base.js +0 -250
- package/dist/module/src/PM/index.js +0 -2
- package/dist/module/src/PM/main.js +0 -1775
- package/dist/module/src/PM/node.js +0 -178
- package/dist/module/src/PM/nodeSidecar.js +0 -58
- package/dist/module/src/PM/pitonoRunner.js +0 -47
- package/dist/module/src/PM/pure.js +0 -107
- package/dist/module/src/PM/pureSidecar.js +0 -41
- package/dist/module/src/PM/sidecar.js +0 -7
- package/dist/module/src/PM/types.js +0 -1
- package/dist/module/src/PM/web.js +0 -108
- package/dist/module/src/PM/webSidecar.js +0 -40
- package/dist/module/src/Pure.js +0 -45
- package/dist/module/src/Pure.test.js +0 -175
- package/dist/module/src/PureSidecar.js +0 -9
- package/dist/module/src/ReportServer.js +0 -9
- package/dist/module/src/ReportServer.test.ts/index.js +0 -73
- package/dist/module/src/ReportServerLib.js +0 -134
- package/dist/module/src/Types.js +0 -1
- package/dist/module/src/Web.js +0 -54
- package/dist/module/src/WebSidecar.js +0 -10
- package/dist/module/src/components/DesignEditorPage.js +0 -168
- package/dist/module/src/components/SunriseAnimation.js +0 -256
- package/dist/module/src/components/SunriseAnimation.test/implementation.js +0 -1
- package/dist/module/src/components/SunriseAnimation.test/index.js +0 -1
- package/dist/module/src/components/SunriseAnimation.test/interface.js +0 -32
- package/dist/module/src/components/SunriseAnimation.test/specification.js +0 -1
- package/dist/module/src/components/SunriseAnimation.test/types.js +0 -1
- package/dist/module/src/components/TestStatusBadge.js +0 -28
- package/dist/module/src/components/pure/AppFrame.js +0 -32
- package/dist/module/src/components/pure/AppFrame.test/implementation.js +0 -57
- package/dist/module/src/components/pure/AppFrame.test/index.js +0 -9
- package/dist/module/src/components/pure/AppFrame.test/specification.js +0 -21
- package/dist/module/src/components/pure/AppFrame.test/types.js +0 -2
- package/dist/module/src/components/pure/FeaturesReporterView.js +0 -16
- package/dist/module/src/components/pure/FeaturesReporterView.test/implementation.js +0 -81
- package/dist/module/src/components/pure/FeaturesReporterView.test/index.js +0 -9
- package/dist/module/src/components/pure/FeaturesReporterView.test/specification.js +0 -23
- package/dist/module/src/components/pure/FeaturesReporterView.test/types.js +0 -1
- package/dist/module/src/components/pure/ModalContent.js +0 -79
- package/dist/module/src/components/pure/ModalContent.test/implementation.js +0 -32
- package/dist/module/src/components/pure/ModalContent.test/index.js +0 -53
- package/dist/module/src/components/pure/ModalContent.test/specification.js +0 -15
- package/dist/module/src/components/pure/ModalContent.test/types.js +0 -3
- package/dist/module/src/components/pure/NavBar.js +0 -37
- package/dist/module/src/components/pure/ProcessManager.js +0 -75
- package/dist/module/src/components/pure/ProcessManagerView.js +0 -200
- package/dist/module/src/components/pure/ProjectPageView.js +0 -174
- package/dist/module/src/components/pure/ProjectPageView.test/implementation.js +0 -181
- package/dist/module/src/components/pure/ProjectPageView.test/index.js +0 -9
- package/dist/module/src/components/pure/ProjectPageView.test/specification.js +0 -28
- package/dist/module/src/components/pure/ProjectPageView.test/types.js +0 -3
- package/dist/module/src/components/pure/ProjectsPageView.js +0 -65
- package/dist/module/src/components/pure/SettingsButton.js +0 -6
- package/dist/module/src/components/pure/SingleProcessView.js +0 -214
- package/dist/module/src/components/pure/TestPageView.js +0 -591
- package/dist/module/src/components/pure/TestPageView.test/implementation.js +0 -121
- package/dist/module/src/components/pure/TestPageView.test/index.js +0 -10
- package/dist/module/src/components/pure/TestPageView.test/specification.js +0 -22
- package/dist/module/src/components/pure/TestPageView.test/types.js +0 -3
- package/dist/module/src/components/pure/ThemeCard.js +0 -8
- package/dist/module/src/components/stateful/FeaturesReporter.js +0 -22
- package/dist/module/src/components/stateful/FileTree.js +0 -33
- package/dist/module/src/components/stateful/ProcessManagerPage.js +0 -75
- package/dist/module/src/components/stateful/ProjectPage.js +0 -64
- package/dist/module/src/components/stateful/ProjectsPage.js +0 -81
- package/dist/module/src/components/stateful/SettingsPage.js +0 -35
- package/dist/module/src/components/stateful/SingleProcessPage.js +0 -110
- package/dist/module/src/components/stateful/TestPage.js +0 -231
- package/dist/module/src/components/stateful/TextEditorPage.js +0 -117
- package/dist/module/src/defaultConfig.js +0 -17
- package/dist/module/src/esbuildConfigs/consoleDetectorPlugin.js +0 -32
- package/dist/module/src/esbuildConfigs/eslint-formatter-testeranto.js +0 -18
- package/dist/module/src/esbuildConfigs/featuresPlugin.js +0 -34
- package/dist/module/src/esbuildConfigs/index.js +0 -19
- package/dist/module/src/esbuildConfigs/inputFilesPlugin.js +0 -25
- package/dist/module/src/esbuildConfigs/nativeImportDetectorPlugin.js +0 -21
- package/dist/module/src/esbuildConfigs/node.js +0 -19
- package/dist/module/src/esbuildConfigs/pure.js +0 -37
- package/dist/module/src/esbuildConfigs/rebuildPlugin.js +0 -14
- package/dist/module/src/esbuildConfigs/web.js +0 -43
- package/dist/module/src/init-docs.js +0 -4
- package/dist/module/src/lib/BaseGiven.js +0 -95
- package/dist/module/src/lib/BaseSuite.js +0 -87
- package/dist/module/src/lib/BaseSuite.test/mock.js +0 -54
- package/dist/module/src/lib/BaseSuite.test/node.test.js +0 -5
- package/dist/module/src/lib/BaseSuite.test/pure.test.js +0 -5
- package/dist/module/src/lib/BaseSuite.test/test.js +0 -249
- package/dist/module/src/lib/BaseSuite.test/web.test.js +0 -5
- package/dist/module/src/lib/BaseThen.js +0 -60
- package/dist/module/src/lib/BaseWhen.js +0 -41
- package/dist/module/src/lib/Sidecar.js +0 -3
- package/dist/module/src/lib/Tiposkripto.js +0 -146
- package/dist/module/src/lib/Tiposkripto.test/MockTiposkripto.js +0 -29
- package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.adapter.js +0 -32
- package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.implementation.js +0 -170
- package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.js +0 -6
- package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.specification.js +0 -38
- package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.types.js +0 -1
- package/dist/module/src/lib/abstractBase.test/MockGiven.js +0 -20
- package/dist/module/src/lib/abstractBase.test/MockThen.js +0 -12
- package/dist/module/src/lib/abstractBase.test/MockWhen.js +0 -16
- package/dist/module/src/lib/abstractBase.test/adapter.js +0 -21
- package/dist/module/src/lib/abstractBase.test/implementation.js +0 -35
- package/dist/module/src/lib/abstractBase.test/index.js +0 -13
- package/dist/module/src/lib/abstractBase.test/specification.js +0 -15
- package/dist/module/src/lib/abstractBase.test/types.js +0 -1
- package/dist/module/src/lib/index.js +0 -26
- package/dist/module/src/lib/pmProxy.js +0 -284
- package/dist/module/src/lib/pmProxy.test/adapter.js +0 -51
- package/dist/module/src/lib/pmProxy.test/implementation.js +0 -134
- package/dist/module/src/lib/pmProxy.test/index.js +0 -10
- package/dist/module/src/lib/pmProxy.test/mockPM.js +0 -30
- package/dist/module/src/lib/pmProxy.test/mockPMBase.js +0 -127
- package/dist/module/src/lib/pmProxy.test/specification.js +0 -60
- package/dist/module/src/lib/pmProxy.test/types.js +0 -1
- package/dist/module/src/lib/types.js +0 -2
- package/dist/module/src/mothership/index.js +0 -16
- package/dist/module/src/mothership/test.js +0 -78
- package/dist/module/src/run.js +0 -49
- package/dist/module/src/testeranto.js +0 -245
- package/dist/module/src/types/features.js +0 -31
- package/dist/module/src/utils/api.js +0 -84
- package/dist/module/src/utils/buildTemplates.js +0 -33
- package/dist/module/src/utils/featureUtils.js +0 -24
- package/dist/module/src/utils/golingvuMetafile.js +0 -109
- package/dist/module/src/utils/logFiles.js +0 -47
- package/dist/module/src/utils/makePrompt.js +0 -109
- package/dist/module/src/utils/pitonoMetafile.js +0 -60
- package/dist/module/src/utils/queue.js +0 -32
- package/dist/module/src/utils.js +0 -121
- package/dist/module/src/web.html.js +0 -16
- package/dist/module/testeranto.config.js +0 -96
- package/dist/module/tsconfig.module.tsbuildinfo +0 -1
- package/dist/types/design-editor/DesignEditor.d.ts +0 -18
- package/dist/types/design-editor/server.d.ts +0 -1
- package/dist/types/src/App.d.ts +0 -1
- package/dist/types/src/CoreTypes.d.ts +0 -52
- package/dist/types/src/Init.d.ts +0 -2
- package/dist/types/src/Node.d.ts +0 -9
- package/dist/types/src/NodeSidecar.d.ts +0 -6
- package/dist/types/src/PM/PM_WithEslintAndTsc.d.ts +0 -24
- package/dist/types/src/PM/__tests__/nodeSidecar.testeranto.d.ts +0 -2
- package/dist/types/src/PM/__tests__/pureSidecar.testeranto.d.ts +0 -2
- package/dist/types/src/PM/__tests__/webSidecar.testeranto.d.ts +0 -2
- package/dist/types/src/PM/base.d.ts +0 -35
- package/dist/types/src/PM/index.d.ts +0 -37
- package/dist/types/src/PM/main.d.ts +0 -79
- package/dist/types/src/PM/node.d.ts +0 -40
- package/dist/types/src/PM/nodeSidecar.d.ts +0 -13
- package/dist/types/src/PM/pitonoRunner.d.ts +0 -7
- package/dist/types/src/PM/pure.d.ts +0 -43
- package/dist/types/src/PM/pureSidecar.d.ts +0 -11
- package/dist/types/src/PM/sidecar.d.ts +0 -8
- package/dist/types/src/PM/web.d.ts +0 -43
- package/dist/types/src/PM/webSidecar.d.ts +0 -11
- package/dist/types/src/Pure.d.ts +0 -9
- package/dist/types/src/Pure.test.d.ts +0 -2
- package/dist/types/src/PureSidecar.d.ts +0 -8
- package/dist/types/src/ReportServer.d.ts +0 -1
- package/dist/types/src/ReportServer.test.ts/index.d.ts +0 -2
- package/dist/types/src/ReportServerLib.d.ts +0 -1
- package/dist/types/src/Types.d.ts +0 -118
- package/dist/types/src/Web.d.ts +0 -9
- package/dist/types/src/WebSidecar.d.ts +0 -8
- package/dist/types/src/components/DesignEditorPage.d.ts +0 -1
- package/dist/types/src/components/SunriseAnimation.d.ts +0 -5
- package/dist/types/src/components/SunriseAnimation.test/interface.d.ts +0 -11
- package/dist/types/src/components/SunriseAnimation.test/types.d.ts +0 -39
- package/dist/types/src/components/TestStatusBadge.d.ts +0 -15
- package/dist/types/src/components/pure/AppFrame.d.ts +0 -11
- package/dist/types/src/components/pure/AppFrame.test/implementation.d.ts +0 -3
- package/dist/types/src/components/pure/AppFrame.test/index.d.ts +0 -3
- package/dist/types/src/components/pure/AppFrame.test/specification.d.ts +0 -3
- package/dist/types/src/components/pure/AppFrame.test/types.d.ts +0 -33
- package/dist/types/src/components/pure/FeaturesReporterView.d.ts +0 -7
- package/dist/types/src/components/pure/FeaturesReporterView.test/implementation.d.ts +0 -3
- package/dist/types/src/components/pure/FeaturesReporterView.test/index.d.ts +0 -2
- package/dist/types/src/components/pure/FeaturesReporterView.test/specification.d.ts +0 -3
- package/dist/types/src/components/pure/FeaturesReporterView.test/types.d.ts +0 -54
- package/dist/types/src/components/pure/ModalContent.d.ts +0 -7
- package/dist/types/src/components/pure/ModalContent.test/implementation.d.ts +0 -3
- package/dist/types/src/components/pure/ModalContent.test/index.d.ts +0 -2
- package/dist/types/src/components/pure/ModalContent.test/specification.d.ts +0 -3
- package/dist/types/src/components/pure/ModalContent.test/types.d.ts +0 -45
- package/dist/types/src/components/pure/NavBar.d.ts +0 -23
- package/dist/types/src/components/pure/ProcessManager.d.ts +0 -8
- package/dist/types/src/components/pure/ProcessManagerView.d.ts +0 -20
- package/dist/types/src/components/pure/ProjectPageView.d.ts +0 -14
- package/dist/types/src/components/pure/ProjectPageView.test/implementation.d.ts +0 -3
- package/dist/types/src/components/pure/ProjectPageView.test/index.d.ts +0 -2
- package/dist/types/src/components/pure/ProjectPageView.test/specification.d.ts +0 -3
- package/dist/types/src/components/pure/ProjectPageView.test/types.d.ts +0 -57
- package/dist/types/src/components/pure/ProjectsPageView.d.ts +0 -29
- package/dist/types/src/components/pure/SettingsButton.d.ts +0 -2
- package/dist/types/src/components/pure/TestPageView.d.ts +0 -15
- package/dist/types/src/components/pure/TestPageView.test/implementation.d.ts +0 -12
- package/dist/types/src/components/pure/TestPageView.test/index.d.ts +0 -3
- package/dist/types/src/components/pure/TestPageView.test/specification.d.ts +0 -11
- package/dist/types/src/components/pure/TestPageView.test/types.d.ts +0 -65
- package/dist/types/src/components/pure/ThemeCard.d.ts +0 -9
- package/dist/types/src/components/stateful/FeaturesReporter.d.ts +0 -2
- package/dist/types/src/components/stateful/FileTree.d.ts +0 -8
- package/dist/types/src/components/stateful/ProcessManagerPage.d.ts +0 -2
- package/dist/types/src/components/stateful/ProjectPage.d.ts +0 -1
- package/dist/types/src/components/stateful/ProjectsPage.d.ts +0 -1
- package/dist/types/src/components/stateful/SettingsPage.d.ts +0 -2
- package/dist/types/src/components/stateful/SingleProcessPage.d.ts +0 -2
- package/dist/types/src/components/stateful/TestPage.d.ts +0 -1
- package/dist/types/src/components/stateful/TextEditorPage.d.ts +0 -1
- package/dist/types/src/defaultConfig.d.ts +0 -3
- package/dist/types/src/esbuildConfigs/consoleDetectorPlugin.d.ts +0 -2
- package/dist/types/src/esbuildConfigs/eslint-formatter-testeranto.d.ts +0 -2
- package/dist/types/src/esbuildConfigs/featuresPlugin.d.ts +0 -5
- package/dist/types/src/esbuildConfigs/index.d.ts +0 -4
- package/dist/types/src/esbuildConfigs/inputFilesPlugin.d.ts +0 -7
- package/dist/types/src/esbuildConfigs/nativeImportDetectorPlugin.d.ts +0 -2
- package/dist/types/src/esbuildConfigs/node.d.ts +0 -4
- package/dist/types/src/esbuildConfigs/pure.d.ts +0 -4
- package/dist/types/src/esbuildConfigs/rebuildPlugin.d.ts +0 -6
- package/dist/types/src/esbuildConfigs/web.d.ts +0 -4
- package/dist/types/src/init-docs.d.ts +0 -1
- package/dist/types/src/lib/BaseGiven.d.ts +0 -44
- package/dist/types/src/lib/BaseSuite.d.ts +0 -46
- package/dist/types/src/lib/BaseSuite.test/mock.d.ts +0 -21
- package/dist/types/src/lib/BaseSuite.test/node.test.d.ts +0 -2
- package/dist/types/src/lib/BaseSuite.test/pure.test.d.ts +0 -2
- package/dist/types/src/lib/BaseSuite.test/test.d.ts +0 -36
- package/dist/types/src/lib/BaseSuite.test/web.test.d.ts +0 -2
- package/dist/types/src/lib/BaseThen.d.ts +0 -27
- package/dist/types/src/lib/BaseWhen.d.ts +0 -27
- package/dist/types/src/lib/Sidecar.d.ts +0 -5
- package/dist/types/src/lib/Tiposkripto.d.ts +0 -35
- package/dist/types/src/lib/Tiposkripto.test/MockTiposkripto.d.ts +0 -15
- package/dist/types/src/lib/Tiposkripto.test/Tiposkripto.adapter.d.ts +0 -3
- package/dist/types/src/lib/Tiposkripto.test/Tiposkripto.d.ts +0 -2
- package/dist/types/src/lib/Tiposkripto.test/Tiposkripto.implementation.d.ts +0 -3
- package/dist/types/src/lib/Tiposkripto.test/Tiposkripto.specification.d.ts +0 -3
- package/dist/types/src/lib/Tiposkripto.test/Tiposkripto.types.d.ts +0 -53
- package/dist/types/src/lib/abstractBase.test/MockGiven.d.ts +0 -9
- package/dist/types/src/lib/abstractBase.test/MockThen.d.ts +0 -6
- package/dist/types/src/lib/abstractBase.test/MockWhen.d.ts +0 -6
- package/dist/types/src/lib/abstractBase.test/adapter.d.ts +0 -3
- package/dist/types/src/lib/abstractBase.test/implementation.d.ts +0 -3
- package/dist/types/src/lib/abstractBase.test/index.d.ts +0 -2
- package/dist/types/src/lib/abstractBase.test/specification.d.ts +0 -3
- package/dist/types/src/lib/abstractBase.test/types.d.ts +0 -39
- package/dist/types/src/lib/index.d.ts +0 -67
- package/dist/types/src/lib/pmProxy.d.ts +0 -12
- package/dist/types/src/lib/pmProxy.test/adapter.d.ts +0 -3
- package/dist/types/src/lib/pmProxy.test/implementation.d.ts +0 -3
- package/dist/types/src/lib/pmProxy.test/index.d.ts +0 -6
- package/dist/types/src/lib/pmProxy.test/mockPM.d.ts +0 -10
- package/dist/types/src/lib/pmProxy.test/mockPMBase.d.ts +0 -40
- package/dist/types/src/lib/pmProxy.test/specification.d.ts +0 -3
- package/dist/types/src/lib/pmProxy.test/types.d.ts +0 -42
- package/dist/types/src/lib/types.d.ts +0 -24
- package/dist/types/src/mothership/index.d.ts +0 -2
- package/dist/types/src/mothership/test.d.ts +0 -2
- package/dist/types/src/testeranto.d.ts +0 -1
- package/dist/types/src/types/features.d.ts +0 -7
- package/dist/types/src/utils/api.d.ts +0 -9
- package/dist/types/src/utils/buildTemplates.d.ts +0 -1
- package/dist/types/src/utils/featureUtils.d.ts +0 -6
- package/dist/types/src/utils/golingvuMetafile.d.ts +0 -19
- package/dist/types/src/utils/logFiles.d.ts +0 -75
- package/dist/types/src/utils/makePrompt.d.ts +0 -2
- package/dist/types/src/utils/pitonoMetafile.d.ts +0 -7
- package/dist/types/src/utils/queue.d.ts +0 -11
- package/dist/types/src/utils.d.ts +0 -20
- package/dist/types/src/web.html.d.ts +0 -2
- package/dist/types/tsconfig.types.tsbuildinfo +0 -1
- package/pitono/__init__.py +0 -54
- package/pitono/types.py +0 -78
- package/src/golingvu/base_suite_test.go +0 -197
- package/src/templates/frontpage.html +0 -340
- package/src/templates/frontpage.md +0 -79
- package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/tests.json +0 -29
- /package/{pitono → src/pitono}/core_generator.py +0 -0
- /package/{pitono → src/pitono}/pitono.egg-info/dependency_links.txt +0 -0
- /package/{pitono → src/pitono}/pitono.egg-info/entry_points.txt +0 -0
- /package/{pitono → src/pitono}/pitono.egg-info/top_level.txt +0 -0
- /package/{pitono → src/pitono}/pyproject.toml +0 -0
- /package/{pitono → src/pitono}/setup.py +0 -0
- /package/{pitono → src/pitono}/simple_adapter.py +0 -0
- /package/{dist/types/src/PM/types.d.ts → testeranto/helpo_chat_message.txt} +0 -0
- /package/{dist/types/src/components/SunriseAnimation.test/implementation.d.ts → testeranto/reports/core/example/test_example/python/stdout.log} +0 -0
- /package/{dist/types/src/components/SunriseAnimation.test/index.d.ts → testeranto/reports/core/src/Pure.test/pure/exit.log} +0 -0
- /package/{dist/types/src/components/SunriseAnimation.test/specification.d.ts → testeranto/reports/core/src/Pure.test/pure/lint_errors.txt} +0 -0
- /package/{dist/types/src/components/pure/SingleProcessView.d.ts → testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/debug.log} +0 -0
- /package/{dist/types/src/run.d.ts → testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/error.log} +0 -0
|
@@ -1,165 +1,869 @@
|
|
|
1
|
-
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
3
|
import fs from "fs";
|
|
3
4
|
import path from "path";
|
|
4
5
|
|
|
5
|
-
export interface
|
|
6
|
+
export interface GolingvuMetafile {
|
|
6
7
|
errors: any[];
|
|
7
8
|
warnings: any[];
|
|
8
|
-
metafile
|
|
9
|
-
inputs: Record<
|
|
10
|
-
bytes: number;
|
|
11
|
-
imports: any[];
|
|
12
|
-
}>;
|
|
13
|
-
outputs: Record<
|
|
9
|
+
metafile: {
|
|
10
|
+
inputs: Record<
|
|
14
11
|
string,
|
|
15
12
|
{
|
|
16
13
|
bytes: number;
|
|
17
|
-
|
|
14
|
+
imports: {
|
|
15
|
+
path: string;
|
|
16
|
+
kind: string;
|
|
17
|
+
external?: boolean;
|
|
18
|
+
}[];
|
|
19
|
+
format?: string;
|
|
20
|
+
}
|
|
21
|
+
>;
|
|
22
|
+
outputs: Record<
|
|
23
|
+
string,
|
|
24
|
+
{
|
|
25
|
+
imports: any[];
|
|
26
|
+
exports: any[];
|
|
18
27
|
entryPoint: string;
|
|
28
|
+
inputs: Record<
|
|
29
|
+
string,
|
|
30
|
+
{
|
|
31
|
+
bytesInOutput: number;
|
|
32
|
+
}
|
|
33
|
+
>;
|
|
34
|
+
bytes: number;
|
|
35
|
+
signature: string;
|
|
19
36
|
}
|
|
20
37
|
>;
|
|
21
38
|
};
|
|
22
39
|
}
|
|
23
40
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
41
|
+
import { execSync } from "child_process";
|
|
42
|
+
|
|
43
|
+
interface GoListOutput {
|
|
44
|
+
Dir: string;
|
|
45
|
+
ImportPath: string;
|
|
46
|
+
ImportComment?: string;
|
|
47
|
+
Name: string;
|
|
48
|
+
Target?: string;
|
|
49
|
+
Stale?: boolean;
|
|
50
|
+
StaleReason?: string;
|
|
51
|
+
Root?: string;
|
|
52
|
+
GoFiles?: string[];
|
|
53
|
+
CgoFiles?: string[];
|
|
54
|
+
IgnoredGoFiles?: string[];
|
|
55
|
+
CFiles?: string[];
|
|
56
|
+
CXXFiles?: string[];
|
|
57
|
+
MFiles?: string[];
|
|
58
|
+
HFiles?: string[];
|
|
59
|
+
FFiles?: string[];
|
|
60
|
+
SFiles?: string[];
|
|
61
|
+
SwigFiles?: string[];
|
|
62
|
+
SwigCXXFiles?: string[];
|
|
63
|
+
SysoFiles?: string[];
|
|
64
|
+
Imports?: string[];
|
|
65
|
+
Deps?: string[];
|
|
66
|
+
TestImports?: string[];
|
|
67
|
+
XTestImports?: string[];
|
|
68
|
+
Module?: {
|
|
69
|
+
Path: string;
|
|
70
|
+
Version: string;
|
|
71
|
+
Replace?: {
|
|
72
|
+
Path: string;
|
|
73
|
+
Version: string;
|
|
74
|
+
};
|
|
75
|
+
Main: boolean;
|
|
76
|
+
Dir: string;
|
|
77
|
+
GoMod: string;
|
|
78
|
+
GoVersion: string;
|
|
79
|
+
};
|
|
80
|
+
Match?: string[];
|
|
81
|
+
DepOnly?: boolean;
|
|
82
|
+
Standard?: boolean;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function runGoList(pattern: string): GoListOutput[] {
|
|
86
|
+
try {
|
|
87
|
+
// First, check if the pattern is a file path and convert it to a package path
|
|
88
|
+
let processedPattern = pattern;
|
|
89
|
+
if (fs.existsSync(pattern) && pattern.endsWith(".go")) {
|
|
90
|
+
// Get the directory of the file
|
|
91
|
+
const dir = path.dirname(pattern);
|
|
92
|
+
// Use the directory as the pattern
|
|
93
|
+
processedPattern = dir;
|
|
31
94
|
}
|
|
32
|
-
> = {};
|
|
33
95
|
|
|
34
|
-
|
|
35
|
-
|
|
96
|
+
const output = execSync(`go list -mod=readonly -json ${processedPattern}`, {
|
|
97
|
+
encoding: "utf-8",
|
|
98
|
+
cwd: process.cwd(),
|
|
99
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
// The output is a sequence of JSON objects, not a JSON array
|
|
103
|
+
// We need to split them and parse individually
|
|
104
|
+
const objects: GoListOutput[] = [];
|
|
105
|
+
let buffer = "";
|
|
106
|
+
let depth = 0;
|
|
107
|
+
let inString = false;
|
|
108
|
+
let escapeNext = false;
|
|
109
|
+
|
|
110
|
+
for (const char of output) {
|
|
111
|
+
if (escapeNext) {
|
|
112
|
+
buffer += char;
|
|
113
|
+
escapeNext = false;
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
if (char === "\\") {
|
|
118
|
+
escapeNext = true;
|
|
119
|
+
buffer += char;
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
if (char === '"') {
|
|
124
|
+
inString = !inString;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
if (!inString) {
|
|
128
|
+
if (char === "{") {
|
|
129
|
+
depth++;
|
|
130
|
+
} else if (char === "}") {
|
|
131
|
+
depth--;
|
|
132
|
+
if (depth === 0) {
|
|
133
|
+
try {
|
|
134
|
+
objects.push(JSON.parse(buffer + char));
|
|
135
|
+
buffer = "";
|
|
136
|
+
continue;
|
|
137
|
+
} catch (e) {
|
|
138
|
+
console.warn("Failed to parse JSON object:", buffer + char);
|
|
139
|
+
buffer = "";
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
if (depth > 0 || buffer.length > 0) {
|
|
146
|
+
buffer += char;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return objects;
|
|
150
|
+
} catch (error) {
|
|
151
|
+
console.warn(`Error running 'go list -json ${pattern}':`, error);
|
|
152
|
+
// Fall back to using the current directory
|
|
36
153
|
try {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
let
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
154
|
+
const output = execSync(`go list -mod=readonly -json .`, {
|
|
155
|
+
encoding: "utf-8",
|
|
156
|
+
cwd: process.cwd(),
|
|
157
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
// Parse the output
|
|
161
|
+
const objects: GoListOutput[] = [];
|
|
162
|
+
let buffer = "";
|
|
163
|
+
let depth = 0;
|
|
164
|
+
let inString = false;
|
|
165
|
+
let escapeNext = false;
|
|
166
|
+
|
|
167
|
+
for (const char of output) {
|
|
168
|
+
if (escapeNext) {
|
|
169
|
+
buffer += char;
|
|
170
|
+
escapeNext = false;
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
if (char === "\\") {
|
|
175
|
+
escapeNext = true;
|
|
176
|
+
buffer += char;
|
|
177
|
+
continue;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
if (char === '"') {
|
|
181
|
+
inString = !inString;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
if (!inString) {
|
|
185
|
+
if (char === "{") {
|
|
186
|
+
depth++;
|
|
187
|
+
} else if (char === "}") {
|
|
188
|
+
depth--;
|
|
189
|
+
if (depth === 0) {
|
|
190
|
+
try {
|
|
191
|
+
objects.push(JSON.parse(buffer + char));
|
|
192
|
+
buffer = "";
|
|
193
|
+
continue;
|
|
194
|
+
} catch (e) {
|
|
195
|
+
console.warn("Failed to parse JSON object:", buffer + char);
|
|
196
|
+
buffer = "";
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
if (depth > 0 || buffer.length > 0) {
|
|
203
|
+
buffer += char;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
return objects;
|
|
207
|
+
} catch (fallbackError) {
|
|
208
|
+
console.warn("Fallback go list also failed:", fallbackError);
|
|
209
|
+
return [];
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
function findGoFilesInProject(): string[] {
|
|
215
|
+
// Use go list to find all Go files in the current module
|
|
216
|
+
const packages = runGoList("./...");
|
|
217
|
+
const goFiles: string[] = [];
|
|
218
|
+
|
|
219
|
+
for (const pkg of packages) {
|
|
220
|
+
if (pkg.GoFiles) {
|
|
221
|
+
for (const file of pkg.GoFiles) {
|
|
222
|
+
goFiles.push(path.join(pkg.Dir, file));
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
// Also include CgoFiles and other file types if needed
|
|
226
|
+
if (pkg.CgoFiles) {
|
|
227
|
+
for (const file of pkg.CgoFiles) {
|
|
228
|
+
goFiles.push(path.join(pkg.Dir, file));
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
return goFiles;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
function collectGoDependencies(
|
|
237
|
+
filePath: string,
|
|
238
|
+
visited: Set<string> = new Set()
|
|
239
|
+
): string[] {
|
|
240
|
+
if (visited.has(filePath)) return [];
|
|
241
|
+
visited.add(filePath);
|
|
242
|
+
|
|
243
|
+
const dependencies: string[] = [filePath];
|
|
244
|
+
|
|
245
|
+
// Find the package this file belongs to by looking at the directory
|
|
246
|
+
const dir = path.dirname(filePath);
|
|
247
|
+
|
|
248
|
+
// Always include other .go files in the same directory
|
|
249
|
+
try {
|
|
250
|
+
const files = fs.readdirSync(dir);
|
|
251
|
+
for (const file of files) {
|
|
252
|
+
if (file.endsWith(".go") && file !== path.basename(filePath)) {
|
|
253
|
+
const fullPath = path.join(dir, file);
|
|
254
|
+
dependencies.push(fullPath);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
} catch (error) {
|
|
258
|
+
console.warn(`Could not read directory ${dir}:`, error);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
// Parse imports from the file content to find local imports
|
|
262
|
+
try {
|
|
263
|
+
const content = fs.readFileSync(filePath, "utf-8");
|
|
264
|
+
const importRegex = /import\s*(?:\(\s*([\s\S]*?)\s*\)|"([^"]+)")/g;
|
|
265
|
+
|
|
266
|
+
let match;
|
|
267
|
+
while ((match = importRegex.exec(content)) !== null) {
|
|
268
|
+
if (match[2]) {
|
|
269
|
+
// Single import
|
|
270
|
+
const importPath = match[2].trim();
|
|
271
|
+
processImport(importPath, dir, dependencies, visited);
|
|
272
|
+
} else if (match[1]) {
|
|
273
|
+
// Multi-line imports in parentheses
|
|
274
|
+
const importBlock = match[1];
|
|
275
|
+
const importLines = importBlock
|
|
276
|
+
.split("\n")
|
|
277
|
+
.map((line) => line.trim())
|
|
278
|
+
.filter((line) => line.length > 0 && !line.startsWith("//"));
|
|
279
|
+
|
|
280
|
+
for (const line of importLines) {
|
|
281
|
+
const lineMatch = line.match(/"([^"]+)"/);
|
|
282
|
+
if (lineMatch) {
|
|
283
|
+
const importPath = lineMatch[1].trim();
|
|
284
|
+
processImport(importPath, dir, dependencies, visited);
|
|
285
|
+
}
|
|
56
286
|
}
|
|
57
287
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
288
|
+
}
|
|
289
|
+
} catch (error) {
|
|
290
|
+
console.warn(`Could not read file ${filePath} for import parsing:`, error);
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
return [...new Set(dependencies)];
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
function processImport(
|
|
297
|
+
importPath: string,
|
|
298
|
+
currentDir: string,
|
|
299
|
+
dependencies: string[],
|
|
300
|
+
visited: Set<string>
|
|
301
|
+
) {
|
|
302
|
+
// Check if it's a standard library import (no dots in first path element)
|
|
303
|
+
const firstPathElement = importPath.split("/")[0];
|
|
304
|
+
const isExternal = firstPathElement.includes(".");
|
|
305
|
+
|
|
306
|
+
// If it's not external, it's either standard library or local
|
|
307
|
+
// For local imports, they should be relative to the current module root
|
|
308
|
+
if (!isExternal) {
|
|
309
|
+
// Try to find the imported file locally
|
|
310
|
+
// Look in vendor directory first (common for Go projects)
|
|
311
|
+
const potentialPaths = [
|
|
312
|
+
path.join(process.cwd(), "vendor", importPath),
|
|
313
|
+
path.join(currentDir, importPath),
|
|
314
|
+
path.join(process.cwd(), importPath),
|
|
315
|
+
path.join(process.cwd(), "src", importPath),
|
|
316
|
+
];
|
|
317
|
+
|
|
318
|
+
for (const potentialPath of potentialPaths) {
|
|
319
|
+
// Check if it's a directory with .go files
|
|
320
|
+
if (
|
|
321
|
+
fs.existsSync(potentialPath) &&
|
|
322
|
+
fs.statSync(potentialPath).isDirectory()
|
|
323
|
+
) {
|
|
61
324
|
try {
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
325
|
+
const files = fs.readdirSync(potentialPath);
|
|
326
|
+
for (const file of files) {
|
|
327
|
+
if (file.endsWith(".go") && !file.endsWith("_test.go")) {
|
|
328
|
+
const fullPath = path.join(potentialPath, file);
|
|
329
|
+
dependencies.push(...collectGoDependencies(fullPath, visited));
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
break;
|
|
333
|
+
} catch (error) {
|
|
334
|
+
console.warn(`Could not read directory ${potentialPath}:`, error);
|
|
67
335
|
}
|
|
68
336
|
}
|
|
337
|
+
// Check if it's a .go file directly
|
|
338
|
+
const goFilePath = potentialPath + ".go";
|
|
339
|
+
if (fs.existsSync(goFilePath)) {
|
|
340
|
+
dependencies.push(...collectGoDependencies(goFilePath, visited));
|
|
341
|
+
break;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
69
346
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
347
|
+
function parseGoImports(
|
|
348
|
+
filePath: string
|
|
349
|
+
): { path: string; kind: string; external?: boolean }[] {
|
|
350
|
+
// Find the package this file belongs to
|
|
351
|
+
const dir = path.dirname(filePath);
|
|
352
|
+
const packages = runGoList(dir);
|
|
353
|
+
|
|
354
|
+
if (packages.length === 0) {
|
|
355
|
+
return [];
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
const pkg = packages[0];
|
|
359
|
+
const imports: { path: string; kind: string; external?: boolean }[] = [];
|
|
360
|
+
|
|
361
|
+
if (pkg.Imports) {
|
|
362
|
+
for (const importPath of pkg.Imports) {
|
|
363
|
+
// Check if it's a standard library import by seeing if it has a dot in the first path element
|
|
364
|
+
const firstPathElement = importPath.split("/")[0];
|
|
365
|
+
const isExternal = firstPathElement.includes(".");
|
|
366
|
+
|
|
367
|
+
imports.push({
|
|
368
|
+
path: importPath,
|
|
369
|
+
kind: "import-statement",
|
|
370
|
+
external: isExternal,
|
|
371
|
+
});
|
|
80
372
|
}
|
|
81
373
|
}
|
|
82
374
|
|
|
83
|
-
//
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
375
|
+
// Add standard library imports from the file content
|
|
376
|
+
try {
|
|
377
|
+
const content = fs.readFileSync(filePath, "utf-8");
|
|
378
|
+
const importRegex = /import\s*(?:\(\s*([\s\S]*?)\s*\)|"([^"]+)")/g;
|
|
379
|
+
|
|
380
|
+
let match;
|
|
381
|
+
while ((match = importRegex.exec(content)) !== null) {
|
|
382
|
+
if (match[2]) {
|
|
383
|
+
const importPath = match[2].trim();
|
|
384
|
+
const firstPathElement = importPath.split("/")[0];
|
|
385
|
+
const isExternal = firstPathElement.includes(".");
|
|
386
|
+
|
|
387
|
+
// Check if we already have this import from go list
|
|
388
|
+
if (!imports.some((imp) => imp.path === importPath)) {
|
|
389
|
+
imports.push({
|
|
390
|
+
path: importPath,
|
|
391
|
+
kind: "import-statement",
|
|
392
|
+
external: isExternal,
|
|
393
|
+
});
|
|
394
|
+
}
|
|
395
|
+
} else if (match[1]) {
|
|
396
|
+
const importBlock = match[1];
|
|
397
|
+
const importLines = importBlock
|
|
398
|
+
.split("\n")
|
|
399
|
+
.map((line) => line.trim())
|
|
400
|
+
.filter((line) => line.length > 0 && !line.startsWith("//"));
|
|
401
|
+
|
|
402
|
+
for (const line of importLines) {
|
|
403
|
+
const lineMatch = line.match(/"([^"]+)"/);
|
|
404
|
+
if (lineMatch) {
|
|
405
|
+
const importPath = lineMatch[1].trim();
|
|
406
|
+
const firstPathElement = importPath.split("/")[0];
|
|
407
|
+
const isExternal = firstPathElement.includes(".");
|
|
408
|
+
|
|
409
|
+
if (!imports.some((imp) => imp.path === importPath)) {
|
|
410
|
+
imports.push({
|
|
411
|
+
path: importPath,
|
|
412
|
+
kind: "import-statement",
|
|
413
|
+
external: isExternal,
|
|
414
|
+
});
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
} catch (error) {
|
|
421
|
+
console.warn(`Could not read file ${filePath} for import parsing:`, error);
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
return imports;
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
function findProjectRoot(): string {
|
|
428
|
+
// Start from current directory and walk up until we find package.json
|
|
429
|
+
let currentDir = process.cwd();
|
|
430
|
+
while (currentDir !== path.parse(currentDir).root) {
|
|
431
|
+
const packageJsonPath = path.join(currentDir, 'package.json');
|
|
432
|
+
if (fs.existsSync(packageJsonPath)) {
|
|
433
|
+
return currentDir;
|
|
434
|
+
}
|
|
435
|
+
currentDir = path.dirname(currentDir);
|
|
436
|
+
}
|
|
437
|
+
// Fallback to current directory if package.json not found
|
|
438
|
+
return process.cwd();
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
function isGoAvailable(): boolean {
|
|
442
|
+
try {
|
|
443
|
+
execSync("go version", { stdio: "pipe" });
|
|
444
|
+
return true;
|
|
445
|
+
} catch {
|
|
446
|
+
return false;
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
let generationQueue: Promise<GolingvuMetafile> | null = null;
|
|
451
|
+
|
|
452
|
+
export async function generateGolingvuMetafile(
|
|
453
|
+
testName: string,
|
|
454
|
+
entryPoints: string[]
|
|
455
|
+
): Promise<GolingvuMetafile> {
|
|
456
|
+
// If there's already a generation in progress, wait for it to complete
|
|
457
|
+
if (generationQueue) {
|
|
458
|
+
console.log("Generation already in progress, waiting...");
|
|
459
|
+
return generationQueue;
|
|
460
|
+
}
|
|
91
461
|
|
|
462
|
+
generationQueue = (async () => {
|
|
463
|
+
console.log(`Generating Golang metafile for test: ${testName}`);
|
|
464
|
+
console.log(`Entry points provided: ${JSON.stringify(entryPoints)}`);
|
|
465
|
+
console.log(`Current working directory: ${process.cwd()}`);
|
|
466
|
+
|
|
467
|
+
const inputs: Record<string, any> = {};
|
|
468
|
+
const outputs: Record<string, any> = {};
|
|
469
|
+
const signature = Date.now().toString(36);
|
|
470
|
+
|
|
471
|
+
// Check if go is available
|
|
472
|
+
if (!isGoAvailable()) {
|
|
473
|
+
console.warn("Go toolchain is not available. Using fallback method.");
|
|
474
|
+
// Fallback to the original implementation
|
|
475
|
+
// ... (we'll need to include the original implementation here)
|
|
476
|
+
// For now, let's return an empty metafile
|
|
477
|
+
return {
|
|
478
|
+
errors: [],
|
|
479
|
+
warnings: [],
|
|
480
|
+
metafile: {
|
|
481
|
+
inputs: {},
|
|
482
|
+
outputs: {},
|
|
483
|
+
},
|
|
484
|
+
};
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
// If entry points are provided, use them directly
|
|
488
|
+
// Make sure they're not test files
|
|
489
|
+
const filteredEntryPoints: string[] = [];
|
|
92
490
|
for (const entryPoint of entryPoints) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
const goFiles = fs.readdirSync(entryDir)
|
|
98
|
-
.filter(file => file.endsWith('.go'))
|
|
99
|
-
.map(file => path.join(entryDir, file));
|
|
100
|
-
|
|
101
|
-
goFiles.forEach(file => allGoFiles.add(file));
|
|
102
|
-
|
|
103
|
-
// Add the entry point itself
|
|
104
|
-
allGoFiles.add(entryPoint);
|
|
105
|
-
} catch (error) {
|
|
106
|
-
console.error(`Error processing Go entry point ${entryPoint} for source files:`, error);
|
|
491
|
+
const fileName = path.basename(entryPoint);
|
|
492
|
+
if (fileName.includes("_test.go") || fileName.endsWith(".test.go")) {
|
|
493
|
+
console.warn(`Skipping Go test file: ${fileName}`);
|
|
494
|
+
continue;
|
|
107
495
|
}
|
|
496
|
+
filteredEntryPoints.push(entryPoint);
|
|
108
497
|
}
|
|
498
|
+
entryPoints = filteredEntryPoints;
|
|
109
499
|
|
|
110
|
-
//
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
500
|
+
// If no valid entry points remain, try to find Go files automatically
|
|
501
|
+
// But exclude test files
|
|
502
|
+
if (entryPoints.length === 0) {
|
|
503
|
+
const allGoFiles = findGoFilesInProject();
|
|
504
|
+
// Filter out test files
|
|
505
|
+
entryPoints = allGoFiles.filter((file) => {
|
|
506
|
+
const fileName = path.basename(file);
|
|
507
|
+
return !fileName.includes("_test.go") && !fileName.endsWith(".test.go");
|
|
508
|
+
});
|
|
509
|
+
if (entryPoints.length === 0) {
|
|
510
|
+
console.warn("No non-test Go files found in the project");
|
|
511
|
+
} else {
|
|
512
|
+
console.log(
|
|
513
|
+
`Found ${entryPoints.length} non-test Go files:`,
|
|
514
|
+
entryPoints
|
|
515
|
+
);
|
|
123
516
|
}
|
|
124
517
|
}
|
|
125
|
-
|
|
126
|
-
//
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
518
|
+
|
|
519
|
+
// Process each entry point, but skip test files
|
|
520
|
+
for (let i = 0; i < entryPoints.length; i++) {
|
|
521
|
+
let entryPoint = entryPoints[i];
|
|
522
|
+
|
|
523
|
+
// First, try to resolve the path relative to the current working directory
|
|
524
|
+
// Check if the entry point is a relative path and needs to be resolved
|
|
525
|
+
let resolvedPath = entryPoint;
|
|
526
|
+
if (!path.isAbsolute(entryPoint)) {
|
|
527
|
+
resolvedPath = path.join(process.cwd(), entryPoint);
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
// Check if the resolved path exists
|
|
531
|
+
if (!fs.existsSync(resolvedPath)) {
|
|
532
|
+
console.warn(
|
|
533
|
+
`Entry point ${entryPoint} does not exist at ${resolvedPath}`
|
|
534
|
+
);
|
|
535
|
+
|
|
536
|
+
// Try to find the file by looking for it in the example directory
|
|
537
|
+
// The files might be in the example directory relative to the current working directory
|
|
538
|
+
const fileName = path.basename(entryPoint);
|
|
539
|
+
const potentialPaths = [
|
|
540
|
+
path.join(process.cwd(), "example", fileName),
|
|
541
|
+
path.join(process.cwd(), fileName),
|
|
542
|
+
path.join(process.cwd(), "src", "example", fileName),
|
|
543
|
+
path.join(process.cwd(), "src", fileName),
|
|
544
|
+
];
|
|
545
|
+
|
|
546
|
+
let foundPath = "";
|
|
547
|
+
for (const potentialPath of potentialPaths) {
|
|
548
|
+
if (fs.existsSync(potentialPath)) {
|
|
549
|
+
foundPath = potentialPath;
|
|
550
|
+
console.log(`Found ${fileName} at: ${foundPath}`);
|
|
551
|
+
break;
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
if (!foundPath) {
|
|
556
|
+
console.warn(`Could not find ${fileName} in any common locations`);
|
|
557
|
+
continue;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
// Update the entry point to use the found path
|
|
561
|
+
entryPoints[i] = foundPath;
|
|
562
|
+
entryPoint = foundPath;
|
|
563
|
+
} else {
|
|
564
|
+
// Use the resolved path
|
|
565
|
+
entryPoints[i] = resolvedPath;
|
|
566
|
+
entryPoint = resolvedPath;
|
|
567
|
+
}
|
|
568
|
+
|
|
569
|
+
// Skip test files - we don't want to generate wrappers for them
|
|
570
|
+
// Also skip files that might be treated as Go tests
|
|
571
|
+
const fileName = path.basename(entryPoint);
|
|
572
|
+
if (fileName.includes("_test.go") || fileName.endsWith(".test.go")) {
|
|
573
|
+
console.log(`Skipping Go test file: ${fileName}`);
|
|
574
|
+
continue;
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
// Collect all dependencies recursively
|
|
578
|
+
const allDependencies = collectGoDependencies(entryPoint);
|
|
579
|
+
|
|
580
|
+
// Process each dependency to add to inputs
|
|
581
|
+
for (const dep of allDependencies) {
|
|
582
|
+
if (!inputs[dep]) {
|
|
583
|
+
const bytes = fs.statSync(dep).size;
|
|
584
|
+
const imports = parseGoImports(dep);
|
|
585
|
+
inputs[dep] = {
|
|
586
|
+
bytes,
|
|
587
|
+
imports,
|
|
588
|
+
format: "esm", // Go doesn't use ES modules, but we'll use this for consistency
|
|
589
|
+
};
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
// Generate output path relative to the testeranto/bundles directory
|
|
594
|
+
// Always use golang/core/ prefix
|
|
595
|
+
// For all testeranto files, use .golingvu.go extension (not _test.go)
|
|
596
|
+
const entryPointName = path.basename(entryPoint, ".go");
|
|
597
|
+
// Always use .golingvu.go extension for consistency
|
|
598
|
+
const baseName = entryPointName;
|
|
599
|
+
const outputKey = `golang/core/${baseName}.golingvu.go`;
|
|
600
|
+
|
|
601
|
+
// Calculate total bytes from all inputs
|
|
602
|
+
const inputBytes: Record<string, { bytesInOutput: number }> = {};
|
|
603
|
+
let totalBytes = 0;
|
|
604
|
+
for (const dep of allDependencies) {
|
|
605
|
+
const bytes = fs.statSync(dep).size;
|
|
606
|
+
inputBytes[dep] = { bytesInOutput: bytes };
|
|
607
|
+
totalBytes += bytes;
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
outputs[outputKey] = {
|
|
611
|
+
imports: [],
|
|
612
|
+
exports: [],
|
|
613
|
+
entryPoint,
|
|
614
|
+
inputs: inputBytes,
|
|
615
|
+
bytes: totalBytes,
|
|
616
|
+
signature,
|
|
137
617
|
};
|
|
138
618
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
619
|
+
|
|
620
|
+
// If no valid entry points were found, ensure we have at least one input and output
|
|
621
|
+
// This prevents empty metafile which could cause issues
|
|
622
|
+
if (Object.keys(inputs).length === 0) {
|
|
623
|
+
// Check if there are any .go files in the current directory
|
|
624
|
+
try {
|
|
625
|
+
const files = fs.readdirSync(process.cwd());
|
|
626
|
+
const goFiles = files.filter((file) => file.endsWith(".go"));
|
|
627
|
+
if (goFiles.length > 0) {
|
|
628
|
+
// Use the first .go file found
|
|
629
|
+
const firstGoFile = path.join(process.cwd(), goFiles[0]);
|
|
630
|
+
const bytes = fs.statSync(firstGoFile).size;
|
|
631
|
+
const imports = parseGoImports(firstGoFile);
|
|
632
|
+
inputs[firstGoFile] = {
|
|
633
|
+
bytes,
|
|
634
|
+
imports,
|
|
635
|
+
format: "esm",
|
|
636
|
+
};
|
|
637
|
+
|
|
638
|
+
outputs[`golang/core/${goFiles[0]}`] = {
|
|
639
|
+
imports: [],
|
|
640
|
+
exports: [],
|
|
641
|
+
entryPoint: firstGoFile,
|
|
642
|
+
inputs: {
|
|
643
|
+
[firstGoFile]: {
|
|
644
|
+
bytesInOutput: bytes,
|
|
645
|
+
},
|
|
646
|
+
},
|
|
647
|
+
bytes,
|
|
648
|
+
signature,
|
|
649
|
+
};
|
|
650
|
+
} else {
|
|
651
|
+
// Fallback to a minimal placeholder if no .go files exist
|
|
652
|
+
// But only if we're in a Go project (has go.mod)
|
|
653
|
+
const goModPath = path.join(process.cwd(), "go.mod");
|
|
654
|
+
if (fs.existsSync(goModPath)) {
|
|
655
|
+
// We're in a Go project but found no Go files - this is unexpected
|
|
656
|
+
console.warn("Found go.mod but no Go files could be processed");
|
|
657
|
+
|
|
658
|
+
inputs["placeholder.go"] = {
|
|
659
|
+
bytes: 0,
|
|
660
|
+
imports: [],
|
|
661
|
+
format: "esm",
|
|
662
|
+
};
|
|
663
|
+
outputs["testeranto/bundles/golang/core/placeholder.go"] = {
|
|
664
|
+
imports: [],
|
|
665
|
+
exports: [],
|
|
666
|
+
entryPoint: "placeholder.go",
|
|
667
|
+
inputs: {
|
|
668
|
+
"placeholder.go": {
|
|
669
|
+
bytesInOutput: 0,
|
|
670
|
+
},
|
|
671
|
+
},
|
|
672
|
+
bytes: 0,
|
|
673
|
+
signature,
|
|
674
|
+
};
|
|
675
|
+
} else {
|
|
676
|
+
// Not a Go project, don't add placeholder to avoid confusion
|
|
677
|
+
console.warn("No Go files found and not in a Go project");
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
} catch (error) {
|
|
681
|
+
console.warn("Error finding Go files:", error);
|
|
682
|
+
// Fallback to a minimal placeholder only if we're in a Go project
|
|
683
|
+
const goModPath = path.join(process.cwd(), "go.mod");
|
|
684
|
+
if (fs.existsSync(goModPath)) {
|
|
685
|
+
inputs["placeholder.go"] = {
|
|
686
|
+
bytes: 0,
|
|
687
|
+
imports: [],
|
|
688
|
+
format: "esm",
|
|
689
|
+
};
|
|
690
|
+
outputs["golang/core/placeholder.go"] = {
|
|
691
|
+
imports: [],
|
|
692
|
+
exports: [],
|
|
693
|
+
entryPoint: "placeholder.go",
|
|
694
|
+
inputs: {
|
|
695
|
+
"placeholder.go": {
|
|
696
|
+
bytesInOutput: 0,
|
|
697
|
+
},
|
|
698
|
+
},
|
|
699
|
+
bytes: 0,
|
|
700
|
+
signature,
|
|
701
|
+
};
|
|
702
|
+
}
|
|
146
703
|
}
|
|
147
|
-
}
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
const result = {
|
|
707
|
+
errors: [],
|
|
708
|
+
warnings: [],
|
|
709
|
+
metafile: {
|
|
710
|
+
inputs,
|
|
711
|
+
outputs,
|
|
712
|
+
},
|
|
713
|
+
};
|
|
714
|
+
|
|
715
|
+
generationQueue = null;
|
|
716
|
+
return result;
|
|
717
|
+
})();
|
|
718
|
+
|
|
719
|
+
return generationQueue;
|
|
148
720
|
}
|
|
149
721
|
|
|
722
|
+
// Track how many times this function is called
|
|
723
|
+
let writeGolingvuMetafileCallCount = 0;
|
|
150
724
|
|
|
151
|
-
export function
|
|
725
|
+
export function writeGolingvuMetafile(
|
|
152
726
|
testName: string,
|
|
153
|
-
metafile:
|
|
727
|
+
metafile: GolingvuMetafile
|
|
154
728
|
): void {
|
|
155
|
-
|
|
156
|
-
|
|
729
|
+
writeGolingvuMetafileCallCount++;
|
|
730
|
+
console.log(`writeGolingvuMetafile called ${writeGolingvuMetafileCallCount} times`);
|
|
731
|
+
console.log("process.cwd()", process.cwd());
|
|
732
|
+
console.log("testName:", testName);
|
|
733
|
+
|
|
734
|
+
// Always use the original project root, not the current working directory
|
|
735
|
+
// This assumes the project root is where package.json is located
|
|
736
|
+
const projectRoot = findProjectRoot();
|
|
737
|
+
|
|
738
|
+
const metafilePath = path.join(
|
|
739
|
+
projectRoot,
|
|
157
740
|
"testeranto",
|
|
158
741
|
"metafiles",
|
|
159
|
-
"golang"
|
|
742
|
+
"golang",
|
|
743
|
+
"core.json"
|
|
160
744
|
);
|
|
161
|
-
|
|
745
|
+
const metafileDir = path.dirname(metafilePath);
|
|
746
|
+
|
|
747
|
+
// Ensure directory exists
|
|
748
|
+
if (!fs.existsSync(metafileDir)) {
|
|
749
|
+
fs.mkdirSync(metafileDir, { recursive: true });
|
|
750
|
+
}
|
|
162
751
|
|
|
163
|
-
|
|
752
|
+
// Write the metafile
|
|
164
753
|
fs.writeFileSync(metafilePath, JSON.stringify(metafile, null, 2));
|
|
754
|
+
console.log(`Golang metafile written to: ${metafilePath}`);
|
|
755
|
+
|
|
756
|
+
// Generate the output Go files in the core directory, not test-specific
|
|
757
|
+
// Always use the project root's testeranto directory
|
|
758
|
+
const outputDir = path.join(
|
|
759
|
+
projectRoot,
|
|
760
|
+
"testeranto",
|
|
761
|
+
"bundles",
|
|
762
|
+
"golang",
|
|
763
|
+
"core"
|
|
764
|
+
);
|
|
765
|
+
console.log("Output directory:", outputDir);
|
|
766
|
+
if (!fs.existsSync(outputDir)) {
|
|
767
|
+
fs.mkdirSync(outputDir, { recursive: true });
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
// Create each output file
|
|
771
|
+
for (const [outputPath, outputInfo] of Object.entries(
|
|
772
|
+
metafile.metafile.outputs
|
|
773
|
+
)) {
|
|
774
|
+
// The outputPath from the metafile should be used as-is, but ensure it's under golang/core/
|
|
775
|
+
// Extract just the filename part
|
|
776
|
+
const fileName = path.basename(outputPath);
|
|
777
|
+
const fullOutputPath = path.join(outputDir, fileName);
|
|
778
|
+
const outputDirPath = path.dirname(fullOutputPath);
|
|
779
|
+
|
|
780
|
+
if (!fs.existsSync(outputDirPath)) {
|
|
781
|
+
fs.mkdirSync(outputDirPath, { recursive: true });
|
|
782
|
+
}
|
|
783
|
+
|
|
784
|
+
// For Go, we need to create a normal Go program (not a test)
|
|
785
|
+
// Include the signature in a comment
|
|
786
|
+
const entryPoint = (outputInfo as any).entryPoint;
|
|
787
|
+
const signature = (outputInfo as any).signature;
|
|
788
|
+
|
|
789
|
+
// For Golingvu, we need to generate a wrapper that imports and runs the original code
|
|
790
|
+
// The entry point should be imported and its functionality tested
|
|
791
|
+
// Include the signature in a comment for the watcher to detect changes
|
|
792
|
+
// Use build tags to ensure it's only included when testeranto is specified
|
|
793
|
+
// The package should be testeranto_test to avoid being treated as a main package
|
|
794
|
+
|
|
795
|
+
// Get the import path - since the generated file will be in a different location,
|
|
796
|
+
// we need to find the correct import path for the original file
|
|
797
|
+
// For files in the example directory, we can use a relative import
|
|
798
|
+
const entryDir = path.dirname(entryPoint);
|
|
799
|
+
const entryDirName = path.basename(entryDir);
|
|
800
|
+
let importPath: string;
|
|
801
|
+
|
|
802
|
+
// If the entry point is in the example directory, use that
|
|
803
|
+
if (entryDirName === "example") {
|
|
804
|
+
importPath = "../example";
|
|
805
|
+
} else {
|
|
806
|
+
// Fallback: use relative path
|
|
807
|
+
const relativePathToEntry = path.relative(outputDir, entryDir);
|
|
808
|
+
importPath = relativePathToEntry ? `./${relativePathToEntry}` : ".";
|
|
809
|
+
}
|
|
810
|
+
const entryPointBaseName = path.basename(entryPoint, ".go");
|
|
811
|
+
|
|
812
|
+
const content = `//go:build testeranto
|
|
813
|
+
// +build testeranto
|
|
814
|
+
|
|
815
|
+
// This file is auto-generated by testeranto
|
|
816
|
+
// Signature: ${signature}
|
|
817
|
+
// It imports and tests: ${entryPoint}
|
|
818
|
+
|
|
819
|
+
package testeranto_test
|
|
820
|
+
|
|
821
|
+
import (
|
|
822
|
+
"fmt"
|
|
823
|
+
"os"
|
|
824
|
+
"testing"
|
|
825
|
+
|
|
826
|
+
// Import the original implementation
|
|
827
|
+
"${importPath}"
|
|
828
|
+
)
|
|
829
|
+
|
|
830
|
+
func TestCalculatorOperations(t *testing.T) {
|
|
831
|
+
// Create an instance of the Calculator
|
|
832
|
+
calc := &${entryPointBaseName}.Calculator{}
|
|
833
|
+
|
|
834
|
+
// Test basic operations
|
|
835
|
+
// This is where testeranto would run its test scenarios
|
|
836
|
+
|
|
837
|
+
// Example test: test that a new calculator has empty display
|
|
838
|
+
if calc.GetDisplay() != "" {
|
|
839
|
+
t.Errorf("Expected empty display, got: %s", calc.GetDisplay())
|
|
840
|
+
}
|
|
841
|
+
|
|
842
|
+
// Example test: test pressing buttons
|
|
843
|
+
calc.Press("2")
|
|
844
|
+
if calc.GetDisplay() != "2" {
|
|
845
|
+
t.Errorf("Expected '2', got: %s", calc.GetDisplay())
|
|
846
|
+
}
|
|
847
|
+
|
|
848
|
+
// Add more test scenarios based on the testeranto specification
|
|
849
|
+
fmt.Println("Testeranto tests completed")
|
|
850
|
+
}
|
|
851
|
+
|
|
852
|
+
func main() {
|
|
853
|
+
// This allows the file to be run as a standalone program
|
|
854
|
+
// while keeping it in the testeranto_test package
|
|
855
|
+
testing.Main(func(pat, str string) (bool, error) { return true, nil },
|
|
856
|
+
[]testing.InternalTest{
|
|
857
|
+
{
|
|
858
|
+
Name: "TestCalculatorOperations",
|
|
859
|
+
F: TestCalculatorOperations,
|
|
860
|
+
},
|
|
861
|
+
},
|
|
862
|
+
[]testing.InternalBenchmark{},
|
|
863
|
+
[]testing.InternalExample{})
|
|
864
|
+
}
|
|
865
|
+
`;
|
|
866
|
+
fs.writeFileSync(fullOutputPath, content);
|
|
867
|
+
console.log(`Generated Golingvu wrapper: ${fullOutputPath}`);
|
|
868
|
+
}
|
|
165
869
|
}
|