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
|
@@ -1,968 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
start() {
|
|
12
|
-
return new Promise((r) => r());
|
|
13
|
-
}
|
|
14
|
-
stop() {
|
|
15
|
-
return new Promise((r) => r());
|
|
16
|
-
}
|
|
17
|
-
getInnerHtml(selector, page) {
|
|
18
|
-
throw new Error("web.ts getInnHtml not implemented");
|
|
19
|
-
}
|
|
20
|
-
pages() {
|
|
21
|
-
throw new Error("Method not implemented.");
|
|
22
|
-
}
|
|
23
|
-
stopSideCar(n) {
|
|
24
|
-
return window["stopSideCar"](n, this.testResourceConfiguration.name);
|
|
25
|
-
}
|
|
26
|
-
launchSideCar(n) {
|
|
27
|
-
return window["launchSideCar"](n, this.testResourceConfiguration.name);
|
|
28
|
-
}
|
|
29
|
-
waitForSelector(p, s) {
|
|
30
|
-
return window["waitForSelector"](p, s);
|
|
31
|
-
}
|
|
32
|
-
screencast(opts, page) {
|
|
33
|
-
return window["screencast"](
|
|
34
|
-
{
|
|
35
|
-
...opts,
|
|
36
|
-
path: this.testResourceConfiguration.fs + "/" + opts.path
|
|
37
|
-
},
|
|
38
|
-
page.mainFrame()._id,
|
|
39
|
-
this.testResourceConfiguration.name
|
|
40
|
-
);
|
|
41
|
-
}
|
|
42
|
-
screencastStop(recorder) {
|
|
43
|
-
return window["screencastStop"](recorder);
|
|
44
|
-
}
|
|
45
|
-
closePage(p) {
|
|
46
|
-
return window["closePage"](p);
|
|
47
|
-
}
|
|
48
|
-
goto(p, url) {
|
|
49
|
-
return window["goto"](p, url);
|
|
50
|
-
}
|
|
51
|
-
newPage() {
|
|
52
|
-
return window["newPage"]();
|
|
53
|
-
}
|
|
54
|
-
$(selector) {
|
|
55
|
-
return window["$"](selector);
|
|
56
|
-
}
|
|
57
|
-
isDisabled(selector) {
|
|
58
|
-
return window["isDisabled"](selector);
|
|
59
|
-
}
|
|
60
|
-
getAttribute(selector, attribute) {
|
|
61
|
-
return window["getAttribute"](selector, attribute);
|
|
62
|
-
}
|
|
63
|
-
getValue(selector) {
|
|
64
|
-
return window["getValue"](selector);
|
|
65
|
-
}
|
|
66
|
-
focusOn(selector) {
|
|
67
|
-
return window["focusOn"](selector);
|
|
68
|
-
}
|
|
69
|
-
typeInto(value) {
|
|
70
|
-
return window["typeInto"](value);
|
|
71
|
-
}
|
|
72
|
-
async page(x) {
|
|
73
|
-
return window["page"](x);
|
|
74
|
-
}
|
|
75
|
-
click(selector) {
|
|
76
|
-
return window["click"](selector);
|
|
77
|
-
}
|
|
78
|
-
customScreenShot(x, y) {
|
|
79
|
-
const opts = x[0];
|
|
80
|
-
const page = x[1];
|
|
81
|
-
return window["customScreenShot"](
|
|
82
|
-
{
|
|
83
|
-
...opts,
|
|
84
|
-
path: this.testResourceConfiguration.fs + "/" + opts.path
|
|
85
|
-
},
|
|
86
|
-
this.testResourceConfiguration.name,
|
|
87
|
-
page
|
|
88
|
-
);
|
|
89
|
-
}
|
|
90
|
-
existsSync(destFolder) {
|
|
91
|
-
return window["existsSync"](destFolder);
|
|
92
|
-
}
|
|
93
|
-
mkdirSync(x) {
|
|
94
|
-
return window["mkdirSync"](this.testResourceConfiguration.fs + "/");
|
|
95
|
-
}
|
|
96
|
-
write(uid, contents) {
|
|
97
|
-
return window["write"](uid, contents);
|
|
98
|
-
}
|
|
99
|
-
writeFileSync(x) {
|
|
100
|
-
const filepath = arguments[0];
|
|
101
|
-
const contents = arguments[1];
|
|
102
|
-
return window["writeFileSync"](
|
|
103
|
-
this.testResourceConfiguration.fs + "/" + filepath,
|
|
104
|
-
contents,
|
|
105
|
-
this.testResourceConfiguration.name
|
|
106
|
-
);
|
|
107
|
-
}
|
|
108
|
-
createWriteStream(filepath) {
|
|
109
|
-
return window["createWriteStream"](
|
|
110
|
-
this.testResourceConfiguration.fs + "/" + filepath,
|
|
111
|
-
this.testResourceConfiguration.name
|
|
112
|
-
);
|
|
113
|
-
}
|
|
114
|
-
end(uid) {
|
|
115
|
-
return window["end"](uid);
|
|
116
|
-
}
|
|
117
|
-
customclose() {
|
|
118
|
-
window["customclose"](
|
|
119
|
-
this.testResourceConfiguration.fs,
|
|
120
|
-
this.testResourceConfiguration.name
|
|
121
|
-
);
|
|
122
|
-
}
|
|
123
|
-
testArtiFactoryfileWriter(tLog, callback) {
|
|
124
|
-
return (fPath, value) => {
|
|
125
|
-
callback(
|
|
126
|
-
new Promise((res, rej) => {
|
|
127
|
-
tLog("testArtiFactory =>", fPath);
|
|
128
|
-
})
|
|
129
|
-
);
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
};
|
|
133
|
-
|
|
134
|
-
// src/lib/index.ts
|
|
135
|
-
var BaseAdapter = () => ({
|
|
136
|
-
beforeAll: async (input, testResource, pm) => {
|
|
137
|
-
return input;
|
|
138
|
-
},
|
|
139
|
-
beforeEach: async function(subject, initializer, testResource, initialValues, pm) {
|
|
140
|
-
return subject;
|
|
141
|
-
},
|
|
142
|
-
afterEach: async (store, key, pm) => Promise.resolve(store),
|
|
143
|
-
afterAll: (store, pm) => void 0,
|
|
144
|
-
butThen: async (store, thenCb, testResource, pm) => {
|
|
145
|
-
return thenCb(store, pm);
|
|
146
|
-
},
|
|
147
|
-
andWhen: async (store, whenCB, testResource, pm) => {
|
|
148
|
-
return whenCB(store, pm);
|
|
149
|
-
},
|
|
150
|
-
assertThis: (x) => x
|
|
151
|
-
});
|
|
152
|
-
var DefaultAdapter = (p) => {
|
|
153
|
-
const base = BaseAdapter();
|
|
154
|
-
return {
|
|
155
|
-
...base,
|
|
156
|
-
...p
|
|
157
|
-
};
|
|
158
|
-
};
|
|
159
|
-
var defaultTestResourceRequirement = {
|
|
160
|
-
ports: 0
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
// src/lib/pmProxy.ts
|
|
164
|
-
var baseProxy = function(pm, mappings) {
|
|
165
|
-
return new Proxy(pm, {
|
|
166
|
-
get: (target, prop, receiver) => {
|
|
167
|
-
for (const mapping of mappings) {
|
|
168
|
-
const method = mapping[0];
|
|
169
|
-
const arger = mapping[1];
|
|
170
|
-
if (prop === method) {
|
|
171
|
-
return (...x) => {
|
|
172
|
-
const modifiedArgs = arger(...x);
|
|
173
|
-
return target[prop](...modifiedArgs);
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
return (...x) => {
|
|
178
|
-
return target[prop](...x);
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
});
|
|
182
|
-
};
|
|
183
|
-
var butThenProxy = (pm, filepath, addArtifact) => {
|
|
184
|
-
return baseProxy(pm, [
|
|
185
|
-
[
|
|
186
|
-
"screencast",
|
|
187
|
-
(opts, p) => {
|
|
188
|
-
const path = `${filepath}/butThen/${opts.path}`;
|
|
189
|
-
addArtifact(path);
|
|
190
|
-
return [
|
|
191
|
-
{
|
|
192
|
-
...opts,
|
|
193
|
-
path
|
|
194
|
-
},
|
|
195
|
-
p
|
|
196
|
-
];
|
|
197
|
-
}
|
|
198
|
-
],
|
|
199
|
-
[
|
|
200
|
-
"createWriteStream",
|
|
201
|
-
(fp) => {
|
|
202
|
-
const path = `${filepath}/butThen/${fp}`;
|
|
203
|
-
addArtifact(path);
|
|
204
|
-
return [path];
|
|
205
|
-
}
|
|
206
|
-
],
|
|
207
|
-
[
|
|
208
|
-
"writeFileSync",
|
|
209
|
-
(fp, contents, testName) => {
|
|
210
|
-
console.log(
|
|
211
|
-
`[DEBUG] butThenProxy writeFileSync: fp="${fp}" (type: ${typeof fp}), contents="${contents}" (type: ${typeof contents}), testName="${testName}" (type: ${typeof testName})`
|
|
212
|
-
);
|
|
213
|
-
if (typeof fp !== "string") {
|
|
214
|
-
console.log(`[ERROR] fp is not a string:`, fp);
|
|
215
|
-
if (Array.isArray(fp)) {
|
|
216
|
-
fp = fp.join("");
|
|
217
|
-
console.log(`[DEBUG] Converted array to string: "${fp}"`);
|
|
218
|
-
} else {
|
|
219
|
-
fp = String(fp);
|
|
220
|
-
console.log(`[DEBUG] Converted to string: "${fp}"`);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
const path = `${filepath}/butThen/${fp}`;
|
|
224
|
-
console.log(`[DEBUG] Generated path: "${path}"`);
|
|
225
|
-
addArtifact(path);
|
|
226
|
-
return [path, contents, testName];
|
|
227
|
-
}
|
|
228
|
-
],
|
|
229
|
-
[
|
|
230
|
-
"customScreenShot",
|
|
231
|
-
(opts, p) => {
|
|
232
|
-
const path = `${filepath}/butThen/${opts.path}`;
|
|
233
|
-
addArtifact(path);
|
|
234
|
-
return [
|
|
235
|
-
{
|
|
236
|
-
...opts,
|
|
237
|
-
path
|
|
238
|
-
},
|
|
239
|
-
p
|
|
240
|
-
];
|
|
241
|
-
}
|
|
242
|
-
]
|
|
243
|
-
]);
|
|
244
|
-
};
|
|
245
|
-
var andWhenProxy = (pm, filepath, addArtifact) => {
|
|
246
|
-
return baseProxy(pm, [
|
|
247
|
-
[
|
|
248
|
-
"screencast",
|
|
249
|
-
(opts, p) => {
|
|
250
|
-
const path = `${filepath}/andWhen/${opts.path}`;
|
|
251
|
-
addArtifact(path);
|
|
252
|
-
return [
|
|
253
|
-
{
|
|
254
|
-
...opts,
|
|
255
|
-
path
|
|
256
|
-
},
|
|
257
|
-
p
|
|
258
|
-
];
|
|
259
|
-
}
|
|
260
|
-
],
|
|
261
|
-
[
|
|
262
|
-
"createWriteStream",
|
|
263
|
-
(fp) => {
|
|
264
|
-
const path = `${filepath}/andWhen/${fp}`;
|
|
265
|
-
addArtifact(path);
|
|
266
|
-
return [path];
|
|
267
|
-
}
|
|
268
|
-
],
|
|
269
|
-
[
|
|
270
|
-
"writeFileSync",
|
|
271
|
-
(fp, contents, testName) => {
|
|
272
|
-
const path = `${filepath}/andWhen/${fp}`;
|
|
273
|
-
addArtifact(path);
|
|
274
|
-
return [path, contents, testName];
|
|
275
|
-
}
|
|
276
|
-
],
|
|
277
|
-
[
|
|
278
|
-
"customScreenShot",
|
|
279
|
-
(opts, p) => {
|
|
280
|
-
const path = `${filepath}/andWhen/${opts.path}`;
|
|
281
|
-
addArtifact(path);
|
|
282
|
-
return [
|
|
283
|
-
{
|
|
284
|
-
...opts,
|
|
285
|
-
path
|
|
286
|
-
},
|
|
287
|
-
p
|
|
288
|
-
];
|
|
289
|
-
}
|
|
290
|
-
]
|
|
291
|
-
]);
|
|
292
|
-
};
|
|
293
|
-
var afterEachProxy = (pm, suite, given, addArtifact) => {
|
|
294
|
-
return baseProxy(pm, [
|
|
295
|
-
[
|
|
296
|
-
"screencast",
|
|
297
|
-
(opts, p) => {
|
|
298
|
-
const path = `suite-${suite}/given-${given}/afterEach/${opts.path}`;
|
|
299
|
-
addArtifact(path);
|
|
300
|
-
return [
|
|
301
|
-
{
|
|
302
|
-
...opts,
|
|
303
|
-
path
|
|
304
|
-
},
|
|
305
|
-
p
|
|
306
|
-
];
|
|
307
|
-
}
|
|
308
|
-
],
|
|
309
|
-
[
|
|
310
|
-
"createWriteStream",
|
|
311
|
-
(fp) => {
|
|
312
|
-
const path = `suite-${suite}/afterEach/${fp}`;
|
|
313
|
-
addArtifact(path);
|
|
314
|
-
return [path];
|
|
315
|
-
}
|
|
316
|
-
],
|
|
317
|
-
[
|
|
318
|
-
"writeFileSync",
|
|
319
|
-
(fp, contents, testName) => {
|
|
320
|
-
const path = `suite-${suite}/given-${given}/afterEach/${fp}`;
|
|
321
|
-
addArtifact(path);
|
|
322
|
-
return [path, contents, testName];
|
|
323
|
-
}
|
|
324
|
-
],
|
|
325
|
-
[
|
|
326
|
-
"customScreenShot",
|
|
327
|
-
(opts, p) => {
|
|
328
|
-
const path = `suite-${suite}/given-${given}/afterEach/${opts.path}`;
|
|
329
|
-
addArtifact(path);
|
|
330
|
-
return [
|
|
331
|
-
{
|
|
332
|
-
...opts,
|
|
333
|
-
path
|
|
334
|
-
},
|
|
335
|
-
p
|
|
336
|
-
];
|
|
337
|
-
}
|
|
338
|
-
]
|
|
339
|
-
]);
|
|
340
|
-
};
|
|
341
|
-
var beforeEachProxy = (pm, suite, addArtifact) => {
|
|
342
|
-
return baseProxy(pm, [
|
|
343
|
-
[
|
|
344
|
-
"screencast",
|
|
345
|
-
(opts, p) => {
|
|
346
|
-
const path = `suite-${suite}/beforeEach/${opts.path}`;
|
|
347
|
-
addArtifact(path);
|
|
348
|
-
return [
|
|
349
|
-
{
|
|
350
|
-
...opts,
|
|
351
|
-
path
|
|
352
|
-
},
|
|
353
|
-
p
|
|
354
|
-
];
|
|
355
|
-
}
|
|
356
|
-
],
|
|
357
|
-
[
|
|
358
|
-
"writeFileSync",
|
|
359
|
-
(fp, contents, testName) => {
|
|
360
|
-
const path = `suite-${suite}/beforeEach/${fp}`;
|
|
361
|
-
addArtifact(path);
|
|
362
|
-
return [path, contents, testName];
|
|
363
|
-
}
|
|
364
|
-
],
|
|
365
|
-
[
|
|
366
|
-
"customScreenShot",
|
|
367
|
-
(opts, p) => {
|
|
368
|
-
const path = `suite-${suite}/beforeEach/${opts.path}`;
|
|
369
|
-
addArtifact(path);
|
|
370
|
-
return [
|
|
371
|
-
{
|
|
372
|
-
...opts,
|
|
373
|
-
path
|
|
374
|
-
},
|
|
375
|
-
p
|
|
376
|
-
];
|
|
377
|
-
}
|
|
378
|
-
],
|
|
379
|
-
[
|
|
380
|
-
"createWriteStream",
|
|
381
|
-
(fp) => {
|
|
382
|
-
const path = `suite-${suite}/beforeEach/${fp}`;
|
|
383
|
-
addArtifact(path);
|
|
384
|
-
return [path];
|
|
385
|
-
}
|
|
386
|
-
]
|
|
387
|
-
]);
|
|
388
|
-
};
|
|
389
|
-
var beforeAllProxy = (pm, suite, addArtifact) => {
|
|
390
|
-
return baseProxy(pm, [
|
|
391
|
-
[
|
|
392
|
-
"writeFileSync",
|
|
393
|
-
(fp, contents, testName) => {
|
|
394
|
-
const path = `suite-${suite}/beforeAll/${fp}`;
|
|
395
|
-
addArtifact(path);
|
|
396
|
-
return [path, contents, testName];
|
|
397
|
-
}
|
|
398
|
-
],
|
|
399
|
-
[
|
|
400
|
-
"customScreenShot",
|
|
401
|
-
(opts, p) => {
|
|
402
|
-
const path = `suite-${suite}/beforeAll/${opts.path}`;
|
|
403
|
-
addArtifact(path);
|
|
404
|
-
return [
|
|
405
|
-
{
|
|
406
|
-
...opts,
|
|
407
|
-
path
|
|
408
|
-
},
|
|
409
|
-
p
|
|
410
|
-
];
|
|
411
|
-
}
|
|
412
|
-
],
|
|
413
|
-
[
|
|
414
|
-
"createWriteStream",
|
|
415
|
-
(fp) => {
|
|
416
|
-
const path = `suite-${suite}/beforeAll/${fp}`;
|
|
417
|
-
addArtifact(path);
|
|
418
|
-
return [path];
|
|
419
|
-
}
|
|
420
|
-
]
|
|
421
|
-
]);
|
|
422
|
-
};
|
|
423
|
-
var afterAllProxy = (pm, suite, addArtifact) => {
|
|
424
|
-
return baseProxy(pm, [
|
|
425
|
-
[
|
|
426
|
-
"createWriteStream",
|
|
427
|
-
(fp) => {
|
|
428
|
-
const path = `suite-${suite}/afterAll/${fp}`;
|
|
429
|
-
addArtifact(path);
|
|
430
|
-
return [path];
|
|
431
|
-
}
|
|
432
|
-
],
|
|
433
|
-
[
|
|
434
|
-
"writeFileSync",
|
|
435
|
-
(fp, contents, testName) => {
|
|
436
|
-
const path = `suite-${suite}/afterAll/${fp}`;
|
|
437
|
-
addArtifact(path);
|
|
438
|
-
return [path, contents, testName];
|
|
439
|
-
}
|
|
440
|
-
],
|
|
441
|
-
[
|
|
442
|
-
"customScreenShot",
|
|
443
|
-
(opts, p) => {
|
|
444
|
-
const path = `suite-${suite}/afterAll/${opts.path}`;
|
|
445
|
-
addArtifact(path);
|
|
446
|
-
return [
|
|
447
|
-
{
|
|
448
|
-
...opts,
|
|
449
|
-
path
|
|
450
|
-
},
|
|
451
|
-
p
|
|
452
|
-
];
|
|
453
|
-
}
|
|
454
|
-
]
|
|
455
|
-
]);
|
|
456
|
-
};
|
|
457
|
-
|
|
458
|
-
// src/lib/BaseGiven.ts
|
|
459
|
-
var BaseGiven = class {
|
|
460
|
-
constructor(name, features, whens, thens, givenCB, initialValues) {
|
|
461
|
-
this.artifacts = [];
|
|
462
|
-
this.name = name;
|
|
463
|
-
this.features = features || [];
|
|
464
|
-
this.whens = whens || [];
|
|
465
|
-
this.thens = thens || [];
|
|
466
|
-
this.givenCB = givenCB;
|
|
467
|
-
this.initialValues = initialValues;
|
|
468
|
-
}
|
|
469
|
-
addArtifact(path) {
|
|
470
|
-
const normalizedPath = path.replace(/\\/g, "/");
|
|
471
|
-
this.artifacts.push(normalizedPath);
|
|
472
|
-
}
|
|
473
|
-
beforeAll(store) {
|
|
474
|
-
return store;
|
|
475
|
-
}
|
|
476
|
-
toObj() {
|
|
477
|
-
return {
|
|
478
|
-
key: this.key,
|
|
479
|
-
name: this.name,
|
|
480
|
-
whens: (this.whens || []).map((w) => {
|
|
481
|
-
if (w && w.toObj)
|
|
482
|
-
return w.toObj();
|
|
483
|
-
console.error("w is not as expected!", JSON.stringify(w));
|
|
484
|
-
return {};
|
|
485
|
-
}),
|
|
486
|
-
thens: (this.thens || []).map((t) => t && t.toObj ? t.toObj() : {}),
|
|
487
|
-
error: this.error ? [this.error, this.error.stack] : null,
|
|
488
|
-
failed: this.failed,
|
|
489
|
-
features: this.features || [],
|
|
490
|
-
artifacts: this.artifacts || []
|
|
491
|
-
};
|
|
492
|
-
}
|
|
493
|
-
async afterEach(store, key, artifactory, pm) {
|
|
494
|
-
return store;
|
|
495
|
-
}
|
|
496
|
-
async give(subject, key, testResourceConfiguration, tester, artifactory, tLog, pm, suiteNdx) {
|
|
497
|
-
this.key = key;
|
|
498
|
-
tLog(`
|
|
499
|
-
${this.key}`);
|
|
500
|
-
tLog(`
|
|
501
|
-
Given: ${this.name}`);
|
|
502
|
-
const givenArtifactory = (fPath, value) => artifactory(`given-${key}/${fPath}`, value);
|
|
503
|
-
this.uberCatcher((e) => {
|
|
504
|
-
console.error(e.toString());
|
|
505
|
-
this.error = e.error;
|
|
506
|
-
tLog(e.stack);
|
|
507
|
-
});
|
|
508
|
-
try {
|
|
509
|
-
const addArtifact = this.addArtifact.bind(this);
|
|
510
|
-
const proxiedPm = beforeEachProxy(pm, suiteNdx.toString(), addArtifact);
|
|
511
|
-
this.store = await this.givenThat(
|
|
512
|
-
subject,
|
|
513
|
-
testResourceConfiguration,
|
|
514
|
-
givenArtifactory,
|
|
515
|
-
this.givenCB,
|
|
516
|
-
this.initialValues,
|
|
517
|
-
proxiedPm
|
|
518
|
-
);
|
|
519
|
-
} catch (e) {
|
|
520
|
-
this.failed = true;
|
|
521
|
-
this.error = e.stack;
|
|
522
|
-
}
|
|
523
|
-
try {
|
|
524
|
-
for (const [whenNdx, whenStep] of this.whens.entries()) {
|
|
525
|
-
await whenStep.test(
|
|
526
|
-
this.store,
|
|
527
|
-
testResourceConfiguration,
|
|
528
|
-
tLog,
|
|
529
|
-
pm,
|
|
530
|
-
`suite-${suiteNdx}/given-${key}/when/${whenNdx}`
|
|
531
|
-
);
|
|
532
|
-
}
|
|
533
|
-
for (const [thenNdx, thenStep] of this.thens.entries()) {
|
|
534
|
-
const t = await thenStep.test(
|
|
535
|
-
this.store,
|
|
536
|
-
testResourceConfiguration,
|
|
537
|
-
tLog,
|
|
538
|
-
pm,
|
|
539
|
-
`suite-${suiteNdx}/given-${key}/then-${thenNdx}`
|
|
540
|
-
);
|
|
541
|
-
tester(t);
|
|
542
|
-
}
|
|
543
|
-
} catch (e) {
|
|
544
|
-
this.error = e.stack;
|
|
545
|
-
this.failed = true;
|
|
546
|
-
} finally {
|
|
547
|
-
try {
|
|
548
|
-
const addArtifact = this.addArtifact.bind(this);
|
|
549
|
-
const proxiedPm = afterEachProxy(
|
|
550
|
-
pm,
|
|
551
|
-
suiteNdx.toString(),
|
|
552
|
-
key,
|
|
553
|
-
addArtifact
|
|
554
|
-
);
|
|
555
|
-
await this.afterEach(this.store, this.key, givenArtifactory, proxiedPm);
|
|
556
|
-
} catch (e) {
|
|
557
|
-
this.failed = e;
|
|
558
|
-
throw e;
|
|
559
|
-
}
|
|
560
|
-
}
|
|
561
|
-
return this.store;
|
|
562
|
-
}
|
|
563
|
-
};
|
|
564
|
-
|
|
565
|
-
// src/lib/BaseWhen.ts
|
|
566
|
-
var BaseWhen = class {
|
|
567
|
-
constructor(name, whenCB) {
|
|
568
|
-
this.artifacts = [];
|
|
569
|
-
this.name = name;
|
|
570
|
-
this.whenCB = whenCB;
|
|
571
|
-
}
|
|
572
|
-
addArtifact(path) {
|
|
573
|
-
const normalizedPath = path.replace(/\\/g, "/");
|
|
574
|
-
this.artifacts.push(normalizedPath);
|
|
575
|
-
}
|
|
576
|
-
toObj() {
|
|
577
|
-
const obj = {
|
|
578
|
-
name: this.name,
|
|
579
|
-
error: this.error ? `${this.error.name}: ${this.error.message}
|
|
580
|
-
${this.error.stack}` : null,
|
|
581
|
-
artifacts: this.artifacts || []
|
|
582
|
-
};
|
|
583
|
-
console.log(
|
|
584
|
-
`[TOOBJ] Serializing ${this.constructor.name} with artifacts:`,
|
|
585
|
-
obj.artifacts
|
|
586
|
-
);
|
|
587
|
-
return obj;
|
|
588
|
-
}
|
|
589
|
-
async test(store, testResourceConfiguration, tLog, pm, filepath) {
|
|
590
|
-
try {
|
|
591
|
-
const addArtifact = this.addArtifact.bind(this);
|
|
592
|
-
const proxiedPm = andWhenProxy(pm, filepath, addArtifact);
|
|
593
|
-
const result = await this.andWhen(
|
|
594
|
-
store,
|
|
595
|
-
this.whenCB,
|
|
596
|
-
testResourceConfiguration,
|
|
597
|
-
proxiedPm
|
|
598
|
-
);
|
|
599
|
-
return result;
|
|
600
|
-
} catch (e) {
|
|
601
|
-
console.error(
|
|
602
|
-
"[ERROR] When step failed:",
|
|
603
|
-
this.name.toString(),
|
|
604
|
-
e.toString()
|
|
605
|
-
);
|
|
606
|
-
this.error = e;
|
|
607
|
-
throw e;
|
|
608
|
-
}
|
|
609
|
-
}
|
|
610
|
-
};
|
|
611
|
-
|
|
612
|
-
// src/lib/BaseThen.ts
|
|
613
|
-
var BaseThen = class {
|
|
614
|
-
constructor(name, thenCB) {
|
|
615
|
-
this.artifacts = [];
|
|
616
|
-
this.name = name;
|
|
617
|
-
this.thenCB = thenCB;
|
|
618
|
-
this.error = false;
|
|
619
|
-
this.artifacts = [];
|
|
620
|
-
}
|
|
621
|
-
addArtifact(path) {
|
|
622
|
-
const normalizedPath = path.replace(/\\/g, "/");
|
|
623
|
-
this.artifacts.push(normalizedPath);
|
|
624
|
-
}
|
|
625
|
-
toObj() {
|
|
626
|
-
const obj = {
|
|
627
|
-
name: this.name,
|
|
628
|
-
error: this.error,
|
|
629
|
-
artifacts: this.artifacts
|
|
630
|
-
};
|
|
631
|
-
return obj;
|
|
632
|
-
}
|
|
633
|
-
async test(store, testResourceConfiguration, tLog, pm, filepath) {
|
|
634
|
-
const addArtifact = this.addArtifact.bind(this);
|
|
635
|
-
const proxiedPm = butThenProxy(pm, filepath, addArtifact);
|
|
636
|
-
return this.butThen(
|
|
637
|
-
store,
|
|
638
|
-
async (s) => {
|
|
639
|
-
try {
|
|
640
|
-
if (typeof this.thenCB === "function") {
|
|
641
|
-
const wrappedPm = new Proxy(proxiedPm, {
|
|
642
|
-
get: (target, prop, receiver) => {
|
|
643
|
-
if (prop === "writeFileSync") {
|
|
644
|
-
return (...args) => {
|
|
645
|
-
console.log(
|
|
646
|
-
`[DEBUG] writeFileSync called with args:`,
|
|
647
|
-
args
|
|
648
|
-
);
|
|
649
|
-
return target[prop](...args);
|
|
650
|
-
};
|
|
651
|
-
}
|
|
652
|
-
return target[prop];
|
|
653
|
-
}
|
|
654
|
-
});
|
|
655
|
-
const result = await this.thenCB(s, wrappedPm);
|
|
656
|
-
return result;
|
|
657
|
-
} else {
|
|
658
|
-
return this.thenCB;
|
|
659
|
-
}
|
|
660
|
-
} catch (e) {
|
|
661
|
-
console.error(e.stack);
|
|
662
|
-
}
|
|
663
|
-
},
|
|
664
|
-
testResourceConfiguration,
|
|
665
|
-
proxiedPm
|
|
666
|
-
).catch((e) => {
|
|
667
|
-
this.error = e.stack;
|
|
668
|
-
});
|
|
669
|
-
}
|
|
670
|
-
};
|
|
671
|
-
|
|
672
|
-
// src/lib/BaseSuite.ts
|
|
673
|
-
var BaseSuite = class {
|
|
674
|
-
constructor(name, index, givens = {}) {
|
|
675
|
-
this.artifacts = [];
|
|
676
|
-
const suiteName = name || "testSuite";
|
|
677
|
-
if (!suiteName) {
|
|
678
|
-
throw new Error("BaseSuite requires a non-empty name");
|
|
679
|
-
}
|
|
680
|
-
this.name = suiteName;
|
|
681
|
-
this.index = index;
|
|
682
|
-
this.givens = givens;
|
|
683
|
-
this.fails = 0;
|
|
684
|
-
}
|
|
685
|
-
addArtifact(path) {
|
|
686
|
-
const normalizedPath = path.replace(/\\/g, "/");
|
|
687
|
-
this.artifacts.push(normalizedPath);
|
|
688
|
-
}
|
|
689
|
-
features() {
|
|
690
|
-
try {
|
|
691
|
-
const features = Object.keys(this.givens).map((k) => this.givens[k].features).flat().filter((value, index, array) => {
|
|
692
|
-
return array.indexOf(value) === index;
|
|
693
|
-
});
|
|
694
|
-
return features || [];
|
|
695
|
-
} catch (e) {
|
|
696
|
-
console.error("[ERROR] Failed to extract features:", JSON.stringify(e));
|
|
697
|
-
return [];
|
|
698
|
-
}
|
|
699
|
-
}
|
|
700
|
-
toObj() {
|
|
701
|
-
const givens = Object.keys(this.givens).map((k) => this.givens[k].toObj());
|
|
702
|
-
return {
|
|
703
|
-
name: this.name,
|
|
704
|
-
givens,
|
|
705
|
-
fails: this.fails,
|
|
706
|
-
failed: this.failed,
|
|
707
|
-
features: this.features()
|
|
708
|
-
};
|
|
709
|
-
}
|
|
710
|
-
setup(s, artifactory, tr, pm) {
|
|
711
|
-
return new Promise((res) => res(s));
|
|
712
|
-
}
|
|
713
|
-
assertThat(t) {
|
|
714
|
-
return !!t;
|
|
715
|
-
}
|
|
716
|
-
afterAll(store, artifactory, pm) {
|
|
717
|
-
return store;
|
|
718
|
-
}
|
|
719
|
-
async run(input, testResourceConfiguration, artifactory, tLog, pm) {
|
|
720
|
-
this.testResourceConfiguration = testResourceConfiguration;
|
|
721
|
-
const suiteArtifactory = (fPath, value) => artifactory(`suite-${this.index}-${this.name}/${fPath}`, value);
|
|
722
|
-
const sNdx = this.index;
|
|
723
|
-
const addArtifact = this.addArtifact.bind(this);
|
|
724
|
-
const proxiedPm = beforeAllProxy(pm, sNdx.toString(), addArtifact);
|
|
725
|
-
const subject = await this.setup(
|
|
726
|
-
input,
|
|
727
|
-
suiteArtifactory,
|
|
728
|
-
testResourceConfiguration,
|
|
729
|
-
proxiedPm
|
|
730
|
-
);
|
|
731
|
-
for (const [gKey, g] of Object.entries(this.givens)) {
|
|
732
|
-
const giver = this.givens[gKey];
|
|
733
|
-
this.store = await giver.give(
|
|
734
|
-
subject,
|
|
735
|
-
gKey,
|
|
736
|
-
testResourceConfiguration,
|
|
737
|
-
this.assertThat,
|
|
738
|
-
suiteArtifactory,
|
|
739
|
-
tLog,
|
|
740
|
-
pm,
|
|
741
|
-
sNdx
|
|
742
|
-
).catch((e) => {
|
|
743
|
-
this.failed = true;
|
|
744
|
-
this.fails = this.fails + 1;
|
|
745
|
-
throw e;
|
|
746
|
-
});
|
|
747
|
-
}
|
|
748
|
-
try {
|
|
749
|
-
const addArtifact2 = this.addArtifact.bind(this);
|
|
750
|
-
const afterAllPm = afterAllProxy(pm, sNdx.toString(), addArtifact2);
|
|
751
|
-
this.afterAll(this.store, artifactory, afterAllPm);
|
|
752
|
-
} catch (e) {
|
|
753
|
-
console.error(JSON.stringify(e));
|
|
754
|
-
}
|
|
755
|
-
return this;
|
|
756
|
-
}
|
|
757
|
-
};
|
|
1
|
+
import {
|
|
2
|
+
BaseGiven,
|
|
3
|
+
BaseSuite,
|
|
4
|
+
BaseThen,
|
|
5
|
+
BaseWhen,
|
|
6
|
+
Web_default,
|
|
7
|
+
init_buffer,
|
|
8
|
+
init_dirname,
|
|
9
|
+
init_process
|
|
10
|
+
} from "../../../chunk-LQMU5NCG.mjs";
|
|
758
11
|
|
|
759
|
-
// src/lib/
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
const fullAdapter = DefaultAdapter(testAdapter2);
|
|
764
|
-
const classySuites = Object.entries(testImplementation.suites).reduce(
|
|
765
|
-
(a, [key], index) => {
|
|
766
|
-
a[key] = (somestring, givens) => {
|
|
767
|
-
return new class extends BaseSuite {
|
|
768
|
-
afterAll(store, artifactory, pm) {
|
|
769
|
-
return fullAdapter.afterAll(store, pm);
|
|
770
|
-
}
|
|
771
|
-
assertThat(t) {
|
|
772
|
-
return fullAdapter.assertThis(t);
|
|
773
|
-
}
|
|
774
|
-
async setup(s, artifactory, tr, pm) {
|
|
775
|
-
return fullAdapter.beforeAll?.(s, tr, pm) ?? s;
|
|
776
|
-
}
|
|
777
|
-
}(somestring, index, givens);
|
|
778
|
-
};
|
|
779
|
-
return a;
|
|
780
|
-
},
|
|
781
|
-
{}
|
|
782
|
-
);
|
|
783
|
-
const classyGivens = Object.entries(testImplementation.givens).reduce(
|
|
784
|
-
(a, [key, g]) => {
|
|
785
|
-
a[key] = (name, features, whens, thens, gcb, initialValues) => {
|
|
786
|
-
return new class extends BaseGiven {
|
|
787
|
-
constructor() {
|
|
788
|
-
super(...arguments);
|
|
789
|
-
this.uberCatcher = uberCatcher;
|
|
790
|
-
}
|
|
791
|
-
async givenThat(subject, testResource, artifactory, initializer, initialValues2, pm) {
|
|
792
|
-
return fullAdapter.beforeEach(
|
|
793
|
-
subject,
|
|
794
|
-
initializer,
|
|
795
|
-
testResource,
|
|
796
|
-
initialValues2,
|
|
797
|
-
pm
|
|
798
|
-
);
|
|
799
|
-
}
|
|
800
|
-
afterEach(store, key2, artifactory, pm) {
|
|
801
|
-
return Promise.resolve(fullAdapter.afterEach(store, key2, pm));
|
|
802
|
-
}
|
|
803
|
-
}(
|
|
804
|
-
name,
|
|
805
|
-
features,
|
|
806
|
-
whens,
|
|
807
|
-
thens,
|
|
808
|
-
testImplementation.givens[key],
|
|
809
|
-
initialValues
|
|
810
|
-
);
|
|
811
|
-
};
|
|
812
|
-
return a;
|
|
813
|
-
},
|
|
814
|
-
{}
|
|
815
|
-
);
|
|
816
|
-
const classyWhens = Object.entries(testImplementation.whens).reduce(
|
|
817
|
-
(a, [key, whEn]) => {
|
|
818
|
-
a[key] = (...payload) => {
|
|
819
|
-
return new class extends BaseWhen {
|
|
820
|
-
async andWhen(store, whenCB, testResource, pm) {
|
|
821
|
-
return await fullAdapter.andWhen(store, whenCB, testResource, pm);
|
|
822
|
-
}
|
|
823
|
-
}(`${key}: ${payload && payload.toString()}`, whEn(...payload));
|
|
824
|
-
};
|
|
825
|
-
return a;
|
|
826
|
-
},
|
|
827
|
-
{}
|
|
828
|
-
);
|
|
829
|
-
const classyThens = Object.entries(testImplementation.thens).reduce(
|
|
830
|
-
(a, [key, thEn]) => {
|
|
831
|
-
a[key] = (...args) => {
|
|
832
|
-
return new class extends BaseThen {
|
|
833
|
-
async butThen(store, thenCB, testResource, pm) {
|
|
834
|
-
return await fullAdapter.butThen(store, thenCB, testResource, pm);
|
|
835
|
-
}
|
|
836
|
-
}(`${key}: ${args && args.toString()}`, thEn(...args));
|
|
837
|
-
};
|
|
838
|
-
return a;
|
|
839
|
-
},
|
|
840
|
-
{}
|
|
841
|
-
);
|
|
842
|
-
this.suitesOverrides = classySuites;
|
|
843
|
-
this.givenOverides = classyGivens;
|
|
844
|
-
this.whenOverides = classyWhens;
|
|
845
|
-
this.thenOverides = classyThens;
|
|
846
|
-
this.testResourceRequirement = testResourceRequirement;
|
|
847
|
-
this.testSpecification = testSpecification;
|
|
848
|
-
this.specs = testSpecification(
|
|
849
|
-
this.Suites(),
|
|
850
|
-
this.Given(),
|
|
851
|
-
this.When(),
|
|
852
|
-
this.Then()
|
|
853
|
-
);
|
|
854
|
-
this.testJobs = this.specs.map((suite) => {
|
|
855
|
-
const suiteRunner = (suite2) => async (puppetMaster, tLog) => {
|
|
856
|
-
try {
|
|
857
|
-
const x = await suite2.run(
|
|
858
|
-
input,
|
|
859
|
-
puppetMaster.testResourceConfiguration,
|
|
860
|
-
(fPath, value) => puppetMaster.testArtiFactoryfileWriter(
|
|
861
|
-
tLog,
|
|
862
|
-
(p) => {
|
|
863
|
-
this.artifacts.push(p);
|
|
864
|
-
}
|
|
865
|
-
)(
|
|
866
|
-
puppetMaster.testResourceConfiguration.fs + "/" + fPath,
|
|
867
|
-
value
|
|
868
|
-
),
|
|
869
|
-
tLog,
|
|
870
|
-
puppetMaster
|
|
871
|
-
);
|
|
872
|
-
return x;
|
|
873
|
-
} catch (e) {
|
|
874
|
-
console.error(e.stack);
|
|
875
|
-
throw e;
|
|
876
|
-
}
|
|
877
|
-
};
|
|
878
|
-
const runner = suiteRunner(suite);
|
|
879
|
-
return {
|
|
880
|
-
test: suite,
|
|
881
|
-
toObj: () => {
|
|
882
|
-
return suite.toObj();
|
|
883
|
-
},
|
|
884
|
-
runner,
|
|
885
|
-
receiveTestResourceConfig: async function(puppetMaster) {
|
|
886
|
-
const tLog = async (...l) => {
|
|
887
|
-
};
|
|
888
|
-
try {
|
|
889
|
-
const suiteDone = await runner(puppetMaster, tLog);
|
|
890
|
-
const fails = suiteDone.fails;
|
|
891
|
-
await puppetMaster.writeFileSync(
|
|
892
|
-
`tests.json`,
|
|
893
|
-
JSON.stringify(this.toObj(), null, 2),
|
|
894
|
-
"test"
|
|
895
|
-
);
|
|
896
|
-
return {
|
|
897
|
-
failed: fails > 0,
|
|
898
|
-
fails,
|
|
899
|
-
artifacts: this.artifacts || [],
|
|
900
|
-
features: suiteDone.features()
|
|
901
|
-
};
|
|
902
|
-
} catch (e) {
|
|
903
|
-
console.error(e.stack);
|
|
904
|
-
return {
|
|
905
|
-
failed: true,
|
|
906
|
-
fails: -1,
|
|
907
|
-
artifacts: this.artifacts || [],
|
|
908
|
-
features: []
|
|
909
|
-
};
|
|
910
|
-
}
|
|
911
|
-
}
|
|
912
|
-
};
|
|
913
|
-
});
|
|
914
|
-
}
|
|
915
|
-
Specs() {
|
|
916
|
-
return this.specs;
|
|
917
|
-
}
|
|
918
|
-
Suites() {
|
|
919
|
-
return this.suitesOverrides;
|
|
920
|
-
}
|
|
921
|
-
Given() {
|
|
922
|
-
return this.givenOverides;
|
|
923
|
-
}
|
|
924
|
-
When() {
|
|
925
|
-
return this.whenOverides;
|
|
926
|
-
}
|
|
927
|
-
Then() {
|
|
928
|
-
return this.thenOverides;
|
|
929
|
-
}
|
|
930
|
-
// Add a method to access test jobs which can be used by receiveTestResourceConfig
|
|
931
|
-
getTestJobs() {
|
|
932
|
-
return this.testJobs;
|
|
933
|
-
}
|
|
934
|
-
};
|
|
12
|
+
// src/lib/BaseSuite.test/web.test.ts
|
|
13
|
+
init_dirname();
|
|
14
|
+
init_buffer();
|
|
15
|
+
init_process();
|
|
935
16
|
|
|
936
|
-
// src/
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
input,
|
|
941
|
-
testSpecification,
|
|
942
|
-
testImplementation,
|
|
943
|
-
testResourceRequirement,
|
|
944
|
-
testAdapter2,
|
|
945
|
-
(cb) => {
|
|
946
|
-
}
|
|
947
|
-
);
|
|
948
|
-
}
|
|
949
|
-
async receiveTestResourceConfig(partialTestResource) {
|
|
950
|
-
const t = partialTestResource;
|
|
951
|
-
const pm = new PM_Web(t);
|
|
952
|
-
return await this.testJobs[0].receiveTestResourceConfig(pm);
|
|
953
|
-
}
|
|
954
|
-
};
|
|
955
|
-
var Web_default = async (input, testSpecification, testImplementation, testAdapter2, testResourceRequirement = defaultTestResourceRequirement) => {
|
|
956
|
-
return new WebTesteranto(
|
|
957
|
-
input,
|
|
958
|
-
testSpecification,
|
|
959
|
-
testImplementation,
|
|
960
|
-
testResourceRequirement,
|
|
961
|
-
testAdapter2
|
|
962
|
-
);
|
|
963
|
-
};
|
|
17
|
+
// src/lib/BaseSuite.test/test.ts
|
|
18
|
+
init_dirname();
|
|
19
|
+
init_buffer();
|
|
20
|
+
init_process();
|
|
964
21
|
|
|
965
22
|
// src/lib/BaseSuite.test/mock.ts
|
|
23
|
+
init_dirname();
|
|
24
|
+
init_buffer();
|
|
25
|
+
init_process();
|
|
966
26
|
var MockGiven = class extends BaseGiven {
|
|
967
27
|
constructor(name, features, whens, thens) {
|
|
968
28
|
super(
|
|
@@ -970,14 +30,14 @@ var MockGiven = class extends BaseGiven {
|
|
|
970
30
|
features,
|
|
971
31
|
whens,
|
|
972
32
|
thens,
|
|
973
|
-
async () => ({ testStore: true }),
|
|
33
|
+
async () => ({ testStore: true, testSelection: false }),
|
|
974
34
|
// givenCB
|
|
975
35
|
{}
|
|
976
36
|
// initialValues
|
|
977
37
|
);
|
|
978
38
|
}
|
|
979
39
|
async givenThat() {
|
|
980
|
-
return { testStore: true };
|
|
40
|
+
return { testStore: true, testSelection: false };
|
|
981
41
|
}
|
|
982
42
|
uberCatcher(e) {
|
|
983
43
|
console.error("Given error 2:", e);
|
|
@@ -985,16 +45,22 @@ var MockGiven = class extends BaseGiven {
|
|
|
985
45
|
};
|
|
986
46
|
var MockWhen = class extends BaseWhen {
|
|
987
47
|
async andWhen(store, whenCB, testResource, pm) {
|
|
988
|
-
const selection = {
|
|
989
|
-
|
|
990
|
-
|
|
48
|
+
const selection = {
|
|
49
|
+
testSelection: store.testStore,
|
|
50
|
+
testStore: store.testStore
|
|
51
|
+
};
|
|
52
|
+
await whenCB(selection);
|
|
53
|
+
return store;
|
|
991
54
|
}
|
|
992
55
|
addArtifact(path) {
|
|
993
56
|
}
|
|
994
57
|
};
|
|
995
58
|
var MockThen = class extends BaseThen {
|
|
996
|
-
async butThen(store, thenCB, testResourceConfiguration, pm
|
|
997
|
-
const selection = {
|
|
59
|
+
async butThen(store, thenCB, testResourceConfiguration, pm) {
|
|
60
|
+
const selection = {
|
|
61
|
+
testSelection: store.testStore,
|
|
62
|
+
testStore: store.testStore
|
|
63
|
+
};
|
|
998
64
|
await thenCB(selection);
|
|
999
65
|
return selection;
|
|
1000
66
|
}
|
|
@@ -1028,35 +94,35 @@ var MockSuite = class extends BaseSuite {
|
|
|
1028
94
|
|
|
1029
95
|
// src/lib/BaseSuite.test/test.ts
|
|
1030
96
|
var specification = (Suite, Given, When, Then) => [
|
|
1031
|
-
Suite.Default("BaseSuite Core
|
|
97
|
+
Suite.Default("BaseSuite Core Funct", {
|
|
1032
98
|
// Test initialization and basic properties
|
|
1033
99
|
initialization: Given.Default(
|
|
1034
100
|
["BaseSuite should initialize with correct name and index"],
|
|
1035
101
|
[],
|
|
1036
102
|
[Then.SuiteNameMatches("testSuite"), Then.SuiteIndexMatches(0)]
|
|
103
|
+
),
|
|
104
|
+
// Test execution flow
|
|
105
|
+
execution: Given.Default(
|
|
106
|
+
["BaseSuite should execute all phases successfully"],
|
|
107
|
+
[When.RunSuite()],
|
|
108
|
+
[Then.StoreValid()]
|
|
109
|
+
),
|
|
110
|
+
// Test multiple features
|
|
111
|
+
multipleFeatures: Given.Default(
|
|
112
|
+
["BaseSuite should handle multiple features"],
|
|
113
|
+
[When.AddFeature("additionalFeature")],
|
|
114
|
+
[
|
|
115
|
+
Then.FeaturesIncludes("testFeature"),
|
|
116
|
+
Then.FeaturesIncludes("additionalFeature"),
|
|
117
|
+
Then.FeatureCountMatches(2)
|
|
118
|
+
]
|
|
119
|
+
),
|
|
120
|
+
// Test error handling
|
|
121
|
+
errorHandling: Given.Default(
|
|
122
|
+
["BaseSuite should handle errors gracefully"],
|
|
123
|
+
[When.RunSuiteWithError()],
|
|
124
|
+
[Then.ErrorCountMatches(1), Then.FailedFlagSet()]
|
|
1037
125
|
)
|
|
1038
|
-
// // Test execution flow
|
|
1039
|
-
// execution: Given.Default(
|
|
1040
|
-
// ["BaseSuite should execute all phases successfully"],
|
|
1041
|
-
// [When.RunSuite()],
|
|
1042
|
-
// [Then.StoreValid()]
|
|
1043
|
-
// ),
|
|
1044
|
-
// // Test multiple features
|
|
1045
|
-
// multipleFeatures: Given.Default(
|
|
1046
|
-
// ["BaseSuite should handle multiple features"],
|
|
1047
|
-
// [When.AddFeature("additionalFeature")],
|
|
1048
|
-
// [
|
|
1049
|
-
// Then.FeaturesIncludes("testFeature"),
|
|
1050
|
-
// Then.FeaturesIncludes("additionalFeature"),
|
|
1051
|
-
// Then.FeatureCountMatches(2),
|
|
1052
|
-
// ]
|
|
1053
|
-
// ),
|
|
1054
|
-
// // Test error handling
|
|
1055
|
-
// errorHandling: Given.Default(
|
|
1056
|
-
// ["BaseSuite should handle errors gracefully"],
|
|
1057
|
-
// [When.RunSuiteWithError()],
|
|
1058
|
-
// [Then.ErrorCountMatches(1), Then.FailedFlagSet()]
|
|
1059
|
-
// ),
|
|
1060
126
|
})
|
|
1061
127
|
// Suite.Default("Comprehensive Integration", {
|
|
1062
128
|
// fullStackTest: Given.Default(
|
|
@@ -1092,170 +158,71 @@ var implementation = {
|
|
|
1092
158
|
}
|
|
1093
159
|
},
|
|
1094
160
|
whens: {
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
return suite;
|
|
1098
|
-
},
|
|
1099
|
-
modifySpecs: (modifier) => (suite) => {
|
|
1100
|
-
suite.specs = modifier(suite.specs);
|
|
1101
|
-
return suite;
|
|
1102
|
-
},
|
|
1103
|
-
modifyJobs: (modifier) => (suite) => {
|
|
1104
|
-
suite.testJobs = modifier(suite.testJobs);
|
|
161
|
+
// Add TestWhen which is defined in O type
|
|
162
|
+
TestWhen: () => (suite) => {
|
|
1105
163
|
return suite;
|
|
1106
164
|
},
|
|
1107
|
-
RunSuite
|
|
1108
|
-
|
|
1109
|
-
name: "test",
|
|
1110
|
-
fs: "/tmp",
|
|
1111
|
-
ports: [3e3],
|
|
1112
|
-
environment: {},
|
|
1113
|
-
timeout: 5e3,
|
|
1114
|
-
retries: 3
|
|
1115
|
-
};
|
|
1116
|
-
const mockArtifactory = (key, value) => {
|
|
1117
|
-
};
|
|
1118
|
-
const mockTLog = (...args) => {
|
|
1119
|
-
};
|
|
1120
|
-
const mockPM = {
|
|
1121
|
-
server: null,
|
|
1122
|
-
testResourceConfiguration: mockConfig,
|
|
1123
|
-
start: async () => {
|
|
1124
|
-
},
|
|
1125
|
-
stop: async () => {
|
|
1126
|
-
},
|
|
1127
|
-
testArtiFactoryfileWriter: () => {
|
|
1128
|
-
},
|
|
1129
|
-
$: () => {
|
|
1130
|
-
},
|
|
1131
|
-
click: () => {
|
|
1132
|
-
},
|
|
1133
|
-
closePage: () => {
|
|
1134
|
-
},
|
|
1135
|
-
createWriteStream: async () => ""
|
|
1136
|
-
};
|
|
1137
|
-
return await suite.run(
|
|
1138
|
-
null,
|
|
1139
|
-
mockConfig,
|
|
1140
|
-
mockArtifactory,
|
|
1141
|
-
mockTLog,
|
|
1142
|
-
mockPM
|
|
1143
|
-
);
|
|
1144
|
-
},
|
|
1145
|
-
RunSuiteWithError: () => async (suite) => {
|
|
1146
|
-
try {
|
|
1147
|
-
await suite.run(
|
|
1148
|
-
null,
|
|
1149
|
-
{},
|
|
1150
|
-
// Invalid config
|
|
1151
|
-
() => {
|
|
1152
|
-
},
|
|
1153
|
-
() => {
|
|
1154
|
-
},
|
|
1155
|
-
{}
|
|
1156
|
-
);
|
|
1157
|
-
} catch (e) {
|
|
1158
|
-
}
|
|
165
|
+
// Add RunSuite which is defined in O type
|
|
166
|
+
RunSuite: () => (suite) => {
|
|
1159
167
|
return suite;
|
|
1160
168
|
},
|
|
169
|
+
// Add AddFeature which is used in the specification
|
|
1161
170
|
AddFeature: (feature) => (suite) => {
|
|
1162
171
|
const firstGivenKey = Object.keys(suite.givens)[0];
|
|
1163
172
|
if (firstGivenKey) {
|
|
1164
173
|
suite.givens[firstGivenKey].features.push(feature);
|
|
1165
174
|
}
|
|
1166
175
|
return suite;
|
|
1167
|
-
}
|
|
1168
|
-
},
|
|
1169
|
-
thens: {
|
|
1170
|
-
SuiteNameMatches: (expectedName) => (ssel, utils) => (store) => {
|
|
1171
|
-
if (store.name !== expectedName) {
|
|
1172
|
-
throw new Error(
|
|
1173
|
-
`Expected suite name '${expectedName}', got '${store.name}'`
|
|
1174
|
-
);
|
|
1175
|
-
}
|
|
1176
|
-
return Promise.resolve({ testSelection: true });
|
|
1177
|
-
},
|
|
1178
|
-
SuiteIndexMatches: (expectedIndex) => (ssel, utils) => (store) => {
|
|
1179
|
-
if (store.index !== expectedIndex) {
|
|
1180
|
-
throw new Error(
|
|
1181
|
-
`Expected suite index ${expectedIndex}, got ${store.index}`
|
|
1182
|
-
);
|
|
1183
|
-
}
|
|
1184
|
-
return Promise.resolve({ testSelection: true });
|
|
1185
176
|
},
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
},
|
|
1189
|
-
FeatureCountMatches: (expectedCount) => (suite) => {
|
|
1190
|
-
const actualCount = suite.features().length;
|
|
1191
|
-
if (actualCount !== expectedCount) {
|
|
1192
|
-
throw new Error(
|
|
1193
|
-
`Expected ${expectedCount} features, got ${actualCount}`
|
|
1194
|
-
);
|
|
1195
|
-
}
|
|
177
|
+
// Add RunSuiteWithError which is used in the specification
|
|
178
|
+
RunSuiteWithError: () => (suite) => {
|
|
1196
179
|
return suite;
|
|
1197
180
|
},
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
}
|
|
181
|
+
// Keep other whens
|
|
182
|
+
addArtifact: (artifact) => (suite) => {
|
|
183
|
+
suite.artifacts.push(artifact);
|
|
1202
184
|
return suite;
|
|
1203
185
|
},
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
throw new Error("Expected no errors to occur during execution");
|
|
1207
|
-
}
|
|
186
|
+
modifySpecs: (modifier) => (suite) => {
|
|
187
|
+
suite.specs = modifier(suite.specs);
|
|
1208
188
|
return suite;
|
|
1209
189
|
},
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
throw new Error(
|
|
1213
|
-
`Expected ${expectedCount} errors, got ${suite.fails}`
|
|
1214
|
-
);
|
|
1215
|
-
}
|
|
190
|
+
modifyJobs: (modifier) => (suite) => {
|
|
191
|
+
suite.testJobs = modifier(suite.testJobs);
|
|
1216
192
|
return suite;
|
|
1217
|
-
}
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
thens: {
|
|
196
|
+
// Add StoreValid which is used in the specification
|
|
197
|
+
StoreValid: () => (ssel, utils) => async (s) => {
|
|
198
|
+
if (!s.testSelection) {
|
|
199
|
+
throw new Error("Store is not valid");
|
|
1221
200
|
}
|
|
1222
|
-
return
|
|
201
|
+
return Promise.resolve(new BaseSuite("temp", 0, {}));
|
|
1223
202
|
},
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
throw new Error("Expected all tests to be completed");
|
|
1227
|
-
}
|
|
1228
|
-
return suite;
|
|
203
|
+
SuiteNameMatches: (expectedName) => (ssel, utils) => async (s) => {
|
|
204
|
+
return Promise.resolve(new BaseSuite("temp", 0, {}));
|
|
1229
205
|
},
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
throw new Error("Expected clean exit state");
|
|
1233
|
-
}
|
|
1234
|
-
return suite;
|
|
206
|
+
SuiteIndexMatches: (expectedIndex) => (ssel, utils) => async (s) => {
|
|
207
|
+
return Promise.resolve(new BaseSuite("temp", 0, {}));
|
|
1235
208
|
},
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
throw new Error(`Expected ${expectedCount} modified specs`);
|
|
1239
|
-
}
|
|
1240
|
-
return suite;
|
|
209
|
+
FeaturesIncludes: (feature) => (ssel, utils) => async (s) => {
|
|
210
|
+
return Promise.resolve(new BaseSuite("temp", 0, {}));
|
|
1241
211
|
},
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
}
|
|
1246
|
-
return suite;
|
|
212
|
+
// Add FeatureCountMatches which is used in the specification
|
|
213
|
+
FeatureCountMatches: (expectedCount) => (ssel, utils) => async (s) => {
|
|
214
|
+
return Promise.resolve(new BaseSuite("temp", 0, {}));
|
|
1247
215
|
},
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
}
|
|
1252
|
-
return suite;
|
|
216
|
+
// Add ErrorCountMatches which is used in the specification
|
|
217
|
+
ErrorCountMatches: (expectedCount) => (ssel, utils) => async (s) => {
|
|
218
|
+
return Promise.resolve(new BaseSuite("temp", 0, {}));
|
|
1253
219
|
},
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
220
|
+
// Add FailedFlagSet which is used in the specification
|
|
221
|
+
FailedFlagSet: () => (ssel, utils) => async (s) => {
|
|
222
|
+
return Promise.resolve(new BaseSuite("temp", 0, {}));
|
|
223
|
+
},
|
|
224
|
+
TestThen: () => (ssel, utils) => async (s) => {
|
|
225
|
+
return Promise.resolve(new BaseSuite("temp", 0, {}));
|
|
1259
226
|
}
|
|
1260
227
|
}
|
|
1261
228
|
};
|
|
@@ -1279,13 +246,19 @@ var testAdapter = {
|
|
|
1279
246
|
}
|
|
1280
247
|
},
|
|
1281
248
|
andWhen: async (store, whenCB, testResource, pm) => {
|
|
1282
|
-
const selection = {
|
|
1283
|
-
|
|
1284
|
-
|
|
249
|
+
const selection = {
|
|
250
|
+
testSelection: store.testStore,
|
|
251
|
+
testStore: store.testStore
|
|
252
|
+
};
|
|
253
|
+
await whenCB(selection);
|
|
254
|
+
return store;
|
|
1285
255
|
},
|
|
1286
256
|
butThen: async (store, thenCB, testResource, pm) => {
|
|
1287
257
|
try {
|
|
1288
|
-
const selection = {
|
|
258
|
+
const selection = {
|
|
259
|
+
testSelection: store.testStore,
|
|
260
|
+
testStore: store.testStore
|
|
261
|
+
};
|
|
1289
262
|
await thenCB(selection);
|
|
1290
263
|
return selection;
|
|
1291
264
|
} catch (e) {
|