@eclipse-che/che-e2e 7.123.0-next → 7.123.0-next-901c3fb

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 (262) hide show
  1. package/dist/configs/inversify.config.js +123 -0
  2. package/dist/configs/inversify.config.js.map +1 -0
  3. package/dist/configs/inversify.types.js +74 -0
  4. package/dist/configs/inversify.types.js.map +1 -0
  5. package/dist/configs/mocharc.js +42 -0
  6. package/dist/configs/mocharc.js.map +1 -0
  7. package/dist/constants/API_TEST_CONSTANTS.js +60 -0
  8. package/dist/constants/API_TEST_CONSTANTS.js.map +1 -0
  9. package/dist/constants/BASE_TEST_CONSTANTS.js +109 -0
  10. package/dist/constants/BASE_TEST_CONSTANTS.js.map +1 -0
  11. package/dist/constants/CHROME_DRIVER_CONSTANTS.js +40 -0
  12. package/dist/constants/CHROME_DRIVER_CONSTANTS.js.map +1 -0
  13. package/dist/constants/EDITOR_CONSTANTS.js +114 -0
  14. package/dist/constants/EDITOR_CONSTANTS.js.map +1 -0
  15. package/dist/constants/FACTORY_TEST_CONSTANTS.js +87 -0
  16. package/dist/constants/FACTORY_TEST_CONSTANTS.js.map +1 -0
  17. package/dist/constants/MOCHA_CONSTANTS.js +24 -0
  18. package/dist/constants/MOCHA_CONSTANTS.js.map +1 -0
  19. package/dist/constants/MONACO_CONSTANTS.js +25 -0
  20. package/dist/constants/MONACO_CONSTANTS.js.map +1 -0
  21. package/dist/constants/OAUTH_CONSTANTS.js +53 -0
  22. package/dist/constants/OAUTH_CONSTANTS.js.map +1 -0
  23. package/dist/constants/PLUGIN_TEST_CONSTANTS.js +19 -0
  24. package/dist/constants/PLUGIN_TEST_CONSTANTS.js.map +1 -0
  25. package/dist/constants/REPORTER_CONSTANTS.js +123 -0
  26. package/dist/constants/REPORTER_CONSTANTS.js.map +1 -0
  27. package/dist/constants/TIMEOUT_CONSTANTS.js +101 -0
  28. package/dist/constants/TIMEOUT_CONSTANTS.js.map +1 -0
  29. package/dist/driver/ChromeDriver.js +77 -0
  30. package/dist/driver/ChromeDriver.js.map +1 -0
  31. package/dist/driver/IDriver.js +3 -0
  32. package/dist/driver/IDriver.js.map +1 -0
  33. package/dist/index.js +99 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/pageobjects/dashboard/CreateWorkspace.js +181 -0
  36. package/dist/pageobjects/dashboard/CreateWorkspace.js.map +1 -0
  37. package/dist/pageobjects/dashboard/Dashboard.js +208 -0
  38. package/dist/pageobjects/dashboard/Dashboard.js.map +1 -0
  39. package/dist/pageobjects/dashboard/TrustAuthorPopup.js +61 -0
  40. package/dist/pageobjects/dashboard/TrustAuthorPopup.js.map +1 -0
  41. package/dist/pageobjects/dashboard/UserPreferences.js +268 -0
  42. package/dist/pageobjects/dashboard/UserPreferences.js.map +1 -0
  43. package/dist/pageobjects/dashboard/Workspaces.js +242 -0
  44. package/dist/pageobjects/dashboard/Workspaces.js.map +1 -0
  45. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js +192 -0
  46. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js.map +1 -0
  47. package/dist/pageobjects/git-providers/OauthPage.js +218 -0
  48. package/dist/pageobjects/git-providers/OauthPage.js.map +1 -0
  49. package/dist/pageobjects/ide/AiCodeSignInDialog.js +55 -0
  50. package/dist/pageobjects/ide/AiCodeSignInDialog.js.map +1 -0
  51. package/dist/pageobjects/ide/CheCodeLocatorLoader.js +108 -0
  52. package/dist/pageobjects/ide/CheCodeLocatorLoader.js.map +1 -0
  53. package/dist/pageobjects/ide/CommandPalette.js +117 -0
  54. package/dist/pageobjects/ide/CommandPalette.js.map +1 -0
  55. package/dist/pageobjects/ide/ExplorerView.js +108 -0
  56. package/dist/pageobjects/ide/ExplorerView.js.map +1 -0
  57. package/dist/pageobjects/ide/ExtensionsView.js +162 -0
  58. package/dist/pageobjects/ide/ExtensionsView.js.map +1 -0
  59. package/dist/pageobjects/ide/GitHubExtensionDialog.js +66 -0
  60. package/dist/pageobjects/ide/GitHubExtensionDialog.js.map +1 -0
  61. package/dist/pageobjects/ide/NotificationHandler.js +83 -0
  62. package/dist/pageobjects/ide/NotificationHandler.js.map +1 -0
  63. package/dist/pageobjects/ide/RestartWorkspaceDialog.js +80 -0
  64. package/dist/pageobjects/ide/RestartWorkspaceDialog.js.map +1 -0
  65. package/dist/pageobjects/ide/RestrictedModeButton.js +57 -0
  66. package/dist/pageobjects/ide/RestrictedModeButton.js.map +1 -0
  67. package/dist/pageobjects/ide/SourceControlView.js +52 -0
  68. package/dist/pageobjects/ide/SourceControlView.js.map +1 -0
  69. package/dist/pageobjects/ide/ViewsMoreActionsButton.js +73 -0
  70. package/dist/pageobjects/ide/ViewsMoreActionsButton.js.map +1 -0
  71. package/dist/pageobjects/login/interfaces/ICheLoginPage.js +12 -0
  72. package/dist/pageobjects/login/interfaces/ICheLoginPage.js.map +1 -0
  73. package/dist/pageobjects/login/interfaces/IOcpLoginPage.js +12 -0
  74. package/dist/pageobjects/login/interfaces/IOcpLoginPage.js.map +1 -0
  75. package/dist/pageobjects/login/kubernetes/DexLoginPage.js +69 -0
  76. package/dist/pageobjects/login/kubernetes/DexLoginPage.js.map +1 -0
  77. package/dist/pageobjects/login/kubernetes/KubernetesLoginPage.js +50 -0
  78. package/dist/pageobjects/login/kubernetes/KubernetesLoginPage.js.map +1 -0
  79. package/dist/pageobjects/login/openshift/OcpLoginPage.js +88 -0
  80. package/dist/pageobjects/login/openshift/OcpLoginPage.js.map +1 -0
  81. package/dist/pageobjects/login/openshift/OcpRedHatLoginPage.js +73 -0
  82. package/dist/pageobjects/login/openshift/OcpRedHatLoginPage.js.map +1 -0
  83. package/dist/pageobjects/login/openshift/OcpUserLoginPage.js +53 -0
  84. package/dist/pageobjects/login/openshift/OcpUserLoginPage.js.map +1 -0
  85. package/dist/pageobjects/login/openshift/RedHatLoginPage.js +85 -0
  86. package/dist/pageobjects/login/openshift/RedHatLoginPage.js.map +1 -0
  87. package/dist/pageobjects/login/openshift/RegularUserOcpCheLoginPage.js +65 -0
  88. package/dist/pageobjects/login/openshift/RegularUserOcpCheLoginPage.js.map +1 -0
  89. package/dist/pageobjects/openshift/OcpApplicationPage.js +60 -0
  90. package/dist/pageobjects/openshift/OcpApplicationPage.js.map +1 -0
  91. package/dist/pageobjects/openshift/OcpImportFromGitPage.js +92 -0
  92. package/dist/pageobjects/openshift/OcpImportFromGitPage.js.map +1 -0
  93. package/dist/pageobjects/openshift/OcpMainPage.js +140 -0
  94. package/dist/pageobjects/openshift/OcpMainPage.js.map +1 -0
  95. package/dist/pageobjects/webterminal/WebTerminalPage.js +182 -0
  96. package/dist/pageobjects/webterminal/WebTerminalPage.js.map +1 -0
  97. package/dist/specs/MochaHooks.js +142 -0
  98. package/dist/specs/MochaHooks.js.map +1 -0
  99. package/dist/specs/SmokeTest.spec.js +58 -0
  100. package/dist/specs/SmokeTest.spec.js.map +1 -0
  101. package/dist/specs/api/AnsibleDevFileAPI.spec.js +263 -0
  102. package/dist/specs/api/AnsibleDevFileAPI.spec.js.map +1 -0
  103. package/dist/specs/api/BuildPushRunPodmanContainerAPI.spec.js +147 -0
  104. package/dist/specs/api/BuildPushRunPodmanContainerAPI.spec.js.map +1 -0
  105. package/dist/specs/api/ContainerOverridesAPI.spec.js +40 -0
  106. package/dist/specs/api/ContainerOverridesAPI.spec.js.map +1 -0
  107. package/dist/specs/api/CppDevFileAPI.spec.js +87 -0
  108. package/dist/specs/api/CppDevFileAPI.spec.js.map +1 -0
  109. package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js +99 -0
  110. package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js.map +1 -0
  111. package/dist/specs/api/DotnetDevFileAPI.spec.js +89 -0
  112. package/dist/specs/api/DotnetDevFileAPI.spec.js.map +1 -0
  113. package/dist/specs/api/EmptyWorkspaceAPI.spec.js +60 -0
  114. package/dist/specs/api/EmptyWorkspaceAPI.spec.js.map +1 -0
  115. package/dist/specs/api/GoDevFileAPI.spec.js +82 -0
  116. package/dist/specs/api/GoDevFileAPI.spec.js.map +1 -0
  117. package/dist/specs/api/InbuiltApplicationDevWorkspacesAPI.spec.js +97 -0
  118. package/dist/specs/api/InbuiltApplicationDevWorkspacesAPI.spec.js.map +1 -0
  119. package/dist/specs/api/JBossEapDevFileAPI.spec.js +127 -0
  120. package/dist/specs/api/JBossEapDevFileAPI.spec.js.map +1 -0
  121. package/dist/specs/api/LombokDevFileAPI.spec.js +81 -0
  122. package/dist/specs/api/LombokDevFileAPI.spec.js.map +1 -0
  123. package/dist/specs/api/NodeJSMongoDBDevFileAPI.spec.js +81 -0
  124. package/dist/specs/api/NodeJSMongoDBDevFileAPI.spec.js.map +1 -0
  125. package/dist/specs/api/NodeJsExpressDevFileAPI.spec.js +130 -0
  126. package/dist/specs/api/NodeJsExpressDevFileAPI.spec.js.map +1 -0
  127. package/dist/specs/api/PhpDevFileAPI.spec.js +71 -0
  128. package/dist/specs/api/PhpDevFileAPI.spec.js.map +1 -0
  129. package/dist/specs/api/PodOverridesAPI.spec.js +46 -0
  130. package/dist/specs/api/PodOverridesAPI.spec.js.map +1 -0
  131. package/dist/specs/api/PythonDevFileAPI.spec.js +71 -0
  132. package/dist/specs/api/PythonDevFileAPI.spec.js.map +1 -0
  133. package/dist/specs/api/QuarkusDevFileAPI.spec.js +97 -0
  134. package/dist/specs/api/QuarkusDevFileAPI.spec.js.map +1 -0
  135. package/dist/specs/dashboard-samples/Documentation.spec.js +118 -0
  136. package/dist/specs/dashboard-samples/Documentation.spec.js.map +1 -0
  137. package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js +60 -0
  138. package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js.map +1 -0
  139. package/dist/specs/dashboard-samples/Quarkus.spec.js +64 -0
  140. package/dist/specs/dashboard-samples/Quarkus.spec.js.map +1 -0
  141. package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js +345 -0
  142. package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js.map +1 -0
  143. package/dist/specs/dashboard-samples/StartWorkspaceUsingDesktopEditors.spec.js +171 -0
  144. package/dist/specs/dashboard-samples/StartWorkspaceUsingDesktopEditors.spec.js.map +1 -0
  145. package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js +155 -0
  146. package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js.map +1 -0
  147. package/dist/specs/factory/Factory.spec.js +183 -0
  148. package/dist/specs/factory/Factory.spec.js.map +1 -0
  149. package/dist/specs/factory/FactoryWithGitRepoOptions.spec.js +63 -0
  150. package/dist/specs/factory/FactoryWithGitRepoOptions.spec.js.map +1 -0
  151. package/dist/specs/factory/NoSetupRepoFactory.spec.js +212 -0
  152. package/dist/specs/factory/NoSetupRepoFactory.spec.js.map +1 -0
  153. package/dist/specs/factory/RefusedOAuthFactory.spec.js +239 -0
  154. package/dist/specs/factory/RefusedOAuthFactory.spec.js.map +1 -0
  155. package/dist/specs/factory/SshUrlNoOauthPatFactory.spec.js +202 -0
  156. package/dist/specs/factory/SshUrlNoOauthPatFactory.spec.js.map +1 -0
  157. package/dist/specs/miscellaneous/CreateWorkspaceWithExistedName.spec.js +77 -0
  158. package/dist/specs/miscellaneous/CreateWorkspaceWithExistedName.spec.js.map +1 -0
  159. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromEmptyWorkspaceSample.spec.js +106 -0
  160. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromEmptyWorkspaceSample.spec.js.map +1 -0
  161. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromGitUrl.spec.js +113 -0
  162. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromGitUrl.spec.js.map +1 -0
  163. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromSample.spec.js +116 -0
  164. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromSample.spec.js.map +1 -0
  165. package/dist/specs/miscellaneous/CustomOpenVSXRegistry.spec.js +205 -0
  166. package/dist/specs/miscellaneous/CustomOpenVSXRegistry.spec.js.map +1 -0
  167. package/dist/specs/miscellaneous/ExtensionActivationTest.spec.js +129 -0
  168. package/dist/specs/miscellaneous/ExtensionActivationTest.spec.js.map +1 -0
  169. package/dist/specs/miscellaneous/KubedockPodmanPersistUserHomeTest.spec.js +121 -0
  170. package/dist/specs/miscellaneous/KubedockPodmanPersistUserHomeTest.spec.js.map +1 -0
  171. package/dist/specs/miscellaneous/KubedockPodmanTest.spec.js +103 -0
  172. package/dist/specs/miscellaneous/KubedockPodmanTest.spec.js.map +1 -0
  173. package/dist/specs/miscellaneous/PredefinedNamespace.spec.js +111 -0
  174. package/dist/specs/miscellaneous/PredefinedNamespace.spec.js.map +1 -0
  175. package/dist/specs/miscellaneous/RenameWorkspace.spec.js +116 -0
  176. package/dist/specs/miscellaneous/RenameWorkspace.spec.js.map +1 -0
  177. package/dist/specs/miscellaneous/RevokeOauth.spec.js +29 -0
  178. package/dist/specs/miscellaneous/RevokeOauth.spec.js.map +1 -0
  179. package/dist/specs/miscellaneous/UserPreferencesTest.spec.js +26 -0
  180. package/dist/specs/miscellaneous/UserPreferencesTest.spec.js.map +1 -0
  181. package/dist/specs/miscellaneous/UserSecretsInWorkspace.spec.js +78 -0
  182. package/dist/specs/miscellaneous/UserSecretsInWorkspace.spec.js.map +1 -0
  183. package/dist/specs/miscellaneous/VsixInstallationDisableTest.spec.js +196 -0
  184. package/dist/specs/miscellaneous/VsixInstallationDisableTest.spec.js.map +1 -0
  185. package/dist/specs/miscellaneous/WorkspaceBackupRestore.spec.js +208 -0
  186. package/dist/specs/miscellaneous/WorkspaceBackupRestore.spec.js.map +1 -0
  187. package/dist/specs/miscellaneous/WorkspaceIdleTimeout.spec.js +84 -0
  188. package/dist/specs/miscellaneous/WorkspaceIdleTimeout.spec.js.map +1 -0
  189. package/dist/specs/miscellaneous/WorkspaceRunTimeout.spec.js +84 -0
  190. package/dist/specs/miscellaneous/WorkspaceRunTimeout.spec.js.map +1 -0
  191. package/dist/specs/miscellaneous/WorkspaceWithParent.spec.js +101 -0
  192. package/dist/specs/miscellaneous/WorkspaceWithParent.spec.js.map +1 -0
  193. package/dist/specs/restart-tests/RestartFromLocalDevfile.spec.js +266 -0
  194. package/dist/specs/restart-tests/RestartFromLocalDevfile.spec.js.map +1 -0
  195. package/dist/specs/web-terminal/WebTerminalTest.spec.js +47 -0
  196. package/dist/specs/web-terminal/WebTerminalTest.spec.js.map +1 -0
  197. package/dist/specs/web-terminal/WebTerminalUnderAdmin.spec.js +82 -0
  198. package/dist/specs/web-terminal/WebTerminalUnderAdmin.spec.js.map +1 -0
  199. package/dist/specs/web-terminal/WebTerminalUnderRegularUser.spec.js +78 -0
  200. package/dist/specs/web-terminal/WebTerminalUnderRegularUser.spec.js.map +1 -0
  201. package/dist/suites/devfile-acceptance-test-suite/DynamicallyGeneratingAPITest.suite.js +13 -0
  202. package/dist/suites/devfile-acceptance-test-suite/DynamicallyGeneratingAPITest.suite.js.map +1 -0
  203. package/dist/suites/disconnected-ocp/APITest.suite.js +14 -0
  204. package/dist/suites/disconnected-ocp/APITest.suite.js.map +1 -0
  205. package/dist/suites/disconnected-ocp/DynamicallyGeneratingAPITest.suite.js +13 -0
  206. package/dist/suites/disconnected-ocp/DynamicallyGeneratingAPITest.suite.js.map +1 -0
  207. package/dist/suites/disconnected-ocp/UITest.suite.js +19 -0
  208. package/dist/suites/disconnected-ocp/UITest.suite.js.map +1 -0
  209. package/dist/suites/online-ocp/APITest.suite.js +15 -0
  210. package/dist/suites/online-ocp/APITest.suite.js.map +1 -0
  211. package/dist/suites/online-ocp/DynamicallyGeneratingAPITest.suite.js +13 -0
  212. package/dist/suites/online-ocp/DynamicallyGeneratingAPITest.suite.js.map +1 -0
  213. package/dist/suites/online-ocp/UITest.suite.js +23 -0
  214. package/dist/suites/online-ocp/UITest.suite.js.map +1 -0
  215. package/dist/tests-library/LoginTests.js +76 -0
  216. package/dist/tests-library/LoginTests.js.map +1 -0
  217. package/dist/tests-library/ProjectAndFileTests.js +230 -0
  218. package/dist/tests-library/ProjectAndFileTests.js.map +1 -0
  219. package/dist/tests-library/WorkspaceHandlingTests.js +219 -0
  220. package/dist/tests-library/WorkspaceHandlingTests.js.map +1 -0
  221. package/dist/utils/BrowserTabsUtil.js +124 -0
  222. package/dist/utils/BrowserTabsUtil.js.map +1 -0
  223. package/dist/utils/CheReporter.js +238 -0
  224. package/dist/utils/CheReporter.js.map +1 -0
  225. package/dist/utils/DevWorkspaceConfigurationHelper.js +145 -0
  226. package/dist/utils/DevWorkspaceConfigurationHelper.js.map +1 -0
  227. package/dist/utils/DevfilesHelper.js +177 -0
  228. package/dist/utils/DevfilesHelper.js.map +1 -0
  229. package/dist/utils/DriverHelper.js +609 -0
  230. package/dist/utils/DriverHelper.js.map +1 -0
  231. package/dist/utils/IContextParams.js +12 -0
  232. package/dist/utils/IContextParams.js.map +1 -0
  233. package/dist/utils/IKubernetesCommandLineToolsExecutor.js +3 -0
  234. package/dist/utils/IKubernetesCommandLineToolsExecutor.js.map +1 -0
  235. package/dist/utils/KubernetesCommandLineToolsExecutor.js +338 -0
  236. package/dist/utils/KubernetesCommandLineToolsExecutor.js.map +1 -0
  237. package/dist/utils/Logger.js +146 -0
  238. package/dist/utils/Logger.js.map +1 -0
  239. package/dist/utils/ScreenCatcher.js +114 -0
  240. package/dist/utils/ScreenCatcher.js.map +1 -0
  241. package/dist/utils/ShellExecutor.js +47 -0
  242. package/dist/utils/ShellExecutor.js.map +1 -0
  243. package/dist/utils/StringUtil.js +107 -0
  244. package/dist/utils/StringUtil.js.map +1 -0
  245. package/dist/utils/request-handlers/CheApiRequestHandler.js +128 -0
  246. package/dist/utils/request-handlers/CheApiRequestHandler.js.map +1 -0
  247. package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js +55 -0
  248. package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js.map +1 -0
  249. package/dist/utils/request-handlers/headers/IAuthorizationHeaderHandler.js +12 -0
  250. package/dist/utils/request-handlers/headers/IAuthorizationHeaderHandler.js.map +1 -0
  251. package/dist/utils/workspace/ApiUrlResolver.js +117 -0
  252. package/dist/utils/workspace/ApiUrlResolver.js.map +1 -0
  253. package/dist/utils/workspace/ITestWorkspaceUtil.js +12 -0
  254. package/dist/utils/workspace/ITestWorkspaceUtil.js.map +1 -0
  255. package/dist/utils/workspace/TestWorkspaceUtil.js +202 -0
  256. package/dist/utils/workspace/TestWorkspaceUtil.js.map +1 -0
  257. package/dist/utils/workspace/WorkspaceStatus.js +19 -0
  258. package/dist/utils/workspace/WorkspaceStatus.js.map +1 -0
  259. package/index.ts +5 -5
  260. package/package.json +1 -1
  261. package/specs/miscellaneous/CreateWorkspaceWithExistingNameFromGitUrl.spec.ts +4 -5
  262. package/utils/KubernetesCommandLineToolsExecutor.ts +1 -1
@@ -0,0 +1,219 @@
1
+ "use strict";
2
+ /** *******************************************************************
3
+ * copyright (c) 2019-2026 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 WorkspaceHandlingTests_1;
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.WorkspaceHandlingTests = void 0;
26
+ require("reflect-metadata");
27
+ const inversify_1 = require("inversify");
28
+ const inversify_types_1 = require("../configs/inversify.types");
29
+ const Dashboard_1 = require("../pageobjects/dashboard/Dashboard");
30
+ const CreateWorkspace_1 = require("../pageobjects/dashboard/CreateWorkspace");
31
+ const BrowserTabsUtil_1 = require("../utils/BrowserTabsUtil");
32
+ const Logger_1 = require("../utils/Logger");
33
+ const ApiUrlResolver_1 = require("../utils/workspace/ApiUrlResolver");
34
+ const TIMEOUT_CONSTANTS_1 = require("../constants/TIMEOUT_CONSTANTS");
35
+ const DriverHelper_1 = require("../utils/DriverHelper");
36
+ const selenium_webdriver_1 = require("selenium-webdriver");
37
+ const Workspaces_1 = require("../pageobjects/dashboard/Workspaces");
38
+ let WorkspaceHandlingTests = WorkspaceHandlingTests_1 = class WorkspaceHandlingTests {
39
+ constructor(dashboard, createWorkspace, browserTabsUtil, apiUrlResolver, driverHelper, workspaces) {
40
+ this.dashboard = dashboard;
41
+ this.createWorkspace = createWorkspace;
42
+ this.browserTabsUtil = browserTabsUtil;
43
+ this.apiUrlResolver = apiUrlResolver;
44
+ this.driverHelper = driverHelper;
45
+ this.workspaces = workspaces;
46
+ }
47
+ static getWorkspaceName() {
48
+ return WorkspaceHandlingTests_1.workspaceName;
49
+ }
50
+ static clearWorkspaceName() {
51
+ WorkspaceHandlingTests_1.workspaceName = 'undefined';
52
+ }
53
+ async createAndOpenWorkspace(stack, createNewWorkspace = true) {
54
+ await this.dashboard.clickWorkspacesButton();
55
+ await this.dashboard.waitPage();
56
+ Logger_1.Logger.debug('fetching user kubernetes namespace, storing auth token by getting workspaces API URL.');
57
+ await this.apiUrlResolver.getWorkspacesApiUrl();
58
+ await this.dashboard.clickCreateWorkspaceButton();
59
+ await this.createWorkspace.waitPage();
60
+ await this.createWorkspace.setCreateNewWorkspaceCheckbox(createNewWorkspace);
61
+ WorkspaceHandlingTests_1.parentGUID = await this.browserTabsUtil.getCurrentWindowHandle();
62
+ await this.createWorkspace.clickOnSampleNoEditorSelection(stack);
63
+ await this.browserTabsUtil.waitAndSwitchToAnotherWindow(WorkspaceHandlingTests_1.parentGUID, TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_IDE_LOAD_TIMEOUT);
64
+ }
65
+ async openWorkspace(workspaceName) {
66
+ await this.workspaces.clickOpenButton(workspaceName);
67
+ await this.apiUrlResolver.getWorkspacesApiUrl();
68
+ WorkspaceHandlingTests_1.parentGUID = await this.browserTabsUtil.getCurrentWindowHandle();
69
+ await this.browserTabsUtil.waitAndSwitchToAnotherWindow(WorkspaceHandlingTests_1.parentGUID, TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_IDE_LOAD_TIMEOUT);
70
+ }
71
+ async createAndOpenWorkspaceFromGitRepository(factoryUrl, branchName, createNewWorkspace = true) {
72
+ await this.dashboard.waitPage();
73
+ Logger_1.Logger.debug('fetching user kubernetes namespace, storing auth token by getting workspaces API URL.');
74
+ await this.apiUrlResolver.getWorkspacesApiUrl();
75
+ await this.dashboard.clickCreateWorkspaceButton();
76
+ await this.createWorkspace.waitPage();
77
+ await this.createWorkspace.setCreateNewWorkspaceCheckbox(createNewWorkspace);
78
+ WorkspaceHandlingTests_1.parentGUID = await this.browserTabsUtil.getCurrentWindowHandle();
79
+ await this.createWorkspace.importFromGitUsingUI(factoryUrl, branchName);
80
+ await this.browserTabsUtil.waitAndSwitchToAnotherWindow(WorkspaceHandlingTests_1.parentGUID, TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_IDE_LOAD_TIMEOUT);
81
+ }
82
+ async createAndOpenWorkspaceWithExistedWorkspaceName(stack) {
83
+ Logger_1.Logger.debug('create and open workspace with existed workspace name.');
84
+ await this.createAndOpenWorkspace(stack);
85
+ await this.dashboard.waitExistingWorkspaceFoundAlert();
86
+ await this.dashboard.clickOnCreateNewWorkspaceButton();
87
+ }
88
+ async obtainWorkspaceNameFromStartingPage() {
89
+ const timeout = TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_START_WORKSPACE_TIMEOUT;
90
+ const polling = TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING;
91
+ const attempts = Math.ceil(timeout / polling);
92
+ for (let i = 0; i < attempts; i++) {
93
+ try {
94
+ const startingWorkspaceLineContent = await this.driverHelper
95
+ .getDriver()
96
+ .findElement(WorkspaceHandlingTests_1.WORKSPACE_NAME)
97
+ .getText();
98
+ Logger_1.Logger.trace(`obtained starting workspace getText():${startingWorkspaceLineContent}`);
99
+ // cutting away leading text
100
+ WorkspaceHandlingTests_1.workspaceName = startingWorkspaceLineContent.substring('Starting workspace '.length).trim();
101
+ Logger_1.Logger.trace(`trimmed workspace name from getText():${WorkspaceHandlingTests_1.workspaceName}`);
102
+ break;
103
+ }
104
+ catch (err) {
105
+ if (err instanceof selenium_webdriver_1.error.StaleElementReferenceError) {
106
+ Logger_1.Logger.trace('failed to obtain name from workspace start page, element possibly detached from DOM. Retrying.');
107
+ await this.driverHelper.wait(polling);
108
+ continue;
109
+ }
110
+ if (err instanceof selenium_webdriver_1.error.NoSuchElementError) {
111
+ Logger_1.Logger.trace('failed to obtain name from workspace start page, element not visible yet. Retrying.');
112
+ await this.driverHelper.wait(polling);
113
+ continue;
114
+ }
115
+ Logger_1.Logger.error(`obtaining workspace name failed with an unexpected error:${err}`);
116
+ throw err;
117
+ }
118
+ }
119
+ if (WorkspaceHandlingTests_1.workspaceName !== '' && WorkspaceHandlingTests_1.workspaceName !== 'undefined') {
120
+ Logger_1.Logger.info(`obtained workspace name from workspace loader page: ${WorkspaceHandlingTests_1.workspaceName}`);
121
+ return;
122
+ }
123
+ Logger_1.Logger.error('failed to obtain workspace name');
124
+ await this.logStartWorkspaceInfo();
125
+ throw new selenium_webdriver_1.error.InvalidArgumentError('WorkspaceHandlingTests.obtainWorkspaceNameFromStartingPage failed to obtain workspace name.');
126
+ }
127
+ async stopWorkspace(workspaceName) {
128
+ await this.dashboard.openDashboard();
129
+ await this.dashboard.stopWorkspaceByUI(workspaceName);
130
+ }
131
+ async removeWorkspace(workspaceName) {
132
+ await this.dashboard.openDashboard();
133
+ await this.dashboard.deleteStoppedWorkspaceByUI(workspaceName);
134
+ }
135
+ async stopAndRemoveWorkspace(workspaceName) {
136
+ await this.dashboard.openDashboard();
137
+ await this.dashboard.stopAndRemoveWorkspaceByUI(workspaceName);
138
+ }
139
+ async logStartWorkspaceInfo() {
140
+ const status = await this.getWorkspaceStatus();
141
+ const alertTitle = await this.getWorkspaceAlertTitle();
142
+ const alertDescription = await this.getWorkspaceAlertDescription();
143
+ Logger_1.Logger.info('Start workspace status: ' + status);
144
+ Logger_1.Logger.info('Start workspace progress title: ' + alertTitle);
145
+ Logger_1.Logger.info('Start workspace progress description: ' + alertDescription);
146
+ }
147
+ async createAndOpenWorkspaceWithSpecificEditorAndSample(editor, sampleName, xPath, polling = TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING) {
148
+ Logger_1.Logger.debug('Create and open workspace with specific Editor and Sample. Sample ' + editor);
149
+ await this.selectEditor(editor);
150
+ await this.createWorkspace.clickOnSampleNoEditorSelection(sampleName);
151
+ await this.waitForControlXpath(xPath, polling);
152
+ }
153
+ async createAndOpenWorkspaceWithSpecificEditorAndGitUrl(editor, sampleUrl, xPath, polling = TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING) {
154
+ Logger_1.Logger.debug('Create and open workspace with specific Editor and URL. Sample ' + editor);
155
+ await this.selectEditor(editor);
156
+ await this.createWorkspace.importFromGitUsingUI(sampleUrl);
157
+ await this.waitForControlXpath(xPath, polling);
158
+ }
159
+ async selectEditor(editor) {
160
+ Logger_1.Logger.debug('select Editor. Editor: ' + editor);
161
+ await this.dashboard.openChooseEditorMenu();
162
+ await this.dashboard.chooseEditor(editor);
163
+ }
164
+ async getTextFromUIElementByXpath(xpath) {
165
+ Logger_1.Logger.debug('returning text from xPath: ' + xpath);
166
+ return await this.driverHelper.getDriver().findElement(selenium_webdriver_1.By.xpath(xpath)).getText();
167
+ }
168
+ async waitForControlXpath(xPathToWait, polling) {
169
+ await this.browserTabsUtil.waitAndSwitchToAnotherWindow(WorkspaceHandlingTests_1.parentGUID, TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_IDE_LOAD_TIMEOUT);
170
+ await this.obtainWorkspaceNameFromStartingPage();
171
+ await this.driverHelper.waitVisibility(selenium_webdriver_1.By.xpath(xPathToWait), TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_START_WORKSPACE_TIMEOUT, polling);
172
+ }
173
+ async getWorkspaceAlertDescription() {
174
+ try {
175
+ return await this.driverHelper.getDriver().findElement(WorkspaceHandlingTests_1.WORKSPACE_ALERT_DESCRIPTION).getText();
176
+ }
177
+ catch (err) {
178
+ return '(unknown)';
179
+ }
180
+ }
181
+ async getWorkspaceStatus() {
182
+ try {
183
+ return await this.driverHelper.getDriver().findElement(WorkspaceHandlingTests_1.WORKSPACE_STATUS).getText();
184
+ }
185
+ catch (err) {
186
+ return '(unknown)';
187
+ }
188
+ }
189
+ async getWorkspaceAlertTitle() {
190
+ try {
191
+ return await this.driverHelper.getDriver().findElement(WorkspaceHandlingTests_1.WORKSPACE_ALERT_TITLE).getAttribute('innerHTML');
192
+ }
193
+ catch (err) {
194
+ return '(unknown)';
195
+ }
196
+ }
197
+ };
198
+ WorkspaceHandlingTests.WORKSPACE_NAME = selenium_webdriver_1.By.xpath('//h1[contains(.,"Starting workspace ")]');
199
+ WorkspaceHandlingTests.WORKSPACE_STATUS = selenium_webdriver_1.By.css('span[class*="label__content"]');
200
+ WorkspaceHandlingTests.WORKSPACE_ALERT_TITLE = selenium_webdriver_1.By.css('h4[class*="alert__title"]');
201
+ WorkspaceHandlingTests.WORKSPACE_ALERT_DESCRIPTION = selenium_webdriver_1.By.css('div[class*="alert__description"]');
202
+ WorkspaceHandlingTests.workspaceName = 'undefined';
203
+ WorkspaceHandlingTests = WorkspaceHandlingTests_1 = __decorate([
204
+ (0, inversify_1.injectable)(),
205
+ __param(0, (0, inversify_1.inject)(inversify_types_1.CLASSES.Dashboard)),
206
+ __param(1, (0, inversify_1.inject)(inversify_types_1.CLASSES.CreateWorkspace)),
207
+ __param(2, (0, inversify_1.inject)(inversify_types_1.CLASSES.BrowserTabsUtil)),
208
+ __param(3, (0, inversify_1.inject)(inversify_types_1.CLASSES.ApiUrlResolver)),
209
+ __param(4, (0, inversify_1.inject)(inversify_types_1.CLASSES.DriverHelper)),
210
+ __param(5, (0, inversify_1.inject)(inversify_types_1.CLASSES.Workspaces)),
211
+ __metadata("design:paramtypes", [Dashboard_1.Dashboard,
212
+ CreateWorkspace_1.CreateWorkspace,
213
+ BrowserTabsUtil_1.BrowserTabsUtil,
214
+ ApiUrlResolver_1.ApiUrlResolver,
215
+ DriverHelper_1.DriverHelper,
216
+ Workspaces_1.Workspaces])
217
+ ], WorkspaceHandlingTests);
218
+ exports.WorkspaceHandlingTests = WorkspaceHandlingTests;
219
+ //# sourceMappingURL=WorkspaceHandlingTests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkspaceHandlingTests.js","sourceRoot":"","sources":["../../tests-library/WorkspaceHandlingTests.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.BrowserTabsUtil = void 0;
25
+ const inversify_1 = require("inversify");
26
+ const inversify_types_1 = require("../configs/inversify.types");
27
+ const DriverHelper_1 = require("./DriverHelper");
28
+ const Logger_1 = require("./Logger");
29
+ const CHROME_DRIVER_CONSTANTS_1 = require("../constants/CHROME_DRIVER_CONSTANTS");
30
+ const TIMEOUT_CONSTANTS_1 = require("../constants/TIMEOUT_CONSTANTS");
31
+ let BrowserTabsUtil = class BrowserTabsUtil {
32
+ constructor(driverHelper) {
33
+ this.driverHelper = driverHelper;
34
+ }
35
+ async switchToWindow(windowHandle) {
36
+ Logger_1.Logger.debug();
37
+ await this.driverHelper.getDriver().switchTo().window(windowHandle);
38
+ }
39
+ async getAllWindowHandles() {
40
+ Logger_1.Logger.debug();
41
+ return (await this.driverHelper.getDriver()).getAllWindowHandles();
42
+ }
43
+ async getCurrentWindowHandle() {
44
+ Logger_1.Logger.debug();
45
+ return await this.driverHelper.getDriver().getWindowHandle();
46
+ }
47
+ async navigateTo(url) {
48
+ Logger_1.Logger.debug(`${url}`);
49
+ await this.driverHelper.navigateToUrl(url);
50
+ }
51
+ async waitAndSwitchToAnotherWindow(currentWindowHandle, timeout = TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_WAIT_FOR_URL) {
52
+ Logger_1.Logger.debug();
53
+ await this.driverHelper.waitUntilTrue(async () => {
54
+ const windowHandles = await this.getAllWindowHandles();
55
+ return windowHandles.length > 1;
56
+ }, timeout);
57
+ const windowHandles = await this.getAllWindowHandles();
58
+ for (const windowHandle of windowHandles) {
59
+ if (windowHandle !== currentWindowHandle) {
60
+ await this.switchToWindow(windowHandle);
61
+ }
62
+ }
63
+ }
64
+ async refreshPage() {
65
+ Logger_1.Logger.debug();
66
+ await (await this.driverHelper.getDriver()).navigate().refresh();
67
+ }
68
+ async getCurrentUrl() {
69
+ Logger_1.Logger.trace();
70
+ const maxAttempts = 5;
71
+ let attempts = 0;
72
+ while (attempts < maxAttempts) {
73
+ try {
74
+ return await this.driverHelper.getDriver().getCurrentUrl();
75
+ }
76
+ catch (e) {
77
+ Logger_1.Logger.trace(`Attempt ${attempts + 1} failed: cannot get current url`);
78
+ attempts++;
79
+ await this.driverHelper.wait(TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_WAIT_FOR_URL);
80
+ }
81
+ }
82
+ throw new Error('Max attempts reached: cannot get current url');
83
+ }
84
+ async waitURL(expectedUrl, timeout) {
85
+ Logger_1.Logger.trace(`${expectedUrl}`);
86
+ try {
87
+ await this.driverHelper.getDriver().wait(async () => {
88
+ const currentUrl = await this.driverHelper.getDriver().getCurrentUrl();
89
+ const urlEquals = currentUrl === expectedUrl;
90
+ if (urlEquals) {
91
+ return true;
92
+ }
93
+ }, timeout);
94
+ }
95
+ catch (e) {
96
+ throw e;
97
+ }
98
+ }
99
+ async maximize() {
100
+ Logger_1.Logger.trace();
101
+ if (CHROME_DRIVER_CONSTANTS_1.CHROME_DRIVER_CONSTANTS.TS_SELENIUM_LAUNCH_FULLSCREEN) {
102
+ Logger_1.Logger.debug('TS_SELENIUM_LAUNCH_FULLSCREEN is set to true, maximizing window.');
103
+ await this.driverHelper.getDriver().manage().window().maximize();
104
+ }
105
+ }
106
+ async closeAllTabsExceptCurrent() {
107
+ Logger_1.Logger.trace();
108
+ const allTabsHandles = await this.getAllWindowHandles();
109
+ const currentTabHandle = await this.getCurrentWindowHandle();
110
+ allTabsHandles.splice(allTabsHandles.indexOf(currentTabHandle), 1);
111
+ for (const tabHandle of allTabsHandles) {
112
+ await this.switchToWindow(tabHandle);
113
+ await this.driverHelper.getDriver().close();
114
+ }
115
+ await this.switchToWindow(currentTabHandle);
116
+ }
117
+ };
118
+ BrowserTabsUtil = __decorate([
119
+ (0, inversify_1.injectable)(),
120
+ __param(0, (0, inversify_1.inject)(inversify_types_1.CLASSES.DriverHelper)),
121
+ __metadata("design:paramtypes", [DriverHelper_1.DriverHelper])
122
+ ], BrowserTabsUtil);
123
+ exports.BrowserTabsUtil = BrowserTabsUtil;
124
+ //# sourceMappingURL=BrowserTabsUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrowserTabsUtil.js","sourceRoot":"","sources":["../../utils/BrowserTabsUtil.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ 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;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ var __metadata = (this && this.__metadata) || function (k, v) {
32
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ var CheReporter_1;
38
+ /** *******************************************************************
39
+ * copyright (c) 2019-2023 Red Hat, Inc.
40
+ *
41
+ * This program and the accompanying materials are made
42
+ * available under the terms of the Eclipse Public License 2.0
43
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
44
+ *
45
+ * SPDX-License-Identifier: EPL-2.0
46
+ **********************************************************************/
47
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
48
+ // @ts-ignore
49
+ const chromeHar = __importStar(require("chrome-har"));
50
+ const mocha = __importStar(require("mocha"));
51
+ const inversify_types_1 = require("../configs/inversify.types");
52
+ const fs = __importStar(require("fs"));
53
+ const rm = __importStar(require("rimraf"));
54
+ const DriverHelper_1 = require("./DriverHelper");
55
+ const ScreenCatcher_1 = require("./ScreenCatcher");
56
+ const TIMEOUT_CONSTANTS_1 = require("../constants/TIMEOUT_CONSTANTS");
57
+ const Logger_1 = require("./Logger");
58
+ const StringUtil_1 = require("./StringUtil");
59
+ const BASE_TEST_CONSTANTS_1 = require("../constants/BASE_TEST_CONSTANTS");
60
+ const CHROME_DRIVER_CONSTANTS_1 = require("../constants/CHROME_DRIVER_CONSTANTS");
61
+ const OAUTH_CONSTANTS_1 = require("../constants/OAUTH_CONSTANTS");
62
+ const REPORTER_CONSTANTS_1 = require("../constants/REPORTER_CONSTANTS");
63
+ const PLUGIN_TEST_CONSTANTS_1 = require("../constants/PLUGIN_TEST_CONSTANTS");
64
+ const inversify_1 = require("inversify");
65
+ const inversify_inject_decorators_1 = __importDefault(require("inversify-inject-decorators"));
66
+ const inversify_config_1 = require("../configs/inversify.config");
67
+ const { lazyInject } = (0, inversify_inject_decorators_1.default)(inversify_config_1.e2eContainer);
68
+ let CheReporter = CheReporter_1 = class CheReporter extends mocha.reporters.Spec {
69
+ constructor(runner, options) {
70
+ super(runner, options);
71
+ runner.on('start', () => {
72
+ let launchInformation = `################## Launch Information ##################
73
+
74
+ TS_SELENIUM_BASE_URL: ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TS_SELENIUM_BASE_URL}
75
+ TS_SELENIUM_HEADLESS: ${CHROME_DRIVER_CONSTANTS_1.CHROME_DRIVER_CONSTANTS.TS_SELENIUM_HEADLESS}
76
+ TS_SELENIUM_OCP_USERNAME: ${OAUTH_CONSTANTS_1.OAUTH_CONSTANTS.TS_SELENIUM_OCP_USERNAME}
77
+ TS_SELENIUM_EDITOR: ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TS_SELENIUM_EDITOR}
78
+
79
+ TS_SELENIUM_HAPPY_PATH_WORKSPACE_NAME: ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TS_SELENIUM_HAPPY_PATH_WORKSPACE_NAME}
80
+ TS_SELENIUM_DELAY_BETWEEN_SCREENSHOTS: ${REPORTER_CONSTANTS_1.REPORTER_CONSTANTS.TS_SELENIUM_DELAY_BETWEEN_SCREENSHOTS}
81
+ TS_SELENIUM_REPORT_FOLDER: ${REPORTER_CONSTANTS_1.REPORTER_CONSTANTS.TS_SELENIUM_REPORT_FOLDER}
82
+ TS_SELENIUM_EXECUTION_SCREENCAST: ${REPORTER_CONSTANTS_1.REPORTER_CONSTANTS.TS_SELENIUM_EXECUTION_SCREENCAST}
83
+ DELETE_SCREENCAST_IF_TEST_PASS: ${REPORTER_CONSTANTS_1.REPORTER_CONSTANTS.DELETE_SCREENCAST_IF_TEST_PASS}
84
+ TS_SELENIUM_REMOTE_DRIVER_URL: ${CHROME_DRIVER_CONSTANTS_1.CHROME_DRIVER_CONSTANTS.TS_SELENIUM_REMOTE_DRIVER_URL}
85
+ DELETE_WORKSPACE_ON_FAILED_TEST: ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.DELETE_WORKSPACE_ON_FAILED_TEST}
86
+ TS_SELENIUM_LOG_LEVEL: ${REPORTER_CONSTANTS_1.REPORTER_CONSTANTS.TS_SELENIUM_LOG_LEVEL}
87
+ TS_SELENIUM_LAUNCH_FULLSCREEN: ${CHROME_DRIVER_CONSTANTS_1.CHROME_DRIVER_CONSTANTS.TS_SELENIUM_LAUNCH_FULLSCREEN}
88
+
89
+ ${process.env.TS_SELENIUM_PROXY_SERVER ? 'TS_SELENIUM_PROXY_SERVER: ' + process.env.TS_SELENIUM_PROXY_SERVER : ''}
90
+
91
+ TS_COMMON_DASHBOARD_WAIT_TIMEOUT: ${TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT}
92
+ TS_SELENIUM_START_WORKSPACE_TIMEOUT: ${TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_START_WORKSPACE_TIMEOUT}
93
+ TS_WAIT_LOADER_PRESENCE_TIMEOUT: ${TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_WAIT_LOADER_PRESENCE_TIMEOUT}
94
+
95
+ TS_SAMPLE_LIST: ${PLUGIN_TEST_CONSTANTS_1.PLUGIN_TEST_CONSTANTS.TS_SAMPLE_LIST}
96
+
97
+ ${process.env.MOCHA_DIRECTORY ? 'MOCHA_DIRECTORY: ' + process.env.MOCHA_DIRECTORY : 'MOCHA_DIRECTORY is not set'}
98
+ ${process.env.USERSTORY ? 'USERSTORY: ' + process.env.USERSTORY : 'USERSTORY is not set'}
99
+ `;
100
+ if (REPORTER_CONSTANTS_1.REPORTER_CONSTANTS.TS_SELENIUM_PRINT_TIMEOUT_VARIABLES) {
101
+ launchInformation += '\n TS_SELENIUM_PRINT_TIMEOUT_VARIABLES is set to true: \n';
102
+ Object.entries(TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS).forEach(([key, value]) => (launchInformation += `\n ${key}: ${value}`));
103
+ }
104
+ else {
105
+ launchInformation += '\n to output timeout variables, set TS_SELENIUM_PRINT_TIMEOUT_VARIABLES to true';
106
+ }
107
+ launchInformation += '\n ######################################################## \n';
108
+ console.log(launchInformation);
109
+ rm.sync(REPORTER_CONSTANTS_1.REPORTER_CONSTANTS.TS_SELENIUM_REPORT_FOLDER);
110
+ });
111
+ runner.on('test', async (test) => {
112
+ if (!REPORTER_CONSTANTS_1.REPORTER_CONSTANTS.TS_SELENIUM_EXECUTION_SCREENCAST) {
113
+ return;
114
+ }
115
+ CheReporter_1.methodIndex = CheReporter_1.methodIndex + 1;
116
+ const currentMethodIndex = CheReporter_1.methodIndex;
117
+ let iterationIndex = 1;
118
+ while (!(test.state === 'passed' || test.state === 'failed')) {
119
+ await this.screenCatcher.catchMethodScreen(test.title, currentMethodIndex, iterationIndex);
120
+ iterationIndex = iterationIndex + 1;
121
+ await this.driverHelper.wait(REPORTER_CONSTANTS_1.REPORTER_CONSTANTS.TS_SELENIUM_DELAY_BETWEEN_SCREENSHOTS);
122
+ }
123
+ });
124
+ runner.on('pass', (test) => {
125
+ if (BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TS_LOAD_TESTS) {
126
+ const loadTestReportFolder = REPORTER_CONSTANTS_1.REPORTER_CONSTANTS.TS_SELENIUM_LOAD_TEST_REPORT_FOLDER;
127
+ const loadTestFilePath = loadTestReportFolder + '/load-test-results.txt';
128
+ const report = test.title + ': ' + test.duration + '\r';
129
+ if (!fs.existsSync(loadTestReportFolder)) {
130
+ fs.mkdirSync(loadTestReportFolder);
131
+ }
132
+ fs.appendFileSync(loadTestFilePath, report);
133
+ }
134
+ });
135
+ runner.on('end', () => {
136
+ // delete screencast folder if conditions matched
137
+ if (CheReporter_1.deleteScreencast && REPORTER_CONSTANTS_1.REPORTER_CONSTANTS.DELETE_SCREENCAST_IF_TEST_PASS) {
138
+ rm.sync(REPORTER_CONSTANTS_1.REPORTER_CONSTANTS.TS_SELENIUM_REPORT_FOLDER);
139
+ }
140
+ });
141
+ runner.on('fail', async (test) => {
142
+ Logger_1.Logger.error(`CheReporter runner.on.fail: ${test.fullTitle()} failed after ${test.duration}ms`);
143
+ // raise flag for keeping the screencast
144
+ CheReporter_1.deleteScreencast = false;
145
+ Logger_1.Logger.trace(`FullTitle:${test.fullTitle()}`);
146
+ const testFullTitle = StringUtil_1.StringUtil.sanitizeTitle(test.fullTitle());
147
+ Logger_1.Logger.trace(`FullTitleSanitized:${testFullTitle}`);
148
+ Logger_1.Logger.trace(`TestTitle:${test.title}`);
149
+ const testTitle = StringUtil_1.StringUtil.sanitizeTitle(test.title);
150
+ Logger_1.Logger.trace(`TestTitleSanitized:${testTitle}`);
151
+ const testReportDirPath = `${REPORTER_CONSTANTS_1.REPORTER_CONSTANTS.TS_SELENIUM_REPORT_FOLDER}/${testFullTitle}`;
152
+ const screenshotFileName = `${testReportDirPath}/screenshot-${testTitle}.png`;
153
+ const pageSourceFileName = `${testReportDirPath}/pagesource-${testTitle}.html`;
154
+ const browserLogsFileName = `${testReportDirPath}/browserlogs-${testTitle}.txt`;
155
+ const harFileName = `${testReportDirPath}/har-${testTitle}.har`;
156
+ // create reporter dir if not exist
157
+ const reportDirExists = fs.existsSync(REPORTER_CONSTANTS_1.REPORTER_CONSTANTS.TS_SELENIUM_REPORT_FOLDER);
158
+ if (!reportDirExists) {
159
+ fs.mkdirSync(REPORTER_CONSTANTS_1.REPORTER_CONSTANTS.TS_SELENIUM_REPORT_FOLDER);
160
+ }
161
+ // create dir for failed test report if not exist
162
+ const testReportDirExists = fs.existsSync(testReportDirPath);
163
+ if (!testReportDirExists) {
164
+ fs.mkdirSync(testReportDirPath);
165
+ }
166
+ // take screenshot and write to file
167
+ const screenshot = await this.driverHelper.getDriver().takeScreenshot();
168
+ const screenshotStream = fs.createWriteStream(screenshotFileName);
169
+ screenshotStream.write(Buffer.from(screenshot, 'base64'), () => screenshotStream.end());
170
+ // take page source and write to file
171
+ const pageSource = await this.driverHelper.getDriver().getPageSource();
172
+ const pageSourceStream = fs.createWriteStream(pageSourceFileName);
173
+ pageSourceStream.write(Buffer.from(pageSource), () => pageSourceStream.end());
174
+ // take browser console logs and write to file
175
+ const browserLogsEntries = await this.driverHelper.getDriver().manage().logs().get('browser');
176
+ let browserLogs = '';
177
+ browserLogsEntries.forEach((log) => {
178
+ browserLogs += `\"${log.level}\" \"${log.type}\" \"${log.message}\"\n`;
179
+ });
180
+ const browserLogsStream = fs.createWriteStream(browserLogsFileName);
181
+ browserLogsStream.write(Buffer.from(browserLogs), () => {
182
+ browserLogsStream.end();
183
+ });
184
+ // take networking logs and write to file
185
+ const networkLogsEntries = await this.driverHelper.getDriver().manage().logs().get('performance');
186
+ const events = networkLogsEntries.map((entry) => JSON.parse(entry.message).message);
187
+ const har = chromeHar.harFromMessages(events, { includeTextFromResponseBody: true });
188
+ this.redactHarContent(har);
189
+ const networkLogsStream = fs.createWriteStream(harFileName);
190
+ networkLogsStream.write(Buffer.from(JSON.stringify(har)), () => {
191
+ networkLogsStream.end();
192
+ });
193
+ });
194
+ }
195
+ redactHarContent(har) {
196
+ har.log?.entries?.forEach((entry) => {
197
+ let text = entry.request?.postData?.text;
198
+ if (text) {
199
+ text = StringUtil_1.StringUtil.updateUrlQueryValue(text, 'csrf', '<REDACTED>');
200
+ text = StringUtil_1.StringUtil.updateUrlQueryValue(text, 'username', '<REDACTED>');
201
+ entry.request.postData.text = StringUtil_1.StringUtil.updateUrlQueryValue(text, 'password', '<REDACTED>');
202
+ }
203
+ const cookies = entry.request?.cookies;
204
+ if (cookies) {
205
+ cookies.forEach((cookie) => {
206
+ if (cookie.name?.startsWith('_oauth_proxy')) {
207
+ cookie.value = '<REDACTED>';
208
+ }
209
+ });
210
+ }
211
+ const headers = entry.request?.headers;
212
+ if (headers) {
213
+ headers.forEach((header) => {
214
+ if (header.name?.toLowerCase() === 'cookie') {
215
+ header.value = StringUtil_1.StringUtil.updateCookieValue(header.value, '_oauth_proxy', '<REDACTED>');
216
+ header.value = StringUtil_1.StringUtil.updateCookieValue(header.value, '_oauth_proxy_csrf', '<REDACTED>');
217
+ }
218
+ });
219
+ }
220
+ });
221
+ }
222
+ };
223
+ CheReporter.methodIndex = 0;
224
+ CheReporter.deleteScreencast = true;
225
+ __decorate([
226
+ lazyInject(inversify_types_1.CLASSES.DriverHelper),
227
+ __metadata("design:type", DriverHelper_1.DriverHelper)
228
+ ], CheReporter.prototype, "driverHelper", void 0);
229
+ __decorate([
230
+ lazyInject(inversify_types_1.CLASSES.ScreenCatcher),
231
+ __metadata("design:type", ScreenCatcher_1.ScreenCatcher)
232
+ ], CheReporter.prototype, "screenCatcher", void 0);
233
+ CheReporter = CheReporter_1 = __decorate([
234
+ (0, inversify_1.injectable)(),
235
+ __metadata("design:paramtypes", [mocha.Runner, Object])
236
+ ], CheReporter);
237
+ module.exports = CheReporter;
238
+ //# sourceMappingURL=CheReporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheReporter.js","sourceRoot":"","sources":["../../utils/CheReporter.ts"],"names":[],"mappings":"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"}