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,368 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CubeService Tests for tm1npm
|
|
4
|
+
* Comprehensive tests for TM1 Cube operations with proper mocking
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const CubeService_1 = require("../services/CubeService");
|
|
8
|
+
const Cube_1 = require("../objects/Cube");
|
|
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('CubeService Tests', () => {
|
|
19
|
+
let cubeService;
|
|
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
|
+
cubeService = new CubeService_1.CubeService(mockRestService);
|
|
35
|
+
});
|
|
36
|
+
describe('Cube Retrieval Operations', () => {
|
|
37
|
+
test('should get all cube names', async () => {
|
|
38
|
+
mockRestService.get.mockResolvedValue(createMockResponse({
|
|
39
|
+
value: [
|
|
40
|
+
{ Name: 'SalesCube', Dimensions: [{ Name: 'Time' }, { Name: 'Account' }] },
|
|
41
|
+
{ Name: 'BudgetCube', Dimensions: [{ Name: 'Time' }, { Name: 'Version' }] },
|
|
42
|
+
{ Name: 'ActualsCube', Dimensions: [{ Name: 'Time' }, { Name: 'Product' }] }
|
|
43
|
+
]
|
|
44
|
+
}));
|
|
45
|
+
const cubes = await cubeService.getAll();
|
|
46
|
+
expect(Array.isArray(cubes)).toBe(true);
|
|
47
|
+
expect(cubes.length).toBe(3);
|
|
48
|
+
expect(cubes[0].name).toBe('SalesCube');
|
|
49
|
+
expect(cubes[1].name).toBe('BudgetCube');
|
|
50
|
+
expect(cubes[2].name).toBe('ActualsCube');
|
|
51
|
+
expect(mockRestService.get).toHaveBeenCalledWith("/Cubes?$expand=Dimensions($select=Name)");
|
|
52
|
+
console.log('✅ Cube names retrieved successfully');
|
|
53
|
+
});
|
|
54
|
+
test('should get all cubes with skip control cubes', async () => {
|
|
55
|
+
mockRestService.get.mockResolvedValue(createMockResponse({
|
|
56
|
+
value: [
|
|
57
|
+
{ Name: 'SalesCube', Dimensions: [{ Name: 'Time' }, { Name: 'Account' }] },
|
|
58
|
+
{ Name: 'BudgetCube', Dimensions: [{ Name: 'Time' }, { Name: 'Version' }] }
|
|
59
|
+
]
|
|
60
|
+
}));
|
|
61
|
+
const cubes = await cubeService.getModelCubes(); // skip control cubes
|
|
62
|
+
expect(Array.isArray(cubes)).toBe(true);
|
|
63
|
+
expect(cubes.length).toBe(2);
|
|
64
|
+
expect(cubes[0].name).toBe('SalesCube');
|
|
65
|
+
expect(cubes[1].name).toBe('BudgetCube');
|
|
66
|
+
expect(mockRestService.get).toHaveBeenCalledWith("/ModelCubes()?$expand=Dimensions($select=Name)");
|
|
67
|
+
console.log('✅ Model cubes retrieved successfully');
|
|
68
|
+
});
|
|
69
|
+
test('should get a specific cube if it exists', async () => {
|
|
70
|
+
mockRestService.get.mockResolvedValueOnce(createMockResponse({
|
|
71
|
+
value: [{
|
|
72
|
+
Name: 'SalesCube',
|
|
73
|
+
Dimensions: [{ Name: 'Time' }, { Name: 'Product' }, { Name: 'Measure' }]
|
|
74
|
+
}]
|
|
75
|
+
}));
|
|
76
|
+
mockRestService.get.mockResolvedValueOnce(createMockResponse({
|
|
77
|
+
Name: 'SalesCube',
|
|
78
|
+
Dimensions: [{ Name: 'Time' }, { Name: 'Product' }, { Name: 'Measure' }]
|
|
79
|
+
}));
|
|
80
|
+
const cubes = await cubeService.getAll();
|
|
81
|
+
expect(cubes.length).toBe(1);
|
|
82
|
+
const cube = await cubeService.get('SalesCube');
|
|
83
|
+
expect(cube).toBeDefined();
|
|
84
|
+
expect(cube.name).toBe('SalesCube');
|
|
85
|
+
expect(cube.dimensions.length).toBe(3);
|
|
86
|
+
console.log('✅ Specific cube retrieved successfully');
|
|
87
|
+
});
|
|
88
|
+
test('should check if a cube exists', async () => {
|
|
89
|
+
// Test existing cube by trying to get it
|
|
90
|
+
mockRestService.get.mockResolvedValue(createMockResponse({
|
|
91
|
+
Name: 'SalesCube',
|
|
92
|
+
Dimensions: [{ Name: 'Time' }, { Name: 'Account' }]
|
|
93
|
+
}));
|
|
94
|
+
try {
|
|
95
|
+
const cube = await cubeService.get('SalesCube');
|
|
96
|
+
expect(cube).toBeDefined();
|
|
97
|
+
expect(cube.name).toBe('SalesCube');
|
|
98
|
+
console.log('✅ Cube existence check working via get method');
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
fail('Cube should exist');
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
test('should check if a cube does not exist', async () => {
|
|
105
|
+
// Test non-existing cube by checking for 404 error
|
|
106
|
+
const mockError = new TM1Exception_1.TM1RestException('Cube not found', 404, { status: 404 });
|
|
107
|
+
mockRestService.get.mockRejectedValue(mockError);
|
|
108
|
+
try {
|
|
109
|
+
await cubeService.get('NonExistentCube');
|
|
110
|
+
fail('Should have thrown an error for non-existent cube');
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
expect(error).toBeInstanceOf(TM1Exception_1.TM1RestException);
|
|
114
|
+
expect(error.status).toBe(404);
|
|
115
|
+
console.log('✅ Cube non-existence check working via error handling');
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
describe('Cube Dimension Operations', () => {
|
|
120
|
+
test('should get dimensions for existing cubes', async () => {
|
|
121
|
+
mockRestService.get.mockResolvedValue(createMockResponse({
|
|
122
|
+
value: [
|
|
123
|
+
{
|
|
124
|
+
Name: 'SalesCube',
|
|
125
|
+
Dimensions: [
|
|
126
|
+
{ Name: 'Time' },
|
|
127
|
+
{ Name: 'Product' },
|
|
128
|
+
{ Name: 'Measure' }
|
|
129
|
+
]
|
|
130
|
+
}
|
|
131
|
+
]
|
|
132
|
+
}));
|
|
133
|
+
const cubes = await cubeService.getModelCubes();
|
|
134
|
+
expect(cubes[0].dimensions).toBeDefined();
|
|
135
|
+
expect(cubes[0].dimensions.length).toBe(3);
|
|
136
|
+
expect(cubes[0].dimensions[0]).toBe('Time');
|
|
137
|
+
console.log('✅ Cube dimensions retrieved successfully');
|
|
138
|
+
});
|
|
139
|
+
test('should get dimension names for cube', async () => {
|
|
140
|
+
mockRestService.get.mockResolvedValue(createMockResponse({
|
|
141
|
+
Name: 'SalesCube',
|
|
142
|
+
Dimensions: [
|
|
143
|
+
{ Name: 'Time' },
|
|
144
|
+
{ Name: 'Product' },
|
|
145
|
+
{ Name: 'Account' },
|
|
146
|
+
{ Name: 'Measure' }
|
|
147
|
+
]
|
|
148
|
+
}));
|
|
149
|
+
const cube = await cubeService.get('SalesCube');
|
|
150
|
+
expect(cube.dimensions.includes('Time')).toBe(true);
|
|
151
|
+
expect(cube.dimensions.includes('Product')).toBe(true);
|
|
152
|
+
expect(cube.dimensions.includes('Account')).toBe(true);
|
|
153
|
+
expect(cube.dimensions.includes('Measure')).toBe(true);
|
|
154
|
+
console.log('✅ Dimension names for cube working');
|
|
155
|
+
});
|
|
156
|
+
test('should get measure dimension for cube', async () => {
|
|
157
|
+
mockRestService.get.mockResolvedValue(createMockResponse({
|
|
158
|
+
Name: 'SalesCube',
|
|
159
|
+
Dimensions: [
|
|
160
|
+
{ Name: 'Time' },
|
|
161
|
+
{ Name: 'Product' },
|
|
162
|
+
{ Name: 'Measure' }
|
|
163
|
+
]
|
|
164
|
+
}));
|
|
165
|
+
const measureDimension = await cubeService.getMeasureDimension('SalesCube');
|
|
166
|
+
expect(measureDimension).toBe('Measure');
|
|
167
|
+
console.log('✅ Measure dimension retrieval working');
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
describe('Cube Data Operations', () => {
|
|
171
|
+
test('should handle cube cell operations', async () => {
|
|
172
|
+
// Mock cube retrieval for context
|
|
173
|
+
mockRestService.get.mockResolvedValue(createMockResponse({
|
|
174
|
+
Name: 'SalesCube',
|
|
175
|
+
Dimensions: [{ Name: 'Time' }, { Name: 'Account' }, { Name: 'Measure' }]
|
|
176
|
+
}));
|
|
177
|
+
const cube = await cubeService.get('SalesCube');
|
|
178
|
+
expect(cube.name).toBe('SalesCube');
|
|
179
|
+
expect(cube.dimensions.length).toBe(3);
|
|
180
|
+
// CellService operations would be tested separately
|
|
181
|
+
console.log('✅ Cube cell operations context working');
|
|
182
|
+
});
|
|
183
|
+
test('should get cube size information', async () => {
|
|
184
|
+
// Mock cube count
|
|
185
|
+
mockRestService.get.mockResolvedValue(createMockResponse('25'));
|
|
186
|
+
const cubeCount = await cubeService.getNumberOfCubes();
|
|
187
|
+
expect(typeof cubeCount).toBe('number');
|
|
188
|
+
expect(cubeCount).toBe(25);
|
|
189
|
+
console.log('✅ Cube size information working');
|
|
190
|
+
});
|
|
191
|
+
test('should get model cubes count', async () => {
|
|
192
|
+
// Mock model cubes count
|
|
193
|
+
mockRestService.get.mockResolvedValue(createMockResponse({
|
|
194
|
+
'@odata.count': '15'
|
|
195
|
+
}));
|
|
196
|
+
const modelCubeCount = await cubeService.getNumberOfCubes(true);
|
|
197
|
+
expect(typeof modelCubeCount).toBe('number');
|
|
198
|
+
expect(modelCubeCount).toBe(15);
|
|
199
|
+
console.log('✅ Model cubes count working');
|
|
200
|
+
});
|
|
201
|
+
});
|
|
202
|
+
describe('Cube Rule Operations', () => {
|
|
203
|
+
test('should handle cube rules retrieval', async () => {
|
|
204
|
+
// Mock cube with rules context
|
|
205
|
+
mockRestService.get.mockResolvedValue(createMockResponse({
|
|
206
|
+
Name: 'SalesCube',
|
|
207
|
+
Dimensions: [{ Name: 'Time' }, { Name: 'Account' }, { Name: 'Measure' }]
|
|
208
|
+
}));
|
|
209
|
+
const cube = await cubeService.get('SalesCube');
|
|
210
|
+
expect(cube.name).toBe('SalesCube');
|
|
211
|
+
expect(cube.hasRules).toBeDefined(); // Rules are handled by the Cube object
|
|
212
|
+
console.log('✅ Cube rules context working');
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
describe('Cube Error Handling', () => {
|
|
216
|
+
test('should handle invalid cube names gracefully', async () => {
|
|
217
|
+
mockRestService.get.mockRejectedValue({
|
|
218
|
+
response: { status: 400, statusText: 'Bad Request' }
|
|
219
|
+
});
|
|
220
|
+
await expect(cubeService.get('')).rejects.toMatchObject({
|
|
221
|
+
response: { status: 400 }
|
|
222
|
+
});
|
|
223
|
+
console.log('✅ Invalid cube names handled gracefully');
|
|
224
|
+
});
|
|
225
|
+
test('should handle network errors gracefully', async () => {
|
|
226
|
+
mockRestService.get.mockRejectedValue({
|
|
227
|
+
code: 'ECONNREFUSED'
|
|
228
|
+
});
|
|
229
|
+
await expect(cubeService.getAll()).rejects.toMatchObject({
|
|
230
|
+
code: 'ECONNREFUSED'
|
|
231
|
+
});
|
|
232
|
+
console.log('✅ Network errors handled gracefully');
|
|
233
|
+
});
|
|
234
|
+
test('should handle authentication errors', async () => {
|
|
235
|
+
mockRestService.get.mockRejectedValue({
|
|
236
|
+
response: { status: 401, statusText: 'Unauthorized' }
|
|
237
|
+
});
|
|
238
|
+
await expect(cubeService.getAll()).rejects.toMatchObject({
|
|
239
|
+
response: { status: 401 }
|
|
240
|
+
});
|
|
241
|
+
console.log('✅ Authentication errors handled gracefully');
|
|
242
|
+
});
|
|
243
|
+
});
|
|
244
|
+
describe('Cube Service Edge Cases', () => {
|
|
245
|
+
test('should handle empty cube lists', async () => {
|
|
246
|
+
mockRestService.get.mockResolvedValue(createMockResponse({
|
|
247
|
+
value: []
|
|
248
|
+
}));
|
|
249
|
+
const cubes = await cubeService.getAll();
|
|
250
|
+
expect(Array.isArray(cubes)).toBe(true);
|
|
251
|
+
expect(cubes.length).toBe(0);
|
|
252
|
+
console.log('✅ Empty cube lists handled correctly');
|
|
253
|
+
});
|
|
254
|
+
test('should handle concurrent cube operations', async () => {
|
|
255
|
+
mockRestService.get.mockResolvedValue(createMockResponse({
|
|
256
|
+
value: [{ Name: 'TestCube', Dimensions: [{ Name: 'Time' }] }]
|
|
257
|
+
}));
|
|
258
|
+
const operations = [
|
|
259
|
+
cubeService.getAll(),
|
|
260
|
+
cubeService.getAll(),
|
|
261
|
+
cubeService.getAll()
|
|
262
|
+
];
|
|
263
|
+
const results = await Promise.allSettled(operations);
|
|
264
|
+
const successful = results.filter(r => r.status === 'fulfilled');
|
|
265
|
+
expect(successful.length).toBe(3);
|
|
266
|
+
console.log('✅ Concurrent operations handled successfully');
|
|
267
|
+
});
|
|
268
|
+
test('should handle large cube lists efficiently', async () => {
|
|
269
|
+
const largeCubeList = Array(1000).fill(null).map((_, i) => ({
|
|
270
|
+
Name: `Cube${i}`,
|
|
271
|
+
Dimensions: [{ Name: 'Time' }, { Name: 'Account' }]
|
|
272
|
+
}));
|
|
273
|
+
mockRestService.get.mockResolvedValue(createMockResponse({
|
|
274
|
+
value: largeCubeList
|
|
275
|
+
}));
|
|
276
|
+
const startTime = Date.now();
|
|
277
|
+
const cubes = await cubeService.getAll();
|
|
278
|
+
const endTime = Date.now();
|
|
279
|
+
expect(cubes.length).toBe(1000);
|
|
280
|
+
expect(endTime - startTime).toBeLessThan(1000); // Should be fast with mocking
|
|
281
|
+
console.log('✅ Large cube lists handled efficiently');
|
|
282
|
+
});
|
|
283
|
+
});
|
|
284
|
+
describe('Cube Service Integration', () => {
|
|
285
|
+
test('should maintain consistent data across operations', async () => {
|
|
286
|
+
const cubeData = {
|
|
287
|
+
value: [
|
|
288
|
+
{ Name: 'SalesCube', Dimensions: [{ Name: 'Time' }] },
|
|
289
|
+
{ Name: 'BudgetCube', Dimensions: [{ Name: 'Version' }] }
|
|
290
|
+
]
|
|
291
|
+
};
|
|
292
|
+
mockRestService.get.mockResolvedValue(createMockResponse(cubeData));
|
|
293
|
+
const cubes1 = await cubeService.getAll();
|
|
294
|
+
const cubes2 = await cubeService.getAll();
|
|
295
|
+
expect(cubes1.length).toEqual(cubes2.length);
|
|
296
|
+
expect(cubes1[0].name).toEqual(cubes2[0].name);
|
|
297
|
+
expect(cubes1[1].name).toEqual(cubes2[1].name);
|
|
298
|
+
console.log('✅ Data consistency maintained across operations');
|
|
299
|
+
});
|
|
300
|
+
test('should handle cube dimension consistency', async () => {
|
|
301
|
+
const salesCube = {
|
|
302
|
+
Name: 'SalesCube',
|
|
303
|
+
Dimensions: [
|
|
304
|
+
{ Name: 'Time' },
|
|
305
|
+
{ Name: 'Product' },
|
|
306
|
+
{ Name: 'Measure' }
|
|
307
|
+
]
|
|
308
|
+
};
|
|
309
|
+
mockRestService.get.mockResolvedValueOnce(createMockResponse({
|
|
310
|
+
value: [{
|
|
311
|
+
Name: 'SalesCube',
|
|
312
|
+
Dimensions: [
|
|
313
|
+
{ Name: 'Time' },
|
|
314
|
+
{ Name: 'Product' },
|
|
315
|
+
{ Name: 'Measure' }
|
|
316
|
+
]
|
|
317
|
+
}]
|
|
318
|
+
}));
|
|
319
|
+
mockRestService.get.mockResolvedValueOnce(createMockResponse(salesCube));
|
|
320
|
+
const cubes = await cubeService.getModelCubes();
|
|
321
|
+
expect(cubes.length).toBe(1);
|
|
322
|
+
const cube = await cubeService.get('SalesCube');
|
|
323
|
+
expect(cube.dimensions.length).toBe(3);
|
|
324
|
+
expect(cube.dimensions[2]).toBe('Measure'); // Last dimension is measure
|
|
325
|
+
console.log('✅ Cube dimension consistency maintained');
|
|
326
|
+
});
|
|
327
|
+
});
|
|
328
|
+
describe('Cube View Operations', () => {
|
|
329
|
+
test('should handle cube view operations', async () => {
|
|
330
|
+
// Mock cube context for view operations
|
|
331
|
+
mockRestService.get.mockResolvedValue(createMockResponse({
|
|
332
|
+
value: [{
|
|
333
|
+
Name: 'SalesCube',
|
|
334
|
+
Dimensions: [
|
|
335
|
+
{ Name: 'Time' },
|
|
336
|
+
{ Name: 'Product' },
|
|
337
|
+
{ Name: 'Measure' }
|
|
338
|
+
]
|
|
339
|
+
}]
|
|
340
|
+
}));
|
|
341
|
+
const cubes = await cubeService.getModelCubes();
|
|
342
|
+
expect(cubes[0].name).toBe('SalesCube');
|
|
343
|
+
expect(cubes[0].dimensions.length).toBe(3);
|
|
344
|
+
// ViewService operations would be tested separately through cubeService.views
|
|
345
|
+
expect(cubeService.views).toBeDefined();
|
|
346
|
+
console.log('✅ Cube view operations context working');
|
|
347
|
+
});
|
|
348
|
+
});
|
|
349
|
+
describe('Cube CRUD Operations', () => {
|
|
350
|
+
test('should handle cube creation lifecycle', async () => {
|
|
351
|
+
const testCube = new Cube_1.Cube('TestCube', ['Time', 'Account', 'Measure']);
|
|
352
|
+
// Mock cube creation
|
|
353
|
+
mockRestService.post.mockResolvedValue(createMockResponse({}, 201));
|
|
354
|
+
const createResult = await cubeService.create(testCube);
|
|
355
|
+
expect(createResult.status).toBe(201);
|
|
356
|
+
// Mock cube retrieval after creation to verify it exists
|
|
357
|
+
mockRestService.get.mockResolvedValueOnce(createMockResponse({
|
|
358
|
+
Name: 'TestCube',
|
|
359
|
+
Dimensions: [{ Name: 'Time' }, { Name: 'Account' }, { Name: 'Measure' }]
|
|
360
|
+
}));
|
|
361
|
+
const retrievedCube = await cubeService.get('TestCube');
|
|
362
|
+
expect(retrievedCube.name).toBe('TestCube');
|
|
363
|
+
expect(retrievedCube.dimensions.length).toBe(3);
|
|
364
|
+
console.log('✅ Cube creation lifecycle handled successfully');
|
|
365
|
+
});
|
|
366
|
+
});
|
|
367
|
+
});
|
|
368
|
+
//# sourceMappingURL=cubeService.test.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Comprehensive DimensionService Tests
|
|
3
|
+
* Target: Achieve 80%+ coverage for DimensionService (currently 45%)
|
|
4
|
+
* Testing all dimension operations including CRUD, hierarchy management, and service integration
|
|
5
|
+
*/
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=dimensionService.comprehensive.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dimensionService.comprehensive.test.d.ts","sourceRoot":"","sources":["../../src/tests/dimensionService.comprehensive.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|