@eclipse-che/che-e2e 7.68.0-dev-e7cb474 → 7.69.0-dev-ac76de0

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.
Files changed (120) hide show
  1. package/index.ts +5 -5
  2. package/package.json +2 -2
  3. package/dist/configs/inversify.config.js +0 -70
  4. package/dist/configs/inversify.config.js.map +0 -1
  5. package/dist/configs/inversify.types.js +0 -45
  6. package/dist/configs/inversify.types.js.map +0 -1
  7. package/dist/configs/mocharc.js +0 -27
  8. package/dist/configs/mocharc.js.map +0 -1
  9. package/dist/constants/TestConstants.js +0 -206
  10. package/dist/constants/TestConstants.js.map +0 -1
  11. package/dist/constants/TimeoutConstants.js +0 -184
  12. package/dist/constants/TimeoutConstants.js.map +0 -1
  13. package/dist/driver/ChromeDriver.js +0 -79
  14. package/dist/driver/ChromeDriver.js.map +0 -1
  15. package/dist/driver/IDriver.js +0 -3
  16. package/dist/driver/IDriver.js.map +0 -1
  17. package/dist/index.js +0 -69
  18. package/dist/index.js.map +0 -1
  19. package/dist/pageobjects/dashboard/CreateWorkspace.js +0 -98
  20. package/dist/pageobjects/dashboard/CreateWorkspace.js.map +0 -1
  21. package/dist/pageobjects/dashboard/Dashboard.js +0 -135
  22. package/dist/pageobjects/dashboard/Dashboard.js.map +0 -1
  23. package/dist/pageobjects/dashboard/Workspaces.js +0 -184
  24. package/dist/pageobjects/dashboard/Workspaces.js.map +0 -1
  25. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js +0 -140
  26. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js.map +0 -1
  27. package/dist/pageobjects/git-providers/OauthPage.js +0 -150
  28. package/dist/pageobjects/git-providers/OauthPage.js.map +0 -1
  29. package/dist/pageobjects/ide/CheCodeLocatorLoader.js +0 -70
  30. package/dist/pageobjects/ide/CheCodeLocatorLoader.js.map +0 -1
  31. package/dist/pageobjects/login/ICheLoginPage.js +0 -12
  32. package/dist/pageobjects/login/ICheLoginPage.js.map +0 -1
  33. package/dist/pageobjects/login/IOcpLoginPage.js +0 -12
  34. package/dist/pageobjects/login/IOcpLoginPage.js.map +0 -1
  35. package/dist/pageobjects/login/OcpRedHatLoginPage.js +0 -67
  36. package/dist/pageobjects/login/OcpRedHatLoginPage.js.map +0 -1
  37. package/dist/pageobjects/login/OcpUserLoginPage.js +0 -53
  38. package/dist/pageobjects/login/OcpUserLoginPage.js.map +0 -1
  39. package/dist/pageobjects/login/RedHatLoginPage.js +0 -77
  40. package/dist/pageobjects/login/RedHatLoginPage.js.map +0 -1
  41. package/dist/pageobjects/login/RegularUserOcpCheLoginPage.js +0 -68
  42. package/dist/pageobjects/login/RegularUserOcpCheLoginPage.js.map +0 -1
  43. package/dist/pageobjects/openshift/CheLoginPage.js +0 -55
  44. package/dist/pageobjects/openshift/CheLoginPage.js.map +0 -1
  45. package/dist/pageobjects/openshift/OcpApplicationPage.js +0 -60
  46. package/dist/pageobjects/openshift/OcpApplicationPage.js.map +0 -1
  47. package/dist/pageobjects/openshift/OcpImportFromGitPage.js +0 -91
  48. package/dist/pageobjects/openshift/OcpImportFromGitPage.js.map +0 -1
  49. package/dist/pageobjects/openshift/OcpLoginPage.js +0 -92
  50. package/dist/pageobjects/openshift/OcpLoginPage.js.map +0 -1
  51. package/dist/pageobjects/openshift/OcpMainPage.js +0 -108
  52. package/dist/pageobjects/openshift/OcpMainPage.js.map +0 -1
  53. package/dist/specs/MochaHooks.js +0 -89
  54. package/dist/specs/MochaHooks.js.map +0 -1
  55. package/dist/specs/SmokeTest.spec.js +0 -49
  56. package/dist/specs/SmokeTest.spec.js.map +0 -1
  57. package/dist/specs/api/ContainerOverridesAPI.spec.js +0 -37
  58. package/dist/specs/api/ContainerOverridesAPI.spec.js.map +0 -1
  59. package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js +0 -93
  60. package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js.map +0 -1
  61. package/dist/specs/api/EmptyWorkspaceAPI.spec.js +0 -61
  62. package/dist/specs/api/EmptyWorkspaceAPI.spec.js.map +0 -1
  63. package/dist/specs/api/PodOverridesAPI.spec.js +0 -43
  64. package/dist/specs/api/PodOverridesAPI.spec.js.map +0 -1
  65. package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js +0 -48
  66. package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js.map +0 -1
  67. package/dist/specs/dashboard-samples/Quarkus.spec.js +0 -50
  68. package/dist/specs/dashboard-samples/Quarkus.spec.js.map +0 -1
  69. package/dist/specs/dashboard-samples/RecomendedExtentions.spec.js +0 -161
  70. package/dist/specs/dashboard-samples/RecomendedExtentions.spec.js.map +0 -1
  71. package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js +0 -75
  72. package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js.map +0 -1
  73. package/dist/specs/factory/Factory.spec.js +0 -160
  74. package/dist/specs/factory/Factory.spec.js.map +0 -1
  75. package/dist/specs/factory/NoSetupRepoFactory.spec.js +0 -228
  76. package/dist/specs/factory/NoSetupRepoFactory.spec.js.map +0 -1
  77. package/dist/specs/factory/RefusedOAuthFactory.spec.js +0 -220
  78. package/dist/specs/factory/RefusedOAuthFactory.spec.js.map +0 -1
  79. package/dist/specs/miscellaneous/PredefinedNamespace.spec.js +0 -66
  80. package/dist/specs/miscellaneous/PredefinedNamespace.spec.js.map +0 -1
  81. package/dist/tests-library/LoginTests.js +0 -70
  82. package/dist/tests-library/LoginTests.js.map +0 -1
  83. package/dist/tests-library/ProjectAndFileTests.js +0 -56
  84. package/dist/tests-library/ProjectAndFileTests.js.map +0 -1
  85. package/dist/tests-library/WorkspaceHandlingTests.js +0 -160
  86. package/dist/tests-library/WorkspaceHandlingTests.js.map +0 -1
  87. package/dist/utils/BrowserTabsUtil.js +0 -111
  88. package/dist/utils/BrowserTabsUtil.js.map +0 -1
  89. package/dist/utils/CheReporter.js +0 -172
  90. package/dist/utils/CheReporter.js.map +0 -1
  91. package/dist/utils/DevWorkspaceConfigurationHelper.js +0 -72
  92. package/dist/utils/DevWorkspaceConfigurationHelper.js.map +0 -1
  93. package/dist/utils/DevfilesRegistryHelper.js +0 -82
  94. package/dist/utils/DevfilesRegistryHelper.js.map +0 -1
  95. package/dist/utils/DriverHelper.js +0 -591
  96. package/dist/utils/DriverHelper.js.map +0 -1
  97. package/dist/utils/KubernetesCommandLineToolsExecutor.js +0 -173
  98. package/dist/utils/KubernetesCommandLineToolsExecutor.js.map +0 -1
  99. package/dist/utils/Logger.js +0 -89
  100. package/dist/utils/Logger.js.map +0 -1
  101. package/dist/utils/ScreenCatcher.js +0 -104
  102. package/dist/utils/ScreenCatcher.js.map +0 -1
  103. package/dist/utils/ShellExecutor.js +0 -18
  104. package/dist/utils/ShellExecutor.js.map +0 -1
  105. package/dist/utils/StringUtil.js +0 -54
  106. package/dist/utils/StringUtil.js.map +0 -1
  107. package/dist/utils/request-handlers/CheApiRequestHandler.js +0 -126
  108. package/dist/utils/request-handlers/CheApiRequestHandler.js.map +0 -1
  109. package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js +0 -49
  110. package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js.map +0 -1
  111. package/dist/utils/request-handlers/headers/IAuthorizationHeaderHandler.js +0 -12
  112. package/dist/utils/request-handlers/headers/IAuthorizationHeaderHandler.js.map +0 -1
  113. package/dist/utils/workspace/ApiUrlResolver.js +0 -64
  114. package/dist/utils/workspace/ApiUrlResolver.js.map +0 -1
  115. package/dist/utils/workspace/ITestWorkspaceUtil.js +0 -12
  116. package/dist/utils/workspace/ITestWorkspaceUtil.js.map +0 -1
  117. package/dist/utils/workspace/TestWorkspaceUtil.js +0 -167
  118. package/dist/utils/workspace/TestWorkspaceUtil.js.map +0 -1
  119. package/dist/utils/workspace/WorkspaceStatus.js +0 -19
  120. package/dist/utils/workspace/WorkspaceStatus.js.map +0 -1
@@ -1,173 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.KubernetesCommandLineToolsExecutor = void 0;
23
- const shelljs_1 = require("shelljs");
24
- const TestConstants_1 = require("../constants/TestConstants");
25
- const Logger_1 = require("./Logger");
26
- const ShellExecutor_1 = require("./ShellExecutor");
27
- const path = __importStar(require("path"));
28
- class KubernetesCommandLineToolsExecutor extends ShellExecutor_1.ShellExecutor {
29
- constructor(_workspaceName, _namespace) {
30
- super();
31
- this.KUBERNETES_COMMAND_LINE_TOOL = TestConstants_1.TestConstants.TS_API_TEST_KUBERNETES_COMMAND_LINE_TOOL;
32
- this.workspaceName = _workspaceName;
33
- this.namespace = this.setNamespace(_namespace);
34
- }
35
- get getWorkspaceName() {
36
- return this.workspaceName;
37
- }
38
- get getNamespace() {
39
- return this.namespace;
40
- }
41
- // login to Openshift cluster with username and password
42
- loginToOcp() {
43
- if (this.KUBERNETES_COMMAND_LINE_TOOL === TestConstants_1.KubernetesCommandLineTool.OC) {
44
- Logger_1.Logger.debug(`${this.getLoggingName(this.loginToOcp.name)}: Login to the "OC" client.`);
45
- const url = this.getServerUrl();
46
- if (this.isUserLoggedIn()) {
47
- Logger_1.Logger.debug(`${this.getLoggingName(this.loginToOcp.name)}: User already logged`);
48
- }
49
- else {
50
- Logger_1.Logger.debug(`${this.getLoggingName(this.loginToOcp.name)}: Login ${url}, ${TestConstants_1.TestConstants.TS_SELENIUM_OCP_USERNAME}`);
51
- shelljs_1.exec(`oc login --server=${url} -u=${TestConstants_1.TestConstants.TS_SELENIUM_OCP_USERNAME} -p=${TestConstants_1.TestConstants.TS_SELENIUM_OCP_PASSWORD} --insecure-skip-tls-verify`);
52
- }
53
- }
54
- else {
55
- Logger_1.Logger.debug(`${this.getLoggingName(this.loginToOcp.name)}: doesn't support login command`);
56
- }
57
- }
58
- getContainerName() {
59
- Logger_1.Logger.debug(`${this.getLoggingName(this.getContainerName.name)}: Get container name.`);
60
- const output = ShellExecutor_1.ShellExecutor.execWithLog(`${(this.KUBERNETES_COMMAND_LINE_TOOL)} get ${(KubernetesCommandLineToolsExecutor.pod)} -o jsonpath='{.spec.containers[*].name}' -n ${this.namespace}`);
61
- shelljs_1.echo('\n');
62
- return output.stderr ? output.stderr : output.stdout;
63
- }
64
- getWorkspacePodName() {
65
- Logger_1.Logger.debug(`${this.getLoggingName(this.getWorkspacePodName.name)}: Get workspace pod name.`);
66
- const output = ShellExecutor_1.ShellExecutor.execWithLog(`${(this.KUBERNETES_COMMAND_LINE_TOOL)} get pod -l controller.devfile.io/devworkspace_name=${this.workspaceName} -n ${this.namespace} -o name`);
67
- return output.stderr ? output.stderr : output.stdout.replace('\n', '');
68
- }
69
- deleteDevWorkspace() {
70
- Logger_1.Logger.debug(`${this.getLoggingName(this.deleteDevWorkspace.name)}: Delete '${this.workspaceName}' workspace`);
71
- ShellExecutor_1.ShellExecutor.execWithLog(`${(this.KUBERNETES_COMMAND_LINE_TOOL)} patch dw ${this.workspaceName} -n ${this.namespace} -p '{ "metadata": { "finalizers": null }}' --type merge || true`);
72
- ShellExecutor_1.ShellExecutor.execWithLog(`${(this.KUBERNETES_COMMAND_LINE_TOOL)} delete dw ${this.workspaceName} -n ${this.namespace} || true`);
73
- ShellExecutor_1.ShellExecutor.execWithLog(`${(this.KUBERNETES_COMMAND_LINE_TOOL)} delete dwt ${TestConstants_1.TestConstants.TS_SELENIUM_EDITOR}-${this.workspaceName} -n ${this.namespace} || true`);
74
- }
75
- applyAndWaitDevWorkspace(yamlConfiguration) {
76
- if (this.KUBERNETES_COMMAND_LINE_TOOL === TestConstants_1.KubernetesCommandLineTool.KUBECTL) {
77
- this.createNamespace();
78
- }
79
- this.applyYamlConfigurationAsStringOutput(yamlConfiguration);
80
- return this.waitDevWorkspace();
81
- }
82
- executeCommand(commandToExecute, container = KubernetesCommandLineToolsExecutor.container) {
83
- Logger_1.Logger.debug(`${this.getLoggingName(this.executeCommand.name)}:`);
84
- return ShellExecutor_1.ShellExecutor.execWithLog(`${(this.KUBERNETES_COMMAND_LINE_TOOL)} exec -i ${KubernetesCommandLineToolsExecutor.pod} -n ${this.namespace} -c ${container} -- sh -c '${commandToExecute}'`);
85
- }
86
- applyYamlConfigurationAsStringOutput(yamlConfiguration) {
87
- Logger_1.Logger.debug(`${this.getLoggingName(this.applyYamlConfigurationAsStringOutput.name)}:`);
88
- return ShellExecutor_1.ShellExecutor.execWithLog(`cat <<EOF | ${this.KUBERNETES_COMMAND_LINE_TOOL} apply -n ${this.namespace} -f - \n` +
89
- yamlConfiguration + '\n' +
90
- 'EOF');
91
- }
92
- applyYamlConfigurationAsFile(pathToFile) {
93
- Logger_1.Logger.debug(`${this.getLoggingName(this.applyYamlConfigurationAsFile.name)}:`);
94
- ShellExecutor_1.ShellExecutor.execWithLog(`${this.KUBERNETES_COMMAND_LINE_TOOL} apply -n ${this.namespace} -f "${path.resolve(pathToFile)}"`);
95
- }
96
- getDevWorkspaceYamlConfiguration() {
97
- Logger_1.Logger.debug(`${this.getLoggingName(this.getDevWorkspaceYamlConfiguration.name)}:`);
98
- return ShellExecutor_1.ShellExecutor.execWithLog(`${this.KUBERNETES_COMMAND_LINE_TOOL} get dw ${this.workspaceName} -n ${this.namespace} -o yaml`);
99
- }
100
- waitDevWorkspace(timeout = 360) {
101
- Logger_1.Logger.debug(`${this.getLoggingName(this.waitDevWorkspace.name)}: Wait till workspace ready.`);
102
- const output = ShellExecutor_1.ShellExecutor.execWithLog(`${(this.KUBERNETES_COMMAND_LINE_TOOL)} wait -n ${this.namespace} --for=condition=Ready dw ${this.workspaceName} --timeout=${timeout}s`);
103
- this.getPodAndContainerNames();
104
- return output;
105
- }
106
- createNamespace() {
107
- Logger_1.Logger.debug(`${this.getLoggingName(this.createNamespace.name)}: Create namespace "${this.namespace}".`);
108
- ShellExecutor_1.ShellExecutor.execWithLog(`${this.KUBERNETES_COMMAND_LINE_TOOL} create namespace ${this.namespace}`);
109
- }
110
- createProject(projectName) {
111
- Logger_1.Logger.debug(`${this.getLoggingName(this.createProject.name)}: Create new project "${projectName}".`);
112
- ShellExecutor_1.ShellExecutor.execWithLog(`${this.KUBERNETES_COMMAND_LINE_TOOL} new-project ${projectName} -n ${this.namespace}`);
113
- }
114
- deleteProject(projectName) {
115
- Logger_1.Logger.debug(`${this.getLoggingName(this.deleteProject.name)}: Delete "${projectName}".`);
116
- ShellExecutor_1.ShellExecutor.execWithLog(`${this.KUBERNETES_COMMAND_LINE_TOOL} delete project ${projectName} -n ${this.namespace}`);
117
- }
118
- getPodAndContainerNames() {
119
- KubernetesCommandLineToolsExecutor.pod = this.getWorkspacePodName();
120
- KubernetesCommandLineToolsExecutor.container = this.getContainerName();
121
- }
122
- isUserLoggedIn() {
123
- const whoamiCommandOutput = ShellExecutor_1.ShellExecutor.execWithLog('oc whoami && oc whoami --show-server=true');
124
- return whoamiCommandOutput.stdout.includes(TestConstants_1.TestConstants.TS_SELENIUM_OCP_USERNAME) && whoamiCommandOutput.stdout.includes(this.getServerUrl());
125
- }
126
- getLoggingName(methodName) {
127
- return `${this.constructor.name}.${methodName} - ${(this.KUBERNETES_COMMAND_LINE_TOOL)}`;
128
- }
129
- setNamespace(_namespace) {
130
- _namespace = _namespace !== undefined ? _namespace
131
- : TestConstants_1.TestConstants.TS_SELENIUM_BASE_URL.includes('devspaces') ? TestConstants_1.TestConstants.TS_SELENIUM_OCP_USERNAME + '-devspaces'
132
- : TestConstants_1.TestConstants.TS_SELENIUM_BASE_URL.includes('che') ? TestConstants_1.TestConstants.TS_SELENIUM_OCP_USERNAME + '-che'
133
- : 'default';
134
- return _namespace;
135
- }
136
- getServerUrl() {
137
- Logger_1.Logger.debug(`${this.getLoggingName(this.getServerUrl.name)}: Get server api url.`);
138
- return TestConstants_1.TestConstants.TS_SELENIUM_BASE_URL.replace('devspaces.apps', 'api') + ':6443';
139
- }
140
- }
141
- exports.KubernetesCommandLineToolsExecutor = KubernetesCommandLineToolsExecutor;
142
- (function (KubernetesCommandLineToolsExecutor) {
143
- class ContainerTerminal extends KubernetesCommandLineToolsExecutor {
144
- constructor(cluster) {
145
- super(cluster.getWorkspaceName, cluster.getNamespace);
146
- }
147
- ls(path = '') {
148
- return this.executeCommand('ls ' + path);
149
- }
150
- pwd() {
151
- return this.executeCommand('pwd');
152
- }
153
- cd(path) {
154
- return this.executeCommand('cd ' + path);
155
- }
156
- gitClone(repository) {
157
- return this.executeCommand('git clone ' + repository);
158
- }
159
- removeFolder(path) {
160
- return this.executeCommand('rm -rf ' + path);
161
- }
162
- getEnvValue(envName) {
163
- envName = envName.replace(/[${}]/g, '');
164
- const output = this.executeCommand(`env | grep ${envName}`);
165
- return output.stderr ? output.stderr :
166
- output.stdout
167
- .substring(output.stdout.lastIndexOf('=') + 1)
168
- .replace('\n', '');
169
- }
170
- }
171
- KubernetesCommandLineToolsExecutor.ContainerTerminal = ContainerTerminal;
172
- })(KubernetesCommandLineToolsExecutor = exports.KubernetesCommandLineToolsExecutor || (exports.KubernetesCommandLineToolsExecutor = {}));
173
- //# sourceMappingURL=KubernetesCommandLineToolsExecutor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KubernetesCommandLineToolsExecutor.js","sourceRoot":"","sources":["../../utils/KubernetesCommandLineToolsExecutor.ts"],"names":[],"mappings":"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"}
@@ -1,89 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Logger = void 0;
4
- const TestConstants_1 = require("../constants/TestConstants");
5
- /*********************************************************************
6
- * Copyright (c) 2019-2023 Red Hat, Inc.
7
- *
8
- * This program and the accompanying materials are made
9
- * available under the terms of the Eclipse Public License 2.0
10
- * which is available at https://www.eclipse.org/legal/epl-2.0/
11
- *
12
- * SPDX-License-Identifier: EPL-2.0
13
- **********************************************************************/
14
- class Logger {
15
- /**
16
- * Uses for logging of fatal errors.
17
- * @param text log text
18
- * @param indentLevel log level
19
- */
20
- static error(text, indentLevel = 1) {
21
- this.logText(indentLevel, `[ERROR] ${text}`);
22
- }
23
- /**
24
- * Uses for logging of recoverable errors and general warnings.
25
- * @param text log text
26
- * @param indentLevel log level
27
- */
28
- static warn(text, indentLevel = 1) {
29
- if (TestConstants_1.TestConstants.TS_SELENIUM_LOG_LEVEL === 'ERROR') {
30
- return;
31
- }
32
- this.logText(indentLevel, `[WARN] ${text}`);
33
- }
34
- /**
35
- * Uses for logging of the public methods of the pageobjects.
36
- * @param text log text
37
- * @param indentLevel log level
38
- */
39
- static info(text, indentLevel = 3) {
40
- if (TestConstants_1.TestConstants.TS_SELENIUM_LOG_LEVEL === 'ERROR' ||
41
- TestConstants_1.TestConstants.TS_SELENIUM_LOG_LEVEL === 'WARN') {
42
- return;
43
- }
44
- this.logText(indentLevel, `• ${text}`);
45
- }
46
- /**
47
- * Uses for logging of the public methods of the pageobjects.
48
- * @param text log text
49
- * @param indentLevel log level
50
- */
51
- static debug(text, indentLevel = 5) {
52
- if (TestConstants_1.TestConstants.TS_SELENIUM_LOG_LEVEL === 'ERROR' ||
53
- TestConstants_1.TestConstants.TS_SELENIUM_LOG_LEVEL === 'WARN' ||
54
- TestConstants_1.TestConstants.TS_SELENIUM_LOG_LEVEL === 'INFO') {
55
- return;
56
- }
57
- this.logText(indentLevel, `▼ ${text}`);
58
- }
59
- /**
60
- * Uses for logging of the public methods of the {@link DriverHelper} or
61
- * private methods inside of pageobjects.
62
- * @param text log text
63
- * @param indentLevel log level
64
- */
65
- static trace(text, indentLevel = 6) {
66
- if (TestConstants_1.TestConstants.TS_SELENIUM_LOG_LEVEL === 'ERROR' ||
67
- TestConstants_1.TestConstants.TS_SELENIUM_LOG_LEVEL === 'WARN' ||
68
- TestConstants_1.TestConstants.TS_SELENIUM_LOG_LEVEL === 'INFO' ||
69
- TestConstants_1.TestConstants.TS_SELENIUM_LOG_LEVEL === 'DEBUG') {
70
- return;
71
- }
72
- this.logText(indentLevel, `‣ ${text}`);
73
- }
74
- static logText(messageIndentationLevel, text) {
75
- // start group for every level
76
- for (let i = 0; i < messageIndentationLevel; i++) {
77
- console.group();
78
- }
79
- // print the trimmed text
80
- // if multiline, the message should be properly padded
81
- console.log(text);
82
- // end group for every level
83
- for (let i = 0; i < messageIndentationLevel; i++) {
84
- console.groupEnd();
85
- }
86
- }
87
- }
88
- exports.Logger = Logger;
89
- //# sourceMappingURL=Logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../utils/Logger.ts"],"names":[],"mappings":";;;AAAA,8DAA2D;AAE3D;;;;;;;;wEAQwE;AAExE,MAAsB,MAAM;IAExB;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,IAAY,EAAE,cAAsB,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,IAAY,EAAE,cAAsB,CAAC;QAC7C,IAAI,6BAAa,CAAC,qBAAqB,KAAK,OAAO,EAAE;YACjD,OAAO;SACV;QACD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,IAAY,EAAE,cAAsB,CAAC;QAC7C,IAAI,6BAAa,CAAC,qBAAqB,KAAK,OAAO;YAC/C,6BAAa,CAAC,qBAAqB,KAAK,MAAM,EAAE;YAChD,OAAO;SACV;QACD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,IAAY,EAAE,cAAsB,CAAC;QAC9C,IAAI,6BAAa,CAAC,qBAAqB,KAAK,OAAO;YAC/C,6BAAa,CAAC,qBAAqB,KAAK,MAAM;YAC9C,6BAAa,CAAC,qBAAqB,KAAK,MAAM,EAAE;YAChD,OAAO;SACV;QACD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,IAAY,EAAE,cAAsB,CAAC;QAC9C,IAAI,6BAAa,CAAC,qBAAqB,KAAK,OAAO;YAC/C,6BAAa,CAAC,qBAAqB,KAAK,MAAM;YAC9C,6BAAa,CAAC,qBAAqB,KAAK,MAAM;YAC9C,6BAAa,CAAC,qBAAqB,KAAK,OAAO,EAAE;YACjD,OAAO;SACV;QACD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAEO,MAAM,CAAC,OAAO,CAAC,uBAA+B,EAAE,IAAY;QAChE,8BAA8B;QAC9B,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,uBAAuB,EAAE,CAAC,EAAE,EAAE;YACtD,OAAO,CAAC,KAAK,EAAE,CAAC;SACnB;QACD,yBAAyB;QACzB,sDAAsD;QACtD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,4BAA4B;QAC5B,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,uBAAuB,EAAE,CAAC,EAAE,EAAE;YACtD,OAAO,CAAC,QAAQ,EAAE,CAAC;SACtB;IACL,CAAC;CACJ;AA/ED,wBA+EC"}
@@ -1,104 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
15
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18
- return c > 3 && r && Object.defineProperty(target, key, r), r;
19
- };
20
- var __importStar = (this && this.__importStar) || function (mod) {
21
- if (mod && mod.__esModule) return mod;
22
- var result = {};
23
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
24
- __setModuleDefault(result, mod);
25
- return result;
26
- };
27
- var __metadata = (this && this.__metadata) || function (k, v) {
28
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
29
- };
30
- var __param = (this && this.__param) || function (paramIndex, decorator) {
31
- return function (target, key) { decorator(target, key, paramIndex); }
32
- };
33
- Object.defineProperty(exports, "__esModule", { value: true });
34
- exports.ScreenCatcher = void 0;
35
- /*********************************************************************
36
- * Copyright (c) 2021-2023 Red Hat, Inc.
37
- *
38
- * This program and the accompanying materials are made
39
- * available under the terms of the Eclipse Public License 2.0
40
- * which is available at https://www.eclipse.org/legal/epl-2.0/
41
- *
42
- * SPDX-License-Identifier: EPL-2.0
43
- **********************************************************************/
44
- const fs = __importStar(require("fs"));
45
- const inversify_1 = require("inversify");
46
- const inversify_types_1 = require("../configs/inversify.types");
47
- const DriverHelper_1 = require("./DriverHelper");
48
- const selenium_webdriver_1 = require("selenium-webdriver");
49
- const TestConstants_1 = require("../constants/TestConstants");
50
- const StringUtil_1 = require("./StringUtil");
51
- let ScreenCatcher = class ScreenCatcher {
52
- constructor(driverHelper) {
53
- this.driverHelper = driverHelper;
54
- }
55
- async catchMethodScreen(methodName, methodIndex, screenshotIndex) {
56
- const executionScreenCastDir = `${TestConstants_1.TestConstants.TS_SELENIUM_REPORT_FOLDER}/executionScreencast`;
57
- const executionScreenCastErrorsDir = `${TestConstants_1.TestConstants.TS_SELENIUM_REPORT_FOLDER}/executionScreencastErrors`;
58
- const formattedMethodIndex = new Intl.NumberFormat('en-us', { minimumIntegerDigits: 3 }).format(methodIndex);
59
- const formattedScreenshotIndex = new Intl.NumberFormat('en-us', { minimumIntegerDigits: 5 }).format(screenshotIndex).replace(/,/g, '');
60
- if (!fs.existsSync(TestConstants_1.TestConstants.TS_SELENIUM_REPORT_FOLDER)) {
61
- fs.mkdirSync(TestConstants_1.TestConstants.TS_SELENIUM_REPORT_FOLDER);
62
- }
63
- if (!fs.existsSync(executionScreenCastDir)) {
64
- fs.mkdirSync(executionScreenCastDir);
65
- }
66
- const date = new Date();
67
- const timeStr = date.toLocaleTimeString('en-us', { hour12: false }) + '.' + new Intl.NumberFormat('en-us', { minimumIntegerDigits: 3 }).format(date.getMilliseconds());
68
- const screenshotPath = `${executionScreenCastDir}/${formattedMethodIndex}-${formattedScreenshotIndex}--(${StringUtil_1.StringUtil.sanitizeTitle(timeStr)})_${StringUtil_1.StringUtil.sanitizeTitle(methodName)}.png`;
69
- try {
70
- await this.catchScreen(screenshotPath);
71
- }
72
- catch (err) {
73
- if (!fs.existsSync(executionScreenCastErrorsDir)) {
74
- fs.mkdirSync(executionScreenCastErrorsDir);
75
- }
76
- let errorLogFilePath = screenshotPath.replace('.png', '.txt');
77
- errorLogFilePath = errorLogFilePath.replace(executionScreenCastDir, executionScreenCastErrorsDir);
78
- if (err instanceof selenium_webdriver_1.error.IError) {
79
- await this.writeErrorLog(errorLogFilePath, err);
80
- }
81
- }
82
- }
83
- async catchScreen(screenshotPath) {
84
- const screenshot = await this.driverHelper.getDriver().takeScreenshot();
85
- const screenshotStream = fs.createWriteStream(screenshotPath);
86
- screenshotStream.write(Buffer.from(screenshot, 'base64'));
87
- screenshotStream.end();
88
- }
89
- async writeErrorLog(errorLogPath, err) {
90
- console.log(`Failed to save screenshot, additional information in the ${errorLogPath}`);
91
- if (err.stack) {
92
- const screenshotStream = fs.createWriteStream(errorLogPath);
93
- screenshotStream.write(Buffer.from(err.stack, 'utf8'));
94
- screenshotStream.end();
95
- }
96
- }
97
- };
98
- ScreenCatcher = __decorate([
99
- inversify_1.injectable(),
100
- __param(0, inversify_1.inject(inversify_types_1.CLASSES.DriverHelper)),
101
- __metadata("design:paramtypes", [DriverHelper_1.DriverHelper])
102
- ], ScreenCatcher);
103
- exports.ScreenCatcher = ScreenCatcher;
104
- //# sourceMappingURL=ScreenCatcher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScreenCatcher.js","sourceRoot":"","sources":["../../utils/ScreenCatcher.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ShellExecutor = void 0;
4
- const shelljs_1 = require("shelljs");
5
- class ShellExecutor {
6
- static wait(seconds) {
7
- this.execWithLog(`sleep ${seconds}s`);
8
- }
9
- static curl(link) {
10
- return this.execWithLog(`curl -k ${link}`);
11
- }
12
- static execWithLog(command) {
13
- shelljs_1.echo(command);
14
- return shelljs_1.exec(command);
15
- }
16
- }
17
- exports.ShellExecutor = ShellExecutor;
18
- //# sourceMappingURL=ShellExecutor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShellExecutor.js","sourceRoot":"","sources":["../../utils/ShellExecutor.ts"],"names":[],"mappings":";;;AAAA,qCAAkD;AAElD,MAAa,aAAa;IAEtB,MAAM,CAAC,IAAI,CAAC,OAAe;QACvB,IAAI,CAAC,WAAW,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAES,MAAM,CAAC,WAAW,CAAC,OAAe;QACxC,cAAI,CAAC,OAAO,CAAC,CAAC;QACd,OAAO,cAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;CACJ;AAdD,sCAcC"}
@@ -1,54 +0,0 @@
1
- "use strict";
2
- /*********************************************************************
3
- * Copyright (c) 2019 Red Hat, Inc.
4
- *
5
- * This program and the accompanying materials are made
6
- * available under the terms of the Eclipse Public License 2.0
7
- * which is available at https://www.eclipse.org/legal/epl-2.0/
8
- *
9
- * SPDX-License-Identifier: EPL-2.0
10
- **********************************************************************/
11
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
12
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
13
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
14
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
15
- return c > 3 && r && Object.defineProperty(target, key, r), r;
16
- };
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.StringUtil = void 0;
19
- const inversify_1 = require("inversify");
20
- const Logger_1 = require("./Logger");
21
- let StringUtil = class StringUtil {
22
- /**
23
- * Method extracts a test repo name from git clone https url;
24
- * it splits the url into string[] by "/" or ".", deletes empty elements and elements that contains just "git", "main" or "tree" word, than returns the last one;
25
- * please, avoid to call the test repo as just "git" or to use dots in the name, like: github.com/user/git.git, github.com/user/name.with.dots.
26
- * @param url git https url (which using for "git clone")
27
- * @return project name
28
- */
29
- static getProjectNameFromGitUrl(url) {
30
- Logger_1.Logger.debug(`${this.constructor.name}.${this.getProjectNameFromGitUrl.name} - ${url}`);
31
- if (url.includes('/tree/')) {
32
- url = url.split('/').slice(0, -2).join('/');
33
- }
34
- const projectName = url.split(/[\/.]/).filter((e) => !['git', ''].includes(e)).reverse()[0];
35
- Logger_1.Logger.debug(`${this.constructor.name}.${this.getProjectNameFromGitUrl.name} - ${projectName}`);
36
- return projectName;
37
- }
38
- static sanitizeTitle(arg) {
39
- return arg.replace(/\//g, '+').replace(/,/g, '.').replace(/:/g, '-').replace(/['"]/g, '').replace(/[^a-z0-9+\-.()\[\]_]/gi, '_');
40
- }
41
- /**
42
- * Replaces ${ENV}, $ENV to "$ENV"
43
- * @param command string command with environmental variables in unsupported format
44
- * @return updated command with environmental variables in supported format
45
- */
46
- static updateCommandEnvsToShStyle(command) {
47
- return command.replace(/[{}]/g, '').replace(/(?<!")\${?[a-zA-Z0-9_+\-\s]+\b}?/gm, `"\$&"`);
48
- }
49
- };
50
- StringUtil = __decorate([
51
- inversify_1.injectable()
52
- ], StringUtil);
53
- exports.StringUtil = StringUtil;
54
- //# sourceMappingURL=StringUtil.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StringUtil.js","sourceRoot":"","sources":["../../utils/StringUtil.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;;;;;;;;AAExE,yCAAuC;AACvC,qCAAkC;AAIlC,IAAa,UAAU,GAAvB,MAAa,UAAU;IACnB;;;;;;OAMG;IACH,MAAM,CAAC,wBAAwB,CAAC,GAAW;QACvC,eAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,wBAAwB,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC;QACxF,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACxB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC/C;QACD,MAAM,WAAW,GAAW,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5G,eAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,wBAAwB,CAAC,IAAI,MAAM,WAAW,EAAE,CAAC,CAAC;QAChG,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,GAAW;QAC5B,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;IACrI,CAAC;IAED;;;;OAIG;IAEH,MAAM,CAAC,0BAA0B,CAAC,OAAe;QAC7C,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,oCAAoC,EAAE,OAAO,CAAC,CAAC;IAC/F,CAAC;CACJ,CAAA;AA/BY,UAAU;IADtB,sBAAU,EAAE;GACA,UAAU,CA+BtB;AA/BY,gCAAU"}
@@ -1,126 +0,0 @@
1
- "use strict";
2
- /*********************************************************************
3
- * Copyright (c) 2019-2023 Red Hat, Inc.
4
- *
5
- * This program and the accompanying materials are made
6
- * available under the terms of the Eclipse Public License 2.0
7
- * which is available at https://www.eclipse.org/legal/epl-2.0/
8
- *
9
- * SPDX-License-Identifier: EPL-2.0
10
- **********************************************************************/
11
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
12
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
13
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
14
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
15
- return c > 3 && r && Object.defineProperty(target, key, r), r;
16
- };
17
- var __metadata = (this && this.__metadata) || function (k, v) {
18
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
19
- };
20
- var __param = (this && this.__param) || function (paramIndex, decorator) {
21
- return function (target, key) { decorator(target, key, paramIndex); }
22
- };
23
- var __importDefault = (this && this.__importDefault) || function (mod) {
24
- return (mod && mod.__esModule) ? mod : { "default": mod };
25
- };
26
- Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.CheApiRequestHandler = void 0;
28
- const axios_1 = __importDefault(require("axios"));
29
- const TestConstants_1 = require("../../constants/TestConstants");
30
- const inversify_types_1 = require("../../configs/inversify.types");
31
- const inversify_1 = require("inversify");
32
- const Logger_1 = require("../Logger");
33
- let CheApiRequestHandler = class CheApiRequestHandler {
34
- constructor(headerHandler) {
35
- this.headerHandler = headerHandler;
36
- }
37
- /**
38
- * This method adds a request interceptor into axios request interceptors list and returns an ID of the interceptor
39
- */
40
- static enableRequestInterceptor() {
41
- Logger_1.Logger.debug(`CheApiRequestHandler.enableRequestInterceptor`);
42
- return axios_1.default.interceptors.request.use(request => {
43
- try {
44
- let request_censored = JSON.parse(JSON.stringify(request));
45
- if (request_censored === undefined) {
46
- Logger_1.Logger.error('JSON.parse returned an undefined object, cannot process request');
47
- return request;
48
- }
49
- if (request_censored.headers === undefined) {
50
- Logger_1.Logger.warn('Request does not contain any headers object');
51
- return request;
52
- }
53
- request_censored.headers.Authorization = 'CENSORED';
54
- request_censored.headers.Cookie = 'CENSORED';
55
- Logger_1.Logger.info(`RequestHandler request:\n` + request_censored);
56
- }
57
- catch (err) {
58
- Logger_1.Logger.error(`RequestHandler request: Failed to deep clone AxiosRequestConfig:` + err);
59
- }
60
- return request;
61
- });
62
- }
63
- /**
64
- * This method adds a response interceptor into axios response interceptors list and returns an ID of the interceptor
65
- */
66
- static enableResponseInterceptor() {
67
- Logger_1.Logger.debug(`CheApiRequestHandler.enableResponseRedirects`);
68
- return axios_1.default.interceptors.response.use(response => {
69
- try {
70
- let response_censored = JSON.parse(JSON.stringify(response, (key, value) => {
71
- switch (key) {
72
- case 'request': return 'CENSORED';
73
- default: return value;
74
- }
75
- }));
76
- if (response_censored === undefined) {
77
- Logger_1.Logger.error('JSON.parse returned an undefined object, cannot process response');
78
- return response;
79
- }
80
- if (response_censored.config === undefined) {
81
- Logger_1.Logger.warn('Response does not contain any config object');
82
- return response;
83
- }
84
- if (response_censored.config.headers === undefined) {
85
- Logger_1.Logger.warn('Response does not contain any config.headers object');
86
- return response;
87
- }
88
- response_censored.config.headers.Authorization = 'CENSORED';
89
- response_censored.config.headers.Cookie = 'CENSORED';
90
- if (response_censored.data.access_token !== null) {
91
- response_censored.data.access_token = 'CENSORED';
92
- }
93
- if (response_censored.data.refresh_token !== null) {
94
- response_censored.data.refresh_token = 'CENSORED';
95
- }
96
- Logger_1.Logger.info(`RequestHandler response:\n` + response_censored);
97
- }
98
- catch (err) {
99
- Logger_1.Logger.error(`RequestHandler response: Failed to deep clone AxiosResponse:` + err);
100
- }
101
- return response;
102
- });
103
- }
104
- async get(relativeUrl) {
105
- return await axios_1.default.get(this.assembleUrl(relativeUrl), await this.headerHandler.get());
106
- }
107
- async post(relativeUrl, data) {
108
- return await axios_1.default.post(this.assembleUrl(relativeUrl), data, await this.headerHandler.get());
109
- }
110
- async delete(relativeUrl) {
111
- return await axios_1.default.delete(this.assembleUrl(relativeUrl), await this.headerHandler.get());
112
- }
113
- async patch(relativeUrl, patchParams) {
114
- return await axios_1.default.patch(this.assembleUrl(relativeUrl), patchParams, await this.headerHandler.get());
115
- }
116
- assembleUrl(relativeUrl) {
117
- return `${TestConstants_1.TestConstants.TS_SELENIUM_BASE_URL}/${relativeUrl}`;
118
- }
119
- };
120
- CheApiRequestHandler = __decorate([
121
- inversify_1.injectable(),
122
- __param(0, inversify_1.inject(inversify_types_1.TYPES.IAuthorizationHeaderHandler)),
123
- __metadata("design:paramtypes", [Object])
124
- ], CheApiRequestHandler);
125
- exports.CheApiRequestHandler = CheApiRequestHandler;
126
- //# sourceMappingURL=CheApiRequestHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CheApiRequestHandler.js","sourceRoot":"","sources":["../../../utils/request-handlers/CheApiRequestHandler.ts"],"names":[],"mappings":"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"}