tm1npm 1.0.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/.env.example +16 -0
- package/.eslintrc.js +28 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +36 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- package/.github/ISSUE_TEMPLATE/question.md +24 -0
- package/.github/workflows/publish-npm.yml +53 -0
- package/.github/workflows/test-on-tag.yml +172 -0
- package/DEVELOPMENT_GUIDE.md +587 -0
- package/LICENSE +21 -0
- package/README.md +580 -0
- package/jest.ci.config.js +83 -0
- package/jest.config.js +68 -0
- package/lib/exceptions/TM1Exception.d.ts +17 -0
- package/lib/exceptions/TM1Exception.d.ts.map +1 -0
- package/lib/exceptions/TM1Exception.js +36 -0
- package/lib/exceptions/TM1RestException.d.ts +10 -0
- package/lib/exceptions/TM1RestException.d.ts.map +1 -0
- package/lib/exceptions/TM1RestException.js +17 -0
- package/lib/exceptions/TM1TimeoutException.d.ts +9 -0
- package/lib/exceptions/TM1TimeoutException.d.ts.map +1 -0
- package/lib/exceptions/TM1TimeoutException.js +16 -0
- package/lib/index.d.ts +41 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +132 -0
- package/lib/objects/Annotation.d.ts +36 -0
- package/lib/objects/Annotation.d.ts.map +1 -0
- package/lib/objects/Annotation.js +134 -0
- package/lib/objects/Application.d.ts +67 -0
- package/lib/objects/Application.d.ts.map +1 -0
- package/lib/objects/Application.js +125 -0
- package/lib/objects/Axis.d.ts +36 -0
- package/lib/objects/Axis.d.ts.map +1 -0
- package/lib/objects/Axis.js +103 -0
- package/lib/objects/Chore.d.ts +43 -0
- package/lib/objects/Chore.d.ts.map +1 -0
- package/lib/objects/Chore.js +129 -0
- package/lib/objects/ChoreFrequency.d.ts +23 -0
- package/lib/objects/ChoreFrequency.d.ts.map +1 -0
- package/lib/objects/ChoreFrequency.js +61 -0
- package/lib/objects/ChoreStartTime.d.ts +15 -0
- package/lib/objects/ChoreStartTime.d.ts.map +1 -0
- package/lib/objects/ChoreStartTime.js +85 -0
- package/lib/objects/ChoreTask.d.ts +28 -0
- package/lib/objects/ChoreTask.d.ts.map +1 -0
- package/lib/objects/ChoreTask.js +66 -0
- package/lib/objects/Cube.d.ts +26 -0
- package/lib/objects/Cube.d.ts.map +1 -0
- package/lib/objects/Cube.js +109 -0
- package/lib/objects/Dimension.d.ts +26 -0
- package/lib/objects/Dimension.d.ts.map +1 -0
- package/lib/objects/Dimension.js +86 -0
- package/lib/objects/Element.d.ts +35 -0
- package/lib/objects/Element.d.ts.map +1 -0
- package/lib/objects/Element.js +115 -0
- package/lib/objects/ElementAttribute.d.ts +28 -0
- package/lib/objects/ElementAttribute.d.ts.map +1 -0
- package/lib/objects/ElementAttribute.js +97 -0
- package/lib/objects/Git.d.ts +21 -0
- package/lib/objects/Git.d.ts.map +1 -0
- package/lib/objects/Git.js +49 -0
- package/lib/objects/GitCommit.d.ts +12 -0
- package/lib/objects/GitCommit.d.ts.map +1 -0
- package/lib/objects/GitCommit.js +26 -0
- package/lib/objects/GitPlan.d.ts +35 -0
- package/lib/objects/GitPlan.d.ts.map +1 -0
- package/lib/objects/GitPlan.js +78 -0
- package/lib/objects/GitRemote.d.ts +12 -0
- package/lib/objects/GitRemote.d.ts.map +1 -0
- package/lib/objects/GitRemote.js +26 -0
- package/lib/objects/Hierarchy.d.ts +47 -0
- package/lib/objects/Hierarchy.d.ts.map +1 -0
- package/lib/objects/Hierarchy.js +165 -0
- package/lib/objects/MDXView.d.ts +19 -0
- package/lib/objects/MDXView.d.ts.map +1 -0
- package/lib/objects/MDXView.js +67 -0
- package/lib/objects/NativeView.d.ts +39 -0
- package/lib/objects/NativeView.d.ts.map +1 -0
- package/lib/objects/NativeView.js +209 -0
- package/lib/objects/Process.d.ts +70 -0
- package/lib/objects/Process.d.ts.map +1 -0
- package/lib/objects/Process.js +210 -0
- package/lib/objects/ProcessDebugBreakpoint.d.ts +60 -0
- package/lib/objects/ProcessDebugBreakpoint.d.ts.map +1 -0
- package/lib/objects/ProcessDebugBreakpoint.js +168 -0
- package/lib/objects/ProcessParameter.d.ts +23 -0
- package/lib/objects/ProcessParameter.d.ts.map +1 -0
- package/lib/objects/ProcessParameter.js +55 -0
- package/lib/objects/ProcessVariable.d.ts +26 -0
- package/lib/objects/ProcessVariable.d.ts.map +1 -0
- package/lib/objects/ProcessVariable.js +63 -0
- package/lib/objects/Rules.d.ts +30 -0
- package/lib/objects/Rules.d.ts.map +1 -0
- package/lib/objects/Rules.js +103 -0
- package/lib/objects/Sandbox.d.ts +21 -0
- package/lib/objects/Sandbox.d.ts.map +1 -0
- package/lib/objects/Sandbox.js +64 -0
- package/lib/objects/Server.d.ts +27 -0
- package/lib/objects/Server.d.ts.map +1 -0
- package/lib/objects/Server.js +26 -0
- package/lib/objects/Subset.d.ts +44 -0
- package/lib/objects/Subset.d.ts.map +1 -0
- package/lib/objects/Subset.js +222 -0
- package/lib/objects/TM1Object.d.ts +8 -0
- package/lib/objects/TM1Object.d.ts.map +1 -0
- package/lib/objects/TM1Object.js +17 -0
- package/lib/objects/TM1Project.d.ts +74 -0
- package/lib/objects/TM1Project.d.ts.map +1 -0
- package/lib/objects/TM1Project.js +409 -0
- package/lib/objects/User.d.ts +42 -0
- package/lib/objects/User.d.ts.map +1 -0
- package/lib/objects/User.js +157 -0
- package/lib/objects/View.d.ts +19 -0
- package/lib/objects/View.d.ts.map +1 -0
- package/lib/objects/View.js +33 -0
- package/lib/objects/index.d.ts +30 -0
- package/lib/objects/index.d.ts.map +1 -0
- package/lib/objects/index.js +68 -0
- package/lib/services/AnnotationService.d.ts +17 -0
- package/lib/services/AnnotationService.d.ts.map +1 -0
- package/lib/services/AnnotationService.js +91 -0
- package/lib/services/ApplicationService.d.ts +21 -0
- package/lib/services/ApplicationService.d.ts.map +1 -0
- package/lib/services/ApplicationService.js +227 -0
- package/lib/services/AuditLogService.d.ts +15 -0
- package/lib/services/AuditLogService.d.ts.map +1 -0
- package/lib/services/AuditLogService.js +153 -0
- package/lib/services/CellService.d.ts +191 -0
- package/lib/services/CellService.d.ts.map +1 -0
- package/lib/services/CellService.js +597 -0
- package/lib/services/ChoreService.d.ts +24 -0
- package/lib/services/ChoreService.d.ts.map +1 -0
- package/lib/services/ChoreService.js +219 -0
- package/lib/services/ConfigurationService.d.ts +18 -0
- package/lib/services/ConfigurationService.d.ts.map +1 -0
- package/lib/services/ConfigurationService.js +60 -0
- package/lib/services/CubeService.d.ts +43 -0
- package/lib/services/CubeService.d.ts.map +1 -0
- package/lib/services/CubeService.js +296 -0
- package/lib/services/DimensionService.d.ts +21 -0
- package/lib/services/DimensionService.d.ts.map +1 -0
- package/lib/services/DimensionService.js +146 -0
- package/lib/services/ElementService.d.ts +132 -0
- package/lib/services/ElementService.d.ts.map +1 -0
- package/lib/services/ElementService.js +579 -0
- package/lib/services/FileService.d.ts +14 -0
- package/lib/services/FileService.d.ts.map +1 -0
- package/lib/services/FileService.js +65 -0
- package/lib/services/GitService.d.ts +23 -0
- package/lib/services/GitService.d.ts.map +1 -0
- package/lib/services/GitService.js +225 -0
- package/lib/services/HierarchyService.d.ts +32 -0
- package/lib/services/HierarchyService.d.ts.map +1 -0
- package/lib/services/HierarchyService.js +235 -0
- package/lib/services/JobService.d.ts +13 -0
- package/lib/services/JobService.d.ts.map +1 -0
- package/lib/services/JobService.js +83 -0
- package/lib/services/LoggerService.d.ts +16 -0
- package/lib/services/LoggerService.d.ts.map +1 -0
- package/lib/services/LoggerService.js +101 -0
- package/lib/services/ManageService.d.ts +47 -0
- package/lib/services/ManageService.d.ts.map +1 -0
- package/lib/services/ManageService.js +221 -0
- package/lib/services/MessageLogService.d.ts +13 -0
- package/lib/services/MessageLogService.d.ts.map +1 -0
- package/lib/services/MessageLogService.js +175 -0
- package/lib/services/MonitoringService.d.ts +29 -0
- package/lib/services/MonitoringService.d.ts.map +1 -0
- package/lib/services/MonitoringService.js +86 -0
- package/lib/services/ObjectService.d.ts +8 -0
- package/lib/services/ObjectService.d.ts.map +1 -0
- package/lib/services/ObjectService.js +20 -0
- package/lib/services/PowerBiService.d.ts +13 -0
- package/lib/services/PowerBiService.d.ts.map +1 -0
- package/lib/services/PowerBiService.js +52 -0
- package/lib/services/ProcessService.d.ts +57 -0
- package/lib/services/ProcessService.d.ts.map +1 -0
- package/lib/services/ProcessService.js +499 -0
- package/lib/services/RestService.d.ts +68 -0
- package/lib/services/RestService.d.ts.map +1 -0
- package/lib/services/RestService.js +166 -0
- package/lib/services/SandboxService.d.ts +28 -0
- package/lib/services/SandboxService.d.ts.map +1 -0
- package/lib/services/SandboxService.js +197 -0
- package/lib/services/SecurityService.d.ts +33 -0
- package/lib/services/SecurityService.d.ts.map +1 -0
- package/lib/services/SecurityService.js +249 -0
- package/lib/services/ServerService.d.ts +55 -0
- package/lib/services/ServerService.d.ts.map +1 -0
- package/lib/services/ServerService.js +247 -0
- package/lib/services/SessionService.d.ts +15 -0
- package/lib/services/SessionService.d.ts.map +1 -0
- package/lib/services/SessionService.js +68 -0
- package/lib/services/SubsetService.d.ts +13 -0
- package/lib/services/SubsetService.d.ts.map +1 -0
- package/lib/services/SubsetService.js +46 -0
- package/lib/services/TM1Service.d.ts +39 -0
- package/lib/services/TM1Service.d.ts.map +1 -0
- package/lib/services/TM1Service.js +94 -0
- package/lib/services/ThreadService.d.ts +15 -0
- package/lib/services/ThreadService.d.ts.map +1 -0
- package/lib/services/ThreadService.js +104 -0
- package/lib/services/TransactionLogService.d.ts +11 -0
- package/lib/services/TransactionLogService.d.ts.map +1 -0
- package/lib/services/TransactionLogService.js +124 -0
- package/lib/services/UserService.d.ts +14 -0
- package/lib/services/UserService.d.ts.map +1 -0
- package/lib/services/UserService.js +103 -0
- package/lib/services/ViewService.d.ts +30 -0
- package/lib/services/ViewService.d.ts.map +1 -0
- package/lib/services/ViewService.js +331 -0
- package/lib/services/index.d.ts +26 -0
- package/lib/services/index.d.ts.map +1 -0
- package/lib/services/index.js +56 -0
- package/lib/tests/100PercentParityCheck.test.d.ts +6 -0
- package/lib/tests/100PercentParityCheck.test.d.ts.map +1 -0
- package/lib/tests/100PercentParityCheck.test.js +143 -0
- package/lib/tests/basic.test.d.ts +6 -0
- package/lib/tests/basic.test.d.ts.map +1 -0
- package/lib/tests/basic.test.js +52 -0
- package/lib/tests/cellService.test.d.ts +6 -0
- package/lib/tests/cellService.test.d.ts.map +1 -0
- package/lib/tests/cellService.test.js +311 -0
- package/lib/tests/ciSetup.d.ts +6 -0
- package/lib/tests/ciSetup.d.ts.map +1 -0
- package/lib/tests/ciSetup.js +23 -0
- package/lib/tests/comprehensive.service.test.d.ts +6 -0
- package/lib/tests/comprehensive.service.test.d.ts.map +1 -0
- package/lib/tests/comprehensive.service.test.js +507 -0
- package/lib/tests/connection.test.d.ts +6 -0
- package/lib/tests/connection.test.d.ts.map +1 -0
- package/lib/tests/connection.test.js +89 -0
- package/lib/tests/cubeService.test.d.ts +6 -0
- package/lib/tests/cubeService.test.d.ts.map +1 -0
- package/lib/tests/cubeService.test.js +368 -0
- package/lib/tests/dimensionService.comprehensive.test.d.ts +7 -0
- package/lib/tests/dimensionService.comprehensive.test.d.ts.map +1 -0
- package/lib/tests/dimensionService.comprehensive.test.js +614 -0
- package/lib/tests/dimensionService.test.d.ts +6 -0
- package/lib/tests/dimensionService.test.d.ts.map +1 -0
- package/lib/tests/dimensionService.test.js +293 -0
- package/lib/tests/edgeCases.test.d.ts +6 -0
- package/lib/tests/edgeCases.test.d.ts.map +1 -0
- package/lib/tests/edgeCases.test.js +301 -0
- package/lib/tests/elementService.comprehensive.test.d.ts +7 -0
- package/lib/tests/elementService.comprehensive.test.d.ts.map +1 -0
- package/lib/tests/elementService.comprehensive.test.js +846 -0
- package/lib/tests/elementService.test.d.ts +6 -0
- package/lib/tests/elementService.test.d.ts.map +1 -0
- package/lib/tests/elementService.test.js +350 -0
- package/lib/tests/enhancedCellService.test.d.ts +2 -0
- package/lib/tests/enhancedCellService.test.d.ts.map +1 -0
- package/lib/tests/enhancedCellService.test.js +152 -0
- package/lib/tests/enhancedCubeService.test.d.ts +2 -0
- package/lib/tests/enhancedCubeService.test.d.ts.map +1 -0
- package/lib/tests/enhancedCubeService.test.js +246 -0
- package/lib/tests/enhancedElementService.test.d.ts +2 -0
- package/lib/tests/enhancedElementService.test.d.ts.map +1 -0
- package/lib/tests/enhancedElementService.test.js +199 -0
- package/lib/tests/enhancedViewService.test.d.ts +2 -0
- package/lib/tests/enhancedViewService.test.d.ts.map +1 -0
- package/lib/tests/enhancedViewService.test.js +260 -0
- package/lib/tests/errorHandling.test.d.ts +6 -0
- package/lib/tests/errorHandling.test.d.ts.map +1 -0
- package/lib/tests/errorHandling.test.js +227 -0
- package/lib/tests/exceptions.test.d.ts +7 -0
- package/lib/tests/exceptions.test.d.ts.map +1 -0
- package/lib/tests/exceptions.test.js +257 -0
- package/lib/tests/hierarchyService.test.d.ts +6 -0
- package/lib/tests/hierarchyService.test.d.ts.map +1 -0
- package/lib/tests/hierarchyService.test.js +294 -0
- package/lib/tests/index.test.d.ts +6 -0
- package/lib/tests/index.test.d.ts.map +1 -0
- package/lib/tests/index.test.js +346 -0
- package/lib/tests/integration.test.d.ts +6 -0
- package/lib/tests/integration.test.d.ts.map +1 -0
- package/lib/tests/integration.test.js +302 -0
- package/lib/tests/integrationTests.test.d.ts +2 -0
- package/lib/tests/integrationTests.test.d.ts.map +1 -0
- package/lib/tests/integrationTests.test.js +252 -0
- package/lib/tests/mdx.advanced.test.d.ts +6 -0
- package/lib/tests/mdx.advanced.test.d.ts.map +1 -0
- package/lib/tests/mdx.advanced.test.js +437 -0
- package/lib/tests/objects.improved.test.d.ts +7 -0
- package/lib/tests/objects.improved.test.d.ts.map +1 -0
- package/lib/tests/objects.improved.test.js +302 -0
- package/lib/tests/performance.test.d.ts +6 -0
- package/lib/tests/performance.test.d.ts.map +1 -0
- package/lib/tests/performance.test.js +264 -0
- package/lib/tests/processService.comprehensive.test.d.ts +7 -0
- package/lib/tests/processService.comprehensive.test.d.ts.map +1 -0
- package/lib/tests/processService.comprehensive.test.js +656 -0
- package/lib/tests/processService.test.d.ts +6 -0
- package/lib/tests/processService.test.d.ts.map +1 -0
- package/lib/tests/processService.test.js +322 -0
- package/lib/tests/restService.test.d.ts +6 -0
- package/lib/tests/restService.test.d.ts.map +1 -0
- package/lib/tests/restService.test.js +177 -0
- package/lib/tests/security.advanced.test.d.ts +6 -0
- package/lib/tests/security.advanced.test.d.ts.map +1 -0
- package/lib/tests/security.advanced.test.js +407 -0
- package/lib/tests/security.test.d.ts +6 -0
- package/lib/tests/security.test.d.ts.map +1 -0
- package/lib/tests/security.test.js +204 -0
- package/lib/tests/securityService.comprehensive.test.d.ts +7 -0
- package/lib/tests/securityService.comprehensive.test.d.ts.map +1 -0
- package/lib/tests/securityService.comprehensive.test.js +457 -0
- package/lib/tests/setup.d.ts +4 -0
- package/lib/tests/setup.d.ts.map +1 -0
- package/lib/tests/setup.js +40 -0
- package/lib/tests/simpleCoverage.test.d.ts +6 -0
- package/lib/tests/simpleCoverage.test.d.ts.map +1 -0
- package/lib/tests/simpleCoverage.test.js +236 -0
- package/lib/tests/stress.performance.test.d.ts +6 -0
- package/lib/tests/stress.performance.test.d.ts.map +1 -0
- package/lib/tests/stress.performance.test.js +423 -0
- package/lib/tests/subsetService.test.d.ts +6 -0
- package/lib/tests/subsetService.test.d.ts.map +1 -0
- package/lib/tests/subsetService.test.js +271 -0
- package/lib/tests/testConfig.d.ts +18 -0
- package/lib/tests/testConfig.d.ts.map +1 -0
- package/lib/tests/testConfig.js +38 -0
- package/lib/tests/testUtils.d.ts +9 -0
- package/lib/tests/testUtils.d.ts.map +1 -0
- package/lib/tests/testUtils.js +100 -0
- package/lib/tests/tm1Service.test.d.ts +7 -0
- package/lib/tests/tm1Service.test.d.ts.map +1 -0
- package/lib/tests/tm1Service.test.js +290 -0
- package/lib/tests/viewService.test.d.ts +6 -0
- package/lib/tests/viewService.test.d.ts.map +1 -0
- package/lib/tests/viewService.test.js +240 -0
- package/lib/utils/Utils.d.ts +90 -0
- package/lib/utils/Utils.d.ts.map +1 -0
- package/lib/utils/Utils.js +379 -0
- package/package.json +81 -0
- package/run-all-tests.js +296 -0
- package/src/exceptions/TM1Exception.ts +38 -0
- package/src/exceptions/TM1RestException.ts +17 -0
- package/src/exceptions/TM1TimeoutException.ts +15 -0
- package/src/index.ts +94 -0
- package/src/objects/Annotation.ts +194 -0
- package/src/objects/Application.ts +146 -0
- package/src/objects/Axis.ts +149 -0
- package/src/objects/Chore.ts +174 -0
- package/src/objects/ChoreFrequency.ts +83 -0
- package/src/objects/ChoreStartTime.ts +111 -0
- package/src/objects/ChoreTask.ts +92 -0
- package/src/objects/Cube.ts +125 -0
- package/src/objects/Dimension.ts +107 -0
- package/src/objects/Element.ts +153 -0
- package/src/objects/ElementAttribute.ts +115 -0
- package/src/objects/Git.ts +86 -0
- package/src/objects/GitCommit.ts +31 -0
- package/src/objects/GitPlan.ts +121 -0
- package/src/objects/GitRemote.ts +31 -0
- package/src/objects/Hierarchy.ts +229 -0
- package/src/objects/MDXView.ts +91 -0
- package/src/objects/NativeView.ts +268 -0
- package/src/objects/Process.ts +320 -0
- package/src/objects/ProcessDebugBreakpoint.ts +239 -0
- package/src/objects/ProcessParameter.ts +76 -0
- package/src/objects/ProcessVariable.ts +89 -0
- package/src/objects/Rules.ts +117 -0
- package/src/objects/Sandbox.ts +90 -0
- package/src/objects/Server.ts +45 -0
- package/src/objects/Subset.ts +323 -0
- package/src/objects/TM1Object.ts +17 -0
- package/src/objects/TM1Project.ts +587 -0
- package/src/objects/User.ts +198 -0
- package/src/objects/View.ts +43 -0
- package/src/objects/index.ts +36 -0
- package/src/services/AnnotationService.ts +107 -0
- package/src/services/ApplicationService.ts +279 -0
- package/src/services/AuditLogService.ts +172 -0
- package/src/services/CellService.ts +814 -0
- package/src/services/ChoreService.ts +219 -0
- package/src/services/ConfigurationService.ts +69 -0
- package/src/services/CubeService.ts +338 -0
- package/src/services/DimensionService.ts +168 -0
- package/src/services/ElementService.ts +966 -0
- package/src/services/FileService.ts +67 -0
- package/src/services/GitService.ts +324 -0
- package/src/services/HierarchyService.ts +284 -0
- package/src/services/JobService.ts +59 -0
- package/src/services/LoggerService.ts +118 -0
- package/src/services/ManageService.ts +322 -0
- package/src/services/MessageLogService.ts +211 -0
- package/src/services/MonitoringService.ts +105 -0
- package/src/services/ObjectService.ts +21 -0
- package/src/services/PowerBiService.ts +85 -0
- package/src/services/ProcessService.ts +589 -0
- package/src/services/RestService.ts +224 -0
- package/src/services/SandboxService.ts +217 -0
- package/src/services/SecurityService.ts +284 -0
- package/src/services/ServerService.ts +313 -0
- package/src/services/SessionService.ts +81 -0
- package/src/services/SubsetService.ts +52 -0
- package/src/services/TM1Service.ts +133 -0
- package/src/services/ThreadService.ts +83 -0
- package/src/services/TransactionLogService.ts +148 -0
- package/src/services/UserService.ts +77 -0
- package/src/services/ViewService.ts +398 -0
- package/src/services/index.ts +28 -0
- package/src/tests/100PercentParityCheck.test.ts +166 -0
- package/src/tests/basic.test.ts +59 -0
- package/src/tests/cellService.test.ts +405 -0
- package/src/tests/ciSetup.ts +26 -0
- package/src/tests/comprehensive.service.test.ts +653 -0
- package/src/tests/config.ini.template +23 -0
- package/src/tests/connection.test.ts +90 -0
- package/src/tests/cubeService.test.ts +458 -0
- package/src/tests/dimensionService.comprehensive.test.ts +786 -0
- package/src/tests/dimensionService.test.ts +373 -0
- package/src/tests/edgeCases.test.ts +358 -0
- package/src/tests/elementService.comprehensive.test.ts +1190 -0
- package/src/tests/elementService.test.ts +472 -0
- package/src/tests/enhancedCellService.test.ts +237 -0
- package/src/tests/enhancedCubeService.test.ts +384 -0
- package/src/tests/enhancedElementService.test.ts +301 -0
- package/src/tests/enhancedViewService.test.ts +373 -0
- package/src/tests/errorHandling.test.ts +264 -0
- package/src/tests/exceptions.test.ts +313 -0
- package/src/tests/hierarchyService.test.ts +386 -0
- package/src/tests/index.test.ts +376 -0
- package/src/tests/integration.test.ts +333 -0
- package/src/tests/integrationTests.test.ts +302 -0
- package/src/tests/mdx.advanced.test.ts +513 -0
- package/src/tests/objects.improved.test.ts +385 -0
- package/src/tests/performance.test.ts +314 -0
- package/src/tests/processService.comprehensive.test.ts +933 -0
- package/src/tests/processService.test.ts +409 -0
- package/src/tests/restService.test.ts +218 -0
- package/src/tests/security.advanced.test.ts +464 -0
- package/src/tests/security.test.ts +233 -0
- package/src/tests/securityService.comprehensive.test.ts +582 -0
- package/src/tests/setup.ts +42 -0
- package/src/tests/simpleCoverage.test.ts +287 -0
- package/src/tests/stress.performance.test.ts +531 -0
- package/src/tests/subsetService.test.ts +350 -0
- package/src/tests/testConfig.ts +53 -0
- package/src/tests/testUtils.ts +94 -0
- package/src/tests/tm1Service.test.ts +361 -0
- package/src/tests/viewService.test.ts +324 -0
- package/src/utils/Utils.ts +395 -0
- package/tests/README.md +57 -0
- package/tests/connection/test-connection.ts +86 -0
- package/tests/edge-cases/edge-cases-test.ts +244 -0
- package/tests/integration/working-test.ts +193 -0
- package/tests/performance/performance-test.ts +133 -0
- package/tests/run-all-tests.sh +106 -0
- package/tests/security/security-test.ts +103 -0
- package/tsconfig.json +20 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subsetService.test.d.ts","sourceRoot":"","sources":["../../src/tests/subsetService.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* SubsetService Tests for tm1npm
|
|
4
|
+
* Comprehensive tests for TM1 Subset operations with proper mocking
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const SubsetService_1 = require("../services/SubsetService");
|
|
8
|
+
const Subset_1 = require("../objects/Subset");
|
|
9
|
+
const TM1Exception_1 = require("../exceptions/TM1Exception");
|
|
10
|
+
// Helper function to create mock AxiosResponse
|
|
11
|
+
const createMockResponse = (data, status = 200) => ({
|
|
12
|
+
data,
|
|
13
|
+
status,
|
|
14
|
+
statusText: status === 200 ? 'OK' : status === 201 ? 'Created' : status === 204 ? 'No Content' : 'Error',
|
|
15
|
+
headers: {},
|
|
16
|
+
config: {}
|
|
17
|
+
});
|
|
18
|
+
describe('SubsetService Tests', () => {
|
|
19
|
+
let subsetService;
|
|
20
|
+
let mockRestService;
|
|
21
|
+
beforeEach(() => {
|
|
22
|
+
// Create comprehensive mock for RestService
|
|
23
|
+
mockRestService = {
|
|
24
|
+
get: jest.fn(),
|
|
25
|
+
post: jest.fn(),
|
|
26
|
+
patch: jest.fn(),
|
|
27
|
+
delete: jest.fn(),
|
|
28
|
+
put: jest.fn(),
|
|
29
|
+
config: {},
|
|
30
|
+
rest: {},
|
|
31
|
+
buildBaseUrl: jest.fn(),
|
|
32
|
+
extractErrorMessage: jest.fn()
|
|
33
|
+
};
|
|
34
|
+
subsetService = new SubsetService_1.SubsetService(mockRestService);
|
|
35
|
+
});
|
|
36
|
+
describe('Subset Retrieval Operations', () => {
|
|
37
|
+
test('should get all subset names for dimension/hierarchy', async () => {
|
|
38
|
+
mockRestService.get.mockResolvedValue(createMockResponse({
|
|
39
|
+
value: [
|
|
40
|
+
{ Name: 'Default' },
|
|
41
|
+
{ Name: 'TopLevel' },
|
|
42
|
+
{ Name: 'CustomSubset' }
|
|
43
|
+
]
|
|
44
|
+
}));
|
|
45
|
+
const subsetNames = await subsetService.getAllNames('TestDimension', 'TestHierarchy');
|
|
46
|
+
expect(Array.isArray(subsetNames)).toBe(true);
|
|
47
|
+
expect(subsetNames.length).toBe(3);
|
|
48
|
+
expect(subsetNames).toEqual(['Default', 'TopLevel', 'CustomSubset']);
|
|
49
|
+
console.log('✅ Subset names retrieved successfully');
|
|
50
|
+
});
|
|
51
|
+
test('should get all subsets with full details', async () => {
|
|
52
|
+
mockRestService.get.mockResolvedValue(createMockResponse({
|
|
53
|
+
value: [
|
|
54
|
+
{
|
|
55
|
+
Name: 'Default',
|
|
56
|
+
UniqueName: '[TestDimension].[TestHierarchy].[Default]',
|
|
57
|
+
Expression: '',
|
|
58
|
+
Hierarchy: {
|
|
59
|
+
Name: 'TestHierarchy',
|
|
60
|
+
Dimension: { Name: 'TestDimension' }
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
Name: 'TopLevel',
|
|
65
|
+
UniqueName: '[TestDimension].[TestHierarchy].[TopLevel]',
|
|
66
|
+
Expression: '{TM1FILTERBYLEVEL({TM1SUBSETALL([TestDimension])}, 0)}',
|
|
67
|
+
Hierarchy: {
|
|
68
|
+
Name: 'TestHierarchy',
|
|
69
|
+
Dimension: { Name: 'TestDimension' }
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
}));
|
|
74
|
+
const response = await subsetService.getAllNames('TestDimension', 'TestHierarchy');
|
|
75
|
+
expect(Array.isArray(response)).toBe(true);
|
|
76
|
+
expect(response.length).toBe(2);
|
|
77
|
+
expect(response[0]).toBe('Default');
|
|
78
|
+
expect(response[1]).toBe('TopLevel');
|
|
79
|
+
console.log('✅ All subsets retrieved successfully');
|
|
80
|
+
});
|
|
81
|
+
test('should get specific subset by name', async () => {
|
|
82
|
+
mockRestService.get.mockResolvedValue(createMockResponse({
|
|
83
|
+
Name: 'SpecificSubset',
|
|
84
|
+
UniqueName: '[TestDimension].[TestHierarchy].[SpecificSubset]',
|
|
85
|
+
Expression: '{[Element1], [Element2], [Element3]}',
|
|
86
|
+
Hierarchy: {
|
|
87
|
+
Name: 'TestHierarchy',
|
|
88
|
+
Dimension: { Name: 'TestDimension' }
|
|
89
|
+
},
|
|
90
|
+
Elements: [
|
|
91
|
+
{ Name: 'Element1' },
|
|
92
|
+
{ Name: 'Element2' },
|
|
93
|
+
{ Name: 'Element3' }
|
|
94
|
+
]
|
|
95
|
+
}));
|
|
96
|
+
const subset = await subsetService.get('TestDimension', 'TestHierarchy', 'SpecificSubset');
|
|
97
|
+
expect(subset).toBeDefined();
|
|
98
|
+
expect(subset.Name).toBe('SpecificSubset');
|
|
99
|
+
console.log('✅ Specific subset retrieved successfully');
|
|
100
|
+
});
|
|
101
|
+
test('should check if subset exists', async () => {
|
|
102
|
+
// Test existing subset
|
|
103
|
+
mockRestService.get.mockResolvedValue(createMockResponse({
|
|
104
|
+
Name: 'ExistingSubset'
|
|
105
|
+
}));
|
|
106
|
+
const exists = await subsetService.exists('TestDimension', 'TestHierarchy', 'ExistingSubset');
|
|
107
|
+
expect(exists).toBe(true);
|
|
108
|
+
console.log('✅ Subset existence check working correctly');
|
|
109
|
+
});
|
|
110
|
+
test('should check if subset does not exist', async () => {
|
|
111
|
+
// Test non-existing subset
|
|
112
|
+
const mockError = new TM1Exception_1.TM1RestException('Subset not found', 404, { status: 404 });
|
|
113
|
+
mockRestService.get.mockRejectedValue(mockError);
|
|
114
|
+
const notExists = await subsetService.exists('TestDimension', 'TestHierarchy', 'NonExistent');
|
|
115
|
+
expect(notExists).toBe(false);
|
|
116
|
+
console.log('✅ Subset non-existence check working correctly');
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
describe('Subset CRUD Operations', () => {
|
|
120
|
+
test('should create new subset', async () => {
|
|
121
|
+
const mockSubset = new Subset_1.Subset('NewSubset', 'TestDimension', 'TestHierarchy');
|
|
122
|
+
mockSubset.expression = '{[Element1], [Element2]}';
|
|
123
|
+
mockRestService.post.mockResolvedValue(createMockResponse({
|
|
124
|
+
Name: 'NewSubset'
|
|
125
|
+
}, 201));
|
|
126
|
+
const result = await subsetService.create('TestDimension', 'TestHierarchy', mockSubset);
|
|
127
|
+
expect(result.status).toBe(201);
|
|
128
|
+
expect(mockRestService.post).toHaveBeenCalled();
|
|
129
|
+
console.log('✅ Subset creation successful');
|
|
130
|
+
});
|
|
131
|
+
test('should update existing subset', async () => {
|
|
132
|
+
const mockSubset = new Subset_1.Subset('UpdatedSubset', 'TestDimension', 'TestHierarchy');
|
|
133
|
+
mockSubset.expression = '{[Element1], [Element2], [Element3]}';
|
|
134
|
+
mockRestService.patch.mockResolvedValue(createMockResponse({}, 200));
|
|
135
|
+
const result = await subsetService.update('TestDimension', 'TestHierarchy', mockSubset);
|
|
136
|
+
expect(result.status).toBe(200);
|
|
137
|
+
console.log('✅ Subset update successful');
|
|
138
|
+
});
|
|
139
|
+
test('should delete subset', async () => {
|
|
140
|
+
mockRestService.delete.mockResolvedValue(createMockResponse({}, 204));
|
|
141
|
+
const result = await subsetService.delete('TestDimension', 'TestHierarchy', 'SubsetToDelete');
|
|
142
|
+
expect(result.status).toBe(204);
|
|
143
|
+
console.log('✅ Subset deletion successful');
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
describe('Subset Element Operations', () => {
|
|
147
|
+
test('should get subset elements', async () => {
|
|
148
|
+
mockRestService.get.mockResolvedValue(createMockResponse({
|
|
149
|
+
value: [
|
|
150
|
+
{ Name: 'Element1' },
|
|
151
|
+
{ Name: 'Element2' },
|
|
152
|
+
{ Name: 'Element3' }
|
|
153
|
+
]
|
|
154
|
+
}));
|
|
155
|
+
const subset = await subsetService.get('TestDimension', 'TestHierarchy', 'TestSubset');
|
|
156
|
+
expect(subset).toBeDefined();
|
|
157
|
+
expect(Array.isArray(subset.value)).toBe(true);
|
|
158
|
+
console.log('✅ Subset elements retrieved successfully');
|
|
159
|
+
});
|
|
160
|
+
test('should handle empty subset', async () => {
|
|
161
|
+
mockRestService.get.mockResolvedValue(createMockResponse({
|
|
162
|
+
Name: 'EmptySubset',
|
|
163
|
+
Elements: []
|
|
164
|
+
}));
|
|
165
|
+
const subset = await subsetService.get('TestDimension', 'TestHierarchy', 'EmptySubset');
|
|
166
|
+
expect(subset).toBeDefined();
|
|
167
|
+
expect(subset.Name).toBe('EmptySubset');
|
|
168
|
+
console.log('✅ Empty subset handling working');
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
describe('Subset Error Handling', () => {
|
|
172
|
+
test('should handle invalid subset names gracefully', async () => {
|
|
173
|
+
mockRestService.get.mockRejectedValue({
|
|
174
|
+
response: { status: 400, statusText: 'Bad Request' }
|
|
175
|
+
});
|
|
176
|
+
await expect(subsetService.get('TestDimension', 'TestHierarchy', ''))
|
|
177
|
+
.rejects.toMatchObject({
|
|
178
|
+
response: { status: 400 }
|
|
179
|
+
});
|
|
180
|
+
console.log('✅ Invalid subset name handling working');
|
|
181
|
+
});
|
|
182
|
+
test('should handle network errors gracefully', async () => {
|
|
183
|
+
mockRestService.get.mockRejectedValue({
|
|
184
|
+
code: 'ECONNREFUSED'
|
|
185
|
+
});
|
|
186
|
+
await expect(subsetService.getAllNames('TestDimension', 'TestHierarchy'))
|
|
187
|
+
.rejects.toMatchObject({
|
|
188
|
+
code: 'ECONNREFUSED'
|
|
189
|
+
});
|
|
190
|
+
console.log('✅ Network error handling working');
|
|
191
|
+
});
|
|
192
|
+
test('should handle authentication errors', async () => {
|
|
193
|
+
mockRestService.get.mockRejectedValue({
|
|
194
|
+
response: { status: 401, statusText: 'Unauthorized' }
|
|
195
|
+
});
|
|
196
|
+
await expect(subsetService.get('TestDimension', 'TestHierarchy', 'TestSubset'))
|
|
197
|
+
.rejects.toMatchObject({
|
|
198
|
+
response: { status: 401 }
|
|
199
|
+
});
|
|
200
|
+
console.log('✅ Authentication error handling working');
|
|
201
|
+
});
|
|
202
|
+
});
|
|
203
|
+
describe('Subset Service Edge Cases', () => {
|
|
204
|
+
test('should handle large subset lists', async () => {
|
|
205
|
+
const largeSubsetData = Array(1000).fill(null).map((_, i) => ({
|
|
206
|
+
Name: `Subset${i}`,
|
|
207
|
+
Expression: `{[Element${i}]}`
|
|
208
|
+
}));
|
|
209
|
+
mockRestService.get.mockResolvedValue(createMockResponse({
|
|
210
|
+
value: largeSubsetData
|
|
211
|
+
}));
|
|
212
|
+
const startTime = Date.now();
|
|
213
|
+
const subsets = await subsetService.getAllNames('LargeDimension', 'LargeHierarchy');
|
|
214
|
+
const endTime = Date.now();
|
|
215
|
+
expect(subsets.length).toBe(1000);
|
|
216
|
+
expect(endTime - startTime).toBeLessThan(1000); // Should be fast with mocking
|
|
217
|
+
console.log('✅ Large subset list processing efficient');
|
|
218
|
+
});
|
|
219
|
+
test('should handle concurrent operations efficiently', async () => {
|
|
220
|
+
mockRestService.get.mockResolvedValue(createMockResponse({
|
|
221
|
+
value: [{ Name: 'TestSubset' }]
|
|
222
|
+
}));
|
|
223
|
+
const operations = Array(5).fill(null).map(() => subsetService.getAllNames('TestDimension', 'TestHierarchy'));
|
|
224
|
+
const results = await Promise.allSettled(operations);
|
|
225
|
+
const successful = results.filter(r => r.status === 'fulfilled');
|
|
226
|
+
expect(successful.length).toBe(5);
|
|
227
|
+
console.log('✅ Concurrent operations handling working');
|
|
228
|
+
});
|
|
229
|
+
});
|
|
230
|
+
describe('Subset Service Integration', () => {
|
|
231
|
+
test('should maintain data consistency across operations', async () => {
|
|
232
|
+
const subsetList = [
|
|
233
|
+
{ Name: 'Subset1' },
|
|
234
|
+
{ Name: 'Subset2' }
|
|
235
|
+
];
|
|
236
|
+
mockRestService.get.mockResolvedValue(createMockResponse({
|
|
237
|
+
value: subsetList
|
|
238
|
+
}));
|
|
239
|
+
const names1 = await subsetService.getAllNames('TestDimension', 'TestHierarchy');
|
|
240
|
+
const names2 = await subsetService.getAllNames('TestDimension', 'TestHierarchy');
|
|
241
|
+
expect(names1).toEqual(names2);
|
|
242
|
+
expect(names1).toEqual(['Subset1', 'Subset2']);
|
|
243
|
+
console.log('✅ Data consistency maintained');
|
|
244
|
+
});
|
|
245
|
+
test('should handle subset lifecycle operations', async () => {
|
|
246
|
+
const testSubset = new Subset_1.Subset('LifecycleSubset', 'TestDimension', 'TestHierarchy');
|
|
247
|
+
testSubset.expression = '{[Element1]}';
|
|
248
|
+
// Mock create
|
|
249
|
+
mockRestService.post.mockResolvedValue(createMockResponse({}, 201));
|
|
250
|
+
// Mock get (exists)
|
|
251
|
+
mockRestService.get.mockResolvedValue(createMockResponse({
|
|
252
|
+
Name: 'LifecycleSubset'
|
|
253
|
+
}));
|
|
254
|
+
// Mock update
|
|
255
|
+
mockRestService.patch.mockResolvedValue(createMockResponse({}, 200));
|
|
256
|
+
// Mock delete
|
|
257
|
+
mockRestService.delete.mockResolvedValue(createMockResponse({}, 204));
|
|
258
|
+
// Test lifecycle operations
|
|
259
|
+
const createResult = await subsetService.create('TestDimension', 'TestHierarchy', testSubset);
|
|
260
|
+
expect(createResult.status).toBe(201);
|
|
261
|
+
const exists = await subsetService.exists('TestDimension', 'TestHierarchy', 'LifecycleSubset');
|
|
262
|
+
expect(exists).toBe(true);
|
|
263
|
+
const updateResult = await subsetService.update('TestDimension', 'TestHierarchy', testSubset);
|
|
264
|
+
expect(updateResult.status).toBe(200);
|
|
265
|
+
const deleteResult = await subsetService.delete('TestDimension', 'TestHierarchy', 'LifecycleSubset');
|
|
266
|
+
expect(deleteResult.status).toBe(204);
|
|
267
|
+
console.log('✅ Subset lifecycle operations working');
|
|
268
|
+
});
|
|
269
|
+
});
|
|
270
|
+
});
|
|
271
|
+
//# sourceMappingURL=subsetService.test.js.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration interface for TM1 connection in tests
|
|
3
|
+
*/
|
|
4
|
+
export interface TM1TestConfig {
|
|
5
|
+
address: string;
|
|
6
|
+
port: number;
|
|
7
|
+
user: string;
|
|
8
|
+
password: string;
|
|
9
|
+
ssl: boolean;
|
|
10
|
+
namespace?: string;
|
|
11
|
+
gateway?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Load configuration from environment variables
|
|
15
|
+
* Throws error if required environment variables are not set
|
|
16
|
+
*/
|
|
17
|
+
export declare function loadTestConfig(): TM1TestConfig;
|
|
18
|
+
//# sourceMappingURL=testConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testConfig.d.ts","sourceRoot":"","sources":["../../src/tests/testConfig.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAcD;;;GAGG;AACH,wBAAgB,cAAc,IAAI,aAAa,CAkB9C"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadTestConfig = loadTestConfig;
|
|
4
|
+
const dotenv_1 = require("dotenv");
|
|
5
|
+
// Load environment variables from .env file
|
|
6
|
+
(0, dotenv_1.config)();
|
|
7
|
+
/**
|
|
8
|
+
* Default test configuration - all values should come from environment variables
|
|
9
|
+
* These are fallback values only and should not contain real credentials
|
|
10
|
+
*/
|
|
11
|
+
const defaultTestConfig = {
|
|
12
|
+
address: "localhost",
|
|
13
|
+
port: 8879,
|
|
14
|
+
user: "admin",
|
|
15
|
+
password: "", // No default password - must be set via environment
|
|
16
|
+
ssl: false
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Load configuration from environment variables
|
|
20
|
+
* Throws error if required environment variables are not set
|
|
21
|
+
*/
|
|
22
|
+
function loadTestConfig() {
|
|
23
|
+
// Check for required environment variables
|
|
24
|
+
if (!process.env.TM1_PASSWORD) {
|
|
25
|
+
throw new Error('TM1_PASSWORD environment variable is required. ' +
|
|
26
|
+
'Please set it in your .env file or environment.');
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
address: process.env.TM1_ADDRESS || defaultTestConfig.address,
|
|
30
|
+
port: parseInt(process.env.TM1_PORT || defaultTestConfig.port.toString()),
|
|
31
|
+
user: process.env.TM1_USER || defaultTestConfig.user,
|
|
32
|
+
password: process.env.TM1_PASSWORD, // Required from environment
|
|
33
|
+
ssl: process.env.TM1_SSL === 'true' || defaultTestConfig.ssl,
|
|
34
|
+
namespace: process.env.TM1_NAMESPACE,
|
|
35
|
+
gateway: process.env.TM1_GATEWAY
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=testConfig.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test utility decorators for Jest testing - equivalent to Python test decorators
|
|
3
|
+
*/
|
|
4
|
+
export declare function skipIfNoPandas(target: any, propertyName: string, descriptor: PropertyDescriptor): PropertyDescriptor;
|
|
5
|
+
export declare function skipIfVersionLowerThan(version: string): (target: any, propertyName: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
6
|
+
export declare function skipIfVersionHigherOrEqualThan(version: string): (target: any, propertyName: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
7
|
+
export declare function skipIfAuthNotBasic(target: any, propertyName: string, descriptor: PropertyDescriptor): PropertyDescriptor;
|
|
8
|
+
export declare function skipIfPaoc(target: any, propertyName: string, descriptor: PropertyDescriptor): PropertyDescriptor;
|
|
9
|
+
//# sourceMappingURL=testUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../src/tests/testUtils.ts"],"names":[],"mappings":"AAGA;;GAEG;AAEH,wBAAgB,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,sBAY/F;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,IAKjC,QAAQ,GAAG,EAAE,cAAc,MAAM,EAAE,YAAY,kBAAkB,wBAarF;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,IAKzC,QAAQ,GAAG,EAAE,cAAc,MAAM,EAAE,YAAY,kBAAkB,wBAarF;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,sBAenG;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,sBAe3F"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.skipIfNoPandas = skipIfNoPandas;
|
|
4
|
+
exports.skipIfVersionLowerThan = skipIfVersionLowerThan;
|
|
5
|
+
exports.skipIfVersionHigherOrEqualThan = skipIfVersionHigherOrEqualThan;
|
|
6
|
+
exports.skipIfAuthNotBasic = skipIfAuthNotBasic;
|
|
7
|
+
exports.skipIfPaoc = skipIfPaoc;
|
|
8
|
+
const RestService_1 = require("../services/RestService");
|
|
9
|
+
const Utils_1 = require("../utils/Utils");
|
|
10
|
+
/**
|
|
11
|
+
* Test utility decorators for Jest testing - equivalent to Python test decorators
|
|
12
|
+
*/
|
|
13
|
+
function skipIfNoPandas(target, propertyName, descriptor) {
|
|
14
|
+
/**
|
|
15
|
+
* Checks whether pandas equivalent exists and skips the test if not
|
|
16
|
+
* Note: In JavaScript/TypeScript, we don't have pandas, so this always skips
|
|
17
|
+
*/
|
|
18
|
+
const method = descriptor.value;
|
|
19
|
+
descriptor.value = function (...args) {
|
|
20
|
+
// In JavaScript environment, we don't have pandas equivalent
|
|
21
|
+
console.log(`Test '${propertyName}' requires pandas equivalent - skipping`);
|
|
22
|
+
return;
|
|
23
|
+
};
|
|
24
|
+
return descriptor;
|
|
25
|
+
}
|
|
26
|
+
function skipIfVersionLowerThan(version) {
|
|
27
|
+
/**
|
|
28
|
+
* Checks whether TM1 version is lower than a certain version and skips the test
|
|
29
|
+
* if this is the case. This function is useful if a test needs a minimum required version.
|
|
30
|
+
*/
|
|
31
|
+
return function (target, propertyName, descriptor) {
|
|
32
|
+
const method = descriptor.value;
|
|
33
|
+
descriptor.value = function (...args) {
|
|
34
|
+
// @ts-ignore - accessing tm1 from test context
|
|
35
|
+
if (!(0, Utils_1.verifyVersion)(version, this.tm1.version)) {
|
|
36
|
+
console.log(`Function '${propertyName}' requires TM1 server version >= '${version}' - skipping`);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
return method.apply(this, args);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
return descriptor;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
function skipIfVersionHigherOrEqualThan(version) {
|
|
47
|
+
/**
|
|
48
|
+
* Checks whether TM1 version is higher or equal than a certain version and skips the test
|
|
49
|
+
* if this is the case. This function is useful if a test should not run for higher versions.
|
|
50
|
+
*/
|
|
51
|
+
return function (target, propertyName, descriptor) {
|
|
52
|
+
const method = descriptor.value;
|
|
53
|
+
descriptor.value = function (...args) {
|
|
54
|
+
// @ts-ignore - accessing tm1 from test context
|
|
55
|
+
if ((0, Utils_1.verifyVersion)(version, this.tm1.version)) {
|
|
56
|
+
console.log(`Function '${propertyName}' requires TM1 server version < '${version}' - skipping`);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
return method.apply(this, args);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
return descriptor;
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function skipIfAuthNotBasic(target, propertyName, descriptor) {
|
|
67
|
+
/**
|
|
68
|
+
* Checks whether TM1 authentication is basic (user+password). Skip test if authentication is not basic
|
|
69
|
+
*/
|
|
70
|
+
const method = descriptor.value;
|
|
71
|
+
descriptor.value = function (...args) {
|
|
72
|
+
// @ts-ignore - accessing tm1 from test context
|
|
73
|
+
if (this.tm1.connection.authenticationMode !== RestService_1.AuthenticationMode.BASIC) {
|
|
74
|
+
console.log(`Function '${propertyName}' requires IntegratedSecurityMode1 (Basic) - skipping`);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
return method.apply(this, args);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
return descriptor;
|
|
82
|
+
}
|
|
83
|
+
function skipIfPaoc(target, propertyName, descriptor) {
|
|
84
|
+
/**
|
|
85
|
+
* Checks whether TM1 is deployed as Planning Analytics on Cloud (PAoC)
|
|
86
|
+
*/
|
|
87
|
+
const method = descriptor.value;
|
|
88
|
+
descriptor.value = function (...args) {
|
|
89
|
+
// @ts-ignore - accessing tm1 from test context
|
|
90
|
+
if (this.tm1.connection.baseUrl.includes("planning-analytics.ibmcloud.com/tm1/api")) {
|
|
91
|
+
console.log(`Function '${propertyName}' requires on prem TM1 instead of PAoC - skipping`);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
return method.apply(this, args);
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
return descriptor;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=testUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tm1Service.test.d.ts","sourceRoot":"","sources":["../../src/tests/tm1Service.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|