@eclipse-che/che-e2e 7.74.0-dev-1d09cb7 → 7.74.0-dev-41d1364

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 (221) hide show
  1. package/.eslintignore +10 -0
  2. package/.eslintrc.js +183 -0
  3. package/.prettierignore +10 -0
  4. package/.prettierrc.json +10 -0
  5. package/README.md +47 -47
  6. package/configs/inversify.config.ts +13 -9
  7. package/configs/inversify.types.ts +29 -29
  8. package/configs/mocharc.ts +21 -24
  9. package/constants/API_TEST_CONSTANTS.ts +67 -0
  10. package/constants/BASE_TEST_CONSTANTS.ts +80 -0
  11. package/constants/CHROME_DRIVER_CONSTANTS.ts +54 -0
  12. package/constants/FACTORY_TEST_CONSTANTS.ts +61 -0
  13. package/constants/MONACO_CONSTANTS.ts +25 -0
  14. package/constants/OAUTH_CONSTANTS.ts +67 -0
  15. package/constants/PLUGIN_TEST_CONSTANTS.ts +15 -0
  16. package/constants/REPORTER_CONSTANTS.ts +53 -0
  17. package/constants/TIMEOUT_CONSTANTS.ts +131 -0
  18. package/dist/configs/inversify.config.js +14 -8
  19. package/dist/configs/inversify.config.js.map +1 -1
  20. package/dist/configs/inversify.types.js +2 -2
  21. package/dist/configs/inversify.types.js.map +1 -1
  22. package/dist/configs/mocharc.js +13 -16
  23. package/dist/configs/mocharc.js.map +1 -1
  24. package/dist/constants/{APITestConstants.js → API_TEST_CONSTANTS.js} +12 -12
  25. package/dist/constants/API_TEST_CONSTANTS.js.map +1 -0
  26. package/dist/constants/{BaseTestConstants.js → BASE_TEST_CONSTANTS.js} +16 -16
  27. package/dist/constants/BASE_TEST_CONSTANTS.js.map +1 -0
  28. package/dist/constants/{ChromeDriverConstants.js → CHROME_DRIVER_CONSTANTS.js} +13 -13
  29. package/dist/constants/CHROME_DRIVER_CONSTANTS.js.map +1 -0
  30. package/dist/constants/{FactoryTestConstants.js → FACTORY_TEST_CONSTANTS.js} +14 -13
  31. package/dist/constants/FACTORY_TEST_CONSTANTS.js.map +1 -0
  32. package/dist/constants/{MonacoConstants.js → MONACO_CONSTANTS.js} +7 -7
  33. package/dist/constants/MONACO_CONSTANTS.js.map +1 -0
  34. package/dist/constants/{OAuthConstants.js → OAUTH_CONSTANTS.js} +14 -14
  35. package/dist/constants/OAUTH_CONSTANTS.js.map +1 -0
  36. package/dist/constants/{PluginsTestConstants.js → PLUGIN_TEST_CONSTANTS.js} +7 -7
  37. package/dist/constants/PLUGIN_TEST_CONSTANTS.js.map +1 -0
  38. package/dist/constants/{ReporterConstants.js → REPORTER_CONSTANTS.js} +12 -12
  39. package/dist/constants/REPORTER_CONSTANTS.js.map +1 -0
  40. package/dist/constants/{TimeoutConstants.js → TIMEOUT_CONSTANTS.js} +24 -24
  41. package/dist/constants/TIMEOUT_CONSTANTS.js.map +1 -0
  42. package/dist/driver/ChromeDriver.js +12 -16
  43. package/dist/driver/ChromeDriver.js.map +1 -1
  44. package/dist/index.js +9 -9
  45. package/dist/index.js.map +1 -1
  46. package/dist/pageobjects/dashboard/CreateWorkspace.js +11 -11
  47. package/dist/pageobjects/dashboard/CreateWorkspace.js.map +1 -1
  48. package/dist/pageobjects/dashboard/Dashboard.js +16 -16
  49. package/dist/pageobjects/dashboard/Dashboard.js.map +1 -1
  50. package/dist/pageobjects/dashboard/Workspaces.js +28 -28
  51. package/dist/pageobjects/dashboard/Workspaces.js.map +1 -1
  52. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js +36 -25
  53. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js.map +1 -1
  54. package/dist/pageobjects/git-providers/OauthPage.js +20 -18
  55. package/dist/pageobjects/git-providers/OauthPage.js.map +1 -1
  56. package/dist/pageobjects/ide/CheCodeLocatorLoader.js +9 -9
  57. package/dist/pageobjects/ide/CheCodeLocatorLoader.js.map +1 -1
  58. package/dist/pageobjects/login/interfaces/ICheLoginPage.js +2 -2
  59. package/dist/pageobjects/login/interfaces/IOcpLoginPage.js +2 -2
  60. package/dist/pageobjects/login/kubernetes/DexLoginPage.js +5 -5
  61. package/dist/pageobjects/login/kubernetes/DexLoginPage.js.map +1 -1
  62. package/dist/pageobjects/login/kubernetes/KubernetesLoginPage.js +5 -5
  63. package/dist/pageobjects/login/kubernetes/KubernetesLoginPage.js.map +1 -1
  64. package/dist/pageobjects/login/openshift/OcpLoginPage.js +13 -13
  65. package/dist/pageobjects/login/openshift/OcpLoginPage.js.map +1 -1
  66. package/dist/pageobjects/login/openshift/OcpRedHatLoginPage.js +5 -5
  67. package/dist/pageobjects/login/openshift/OcpRedHatLoginPage.js.map +1 -1
  68. package/dist/pageobjects/login/openshift/OcpUserLoginPage.js +6 -6
  69. package/dist/pageobjects/login/openshift/OcpUserLoginPage.js.map +1 -1
  70. package/dist/pageobjects/login/openshift/RedHatLoginPage.js +5 -5
  71. package/dist/pageobjects/login/openshift/RedHatLoginPage.js.map +1 -1
  72. package/dist/pageobjects/login/openshift/RegularUserOcpCheLoginPage.js +8 -8
  73. package/dist/pageobjects/login/openshift/RegularUserOcpCheLoginPage.js.map +1 -1
  74. package/dist/pageobjects/openshift/OcpApplicationPage.js +5 -5
  75. package/dist/pageobjects/openshift/OcpApplicationPage.js.map +1 -1
  76. package/dist/pageobjects/openshift/OcpImportFromGitPage.js +4 -4
  77. package/dist/pageobjects/openshift/OcpImportFromGitPage.js.map +1 -1
  78. package/dist/pageobjects/openshift/OcpMainPage.js +6 -6
  79. package/dist/pageobjects/openshift/OcpMainPage.js.map +1 -1
  80. package/dist/specs/MochaHooks.js +26 -23
  81. package/dist/specs/MochaHooks.js.map +1 -1
  82. package/dist/specs/SmokeTest.spec.js +11 -11
  83. package/dist/specs/SmokeTest.spec.js.map +1 -1
  84. package/dist/specs/api/ContainerOverridesAPI.spec.js +10 -1
  85. package/dist/specs/api/ContainerOverridesAPI.spec.js.map +1 -1
  86. package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js +26 -15
  87. package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js.map +1 -1
  88. package/dist/specs/api/EmptyWorkspaceAPI.spec.js +17 -11
  89. package/dist/specs/api/EmptyWorkspaceAPI.spec.js.map +1 -1
  90. package/dist/specs/api/PodOverridesAPI.spec.js +12 -3
  91. package/dist/specs/api/PodOverridesAPI.spec.js.map +1 -1
  92. package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js +5 -5
  93. package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js.map +1 -1
  94. package/dist/specs/dashboard-samples/Quarkus.spec.js +7 -7
  95. package/dist/specs/dashboard-samples/Quarkus.spec.js.map +1 -1
  96. package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js +41 -41
  97. package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js.map +1 -1
  98. package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js +14 -9
  99. package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js.map +1 -1
  100. package/dist/specs/factory/Factory.spec.js +25 -25
  101. package/dist/specs/factory/Factory.spec.js.map +1 -1
  102. package/dist/specs/factory/NoSetupRepoFactory.spec.js +37 -34
  103. package/dist/specs/factory/NoSetupRepoFactory.spec.js.map +1 -1
  104. package/dist/specs/factory/RefusedOAuthFactory.spec.js +33 -33
  105. package/dist/specs/factory/RefusedOAuthFactory.spec.js.map +1 -1
  106. package/dist/specs/miscellaneous/PredefinedNamespace.spec.js +12 -3
  107. package/dist/specs/miscellaneous/PredefinedNamespace.spec.js.map +1 -1
  108. package/dist/tests-library/LoginTests.js +7 -7
  109. package/dist/tests-library/LoginTests.js.map +1 -1
  110. package/dist/tests-library/ProjectAndFileTests.js +7 -5
  111. package/dist/tests-library/ProjectAndFileTests.js.map +1 -1
  112. package/dist/tests-library/WorkspaceHandlingTests.js +16 -13
  113. package/dist/tests-library/WorkspaceHandlingTests.js.map +1 -1
  114. package/dist/utils/BrowserTabsUtil.js +19 -14
  115. package/dist/utils/BrowserTabsUtil.js.map +1 -1
  116. package/dist/utils/CheReporter.js +44 -44
  117. package/dist/utils/CheReporter.js.map +1 -1
  118. package/dist/utils/DevWorkspaceConfigurationHelper.js +17 -8
  119. package/dist/utils/DevWorkspaceConfigurationHelper.js.map +1 -1
  120. package/dist/utils/DevfilesRegistryHelper.js +19 -13
  121. package/dist/utils/DevfilesRegistryHelper.js.map +1 -1
  122. package/dist/utils/DriverHelper.js +64 -66
  123. package/dist/utils/DriverHelper.js.map +1 -1
  124. package/dist/utils/KubernetesCommandLineToolsExecutor.js +28 -24
  125. package/dist/utils/KubernetesCommandLineToolsExecutor.js.map +1 -1
  126. package/dist/utils/Logger.js +18 -19
  127. package/dist/utils/Logger.js.map +1 -1
  128. package/dist/utils/ScreenCatcher.js +18 -12
  129. package/dist/utils/ScreenCatcher.js.map +1 -1
  130. package/dist/utils/ShellExecutor.js +9 -0
  131. package/dist/utils/ShellExecutor.js.map +1 -1
  132. package/dist/utils/StringUtil.js +15 -7
  133. package/dist/utils/StringUtil.js.map +1 -1
  134. package/dist/utils/request-handlers/CheApiRequestHandler.js +27 -27
  135. package/dist/utils/request-handlers/CheApiRequestHandler.js.map +1 -1
  136. package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js +10 -6
  137. package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js.map +1 -1
  138. package/dist/utils/request-handlers/headers/IAuthorizationHeaderHandler.js +2 -2
  139. package/dist/utils/workspace/ApiUrlResolver.js +3 -3
  140. package/dist/utils/workspace/ApiUrlResolver.js.map +1 -1
  141. package/dist/utils/workspace/ITestWorkspaceUtil.js +2 -2
  142. package/dist/utils/workspace/TestWorkspaceUtil.js +21 -19
  143. package/dist/utils/workspace/TestWorkspaceUtil.js.map +1 -1
  144. package/dist/utils/workspace/WorkspaceStatus.js +2 -2
  145. package/dist/utils/workspace/WorkspaceStatus.js.map +1 -1
  146. package/driver/ChromeDriver.ts +44 -50
  147. package/driver/IDriver.ts +3 -3
  148. package/index.ts +9 -9
  149. package/package.json +59 -49
  150. package/pageobjects/dashboard/CreateWorkspace.ts +64 -55
  151. package/pageobjects/dashboard/Dashboard.ts +101 -100
  152. package/pageobjects/dashboard/Workspaces.ts +196 -164
  153. package/pageobjects/dashboard/workspace-details/WorkspaceDetails.ts +150 -125
  154. package/pageobjects/git-providers/OauthPage.ts +177 -166
  155. package/pageobjects/ide/CheCodeLocatorLoader.ts +49 -46
  156. package/pageobjects/login/interfaces/ICheLoginPage.ts +3 -3
  157. package/pageobjects/login/interfaces/IOcpLoginPage.ts +3 -3
  158. package/pageobjects/login/kubernetes/DexLoginPage.ts +31 -30
  159. package/pageobjects/login/kubernetes/KubernetesLoginPage.ts +15 -14
  160. package/pageobjects/login/openshift/OcpLoginPage.ts +61 -54
  161. package/pageobjects/login/openshift/OcpRedHatLoginPage.ts +29 -24
  162. package/pageobjects/login/openshift/OcpUserLoginPage.ts +15 -18
  163. package/pageobjects/login/openshift/RedHatLoginPage.ts +48 -46
  164. package/pageobjects/login/openshift/RegularUserOcpCheLoginPage.ts +38 -34
  165. package/pageobjects/openshift/OcpApplicationPage.ts +21 -20
  166. package/pageobjects/openshift/OcpImportFromGitPage.ts +70 -68
  167. package/pageobjects/openshift/OcpMainPage.ts +69 -68
  168. package/specs/MochaHooks.ts +59 -50
  169. package/specs/SmokeTest.spec.ts +43 -40
  170. package/specs/api/ContainerOverridesAPI.spec.ts +33 -26
  171. package/specs/api/DevfileAcceptanceTestAPI.spec.ts +106 -95
  172. package/specs/api/EmptyWorkspaceAPI.spec.ts +62 -57
  173. package/specs/api/PodOverridesAPI.spec.ts +42 -33
  174. package/specs/dashboard-samples/EmptyWorkspace.spec.ts +31 -31
  175. package/specs/dashboard-samples/Quarkus.spec.ts +34 -34
  176. package/specs/dashboard-samples/RecommendedExtensions.spec.ts +192 -174
  177. package/specs/devconsole-intergration/DevConsoleIntegration.spec.ts +61 -52
  178. package/specs/factory/Factory.spec.ts +178 -168
  179. package/specs/factory/NoSetupRepoFactory.spec.ts +226 -211
  180. package/specs/factory/RefusedOAuthFactory.spec.ts +218 -204
  181. package/specs/miscellaneous/PredefinedNamespace.spec.ts +64 -54
  182. package/tests-library/LoginTests.ts +34 -32
  183. package/tests-library/ProjectAndFileTests.ts +21 -18
  184. package/tests-library/WorkspaceHandlingTests.ts +98 -89
  185. package/tsconfig.json +15 -15
  186. package/utils/BrowserTabsUtil.ts +103 -97
  187. package/utils/CheReporter.ts +141 -145
  188. package/utils/DevWorkspaceConfigurationHelper.ts +70 -61
  189. package/utils/DevfilesRegistryHelper.ts +67 -58
  190. package/utils/DriverHelper.ts +726 -700
  191. package/utils/KubernetesCommandLineToolsExecutor.ts +196 -180
  192. package/utils/Logger.ts +102 -125
  193. package/utils/ScreenCatcher.ts +57 -46
  194. package/utils/ShellExecutor.ts +19 -11
  195. package/utils/StringUtil.ts +40 -32
  196. package/utils/request-handlers/CheApiRequestHandler.ts +91 -88
  197. package/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.ts +32 -21
  198. package/utils/request-handlers/headers/IAuthorizationHeaderHandler.ts +3 -3
  199. package/utils/workspace/ApiUrlResolver.ts +31 -26
  200. package/utils/workspace/ITestWorkspaceUtil.ts +31 -31
  201. package/utils/workspace/TestWorkspaceUtil.ts +152 -145
  202. package/utils/workspace/WorkspaceStatus.ts +5 -5
  203. package/constants/APITestConstants.ts +0 -57
  204. package/constants/BaseTestConstants.ts +0 -68
  205. package/constants/ChromeDriverConstants.ts +0 -46
  206. package/constants/FactoryTestConstants.ts +0 -51
  207. package/constants/MonacoConstants.ts +0 -22
  208. package/constants/OAuthConstants.ts +0 -57
  209. package/constants/PluginsTestConstants.ts +0 -15
  210. package/constants/ReporterConstants.ts +0 -45
  211. package/constants/TimeoutConstants.ts +0 -113
  212. package/dist/constants/APITestConstants.js.map +0 -1
  213. package/dist/constants/BaseTestConstants.js.map +0 -1
  214. package/dist/constants/ChromeDriverConstants.js.map +0 -1
  215. package/dist/constants/FactoryTestConstants.js.map +0 -1
  216. package/dist/constants/MonacoConstants.js.map +0 -1
  217. package/dist/constants/OAuthConstants.js.map +0 -1
  218. package/dist/constants/PluginsTestConstants.js.map +0 -1
  219. package/dist/constants/ReporterConstants.js.map +0 -1
  220. package/dist/constants/TimeoutConstants.js.map +0 -1
  221. package/tslint.json +0 -126
@@ -1,5 +1,5 @@
1
- /*********************************************************************
2
- * Copyright (c) 2019 Red Hat, Inc.
1
+ /** *******************************************************************
2
+ * copyright (c) 2019 Red Hat, Inc.
3
3
  *
4
4
  * This program and the accompanying materials are made
5
5
  * available under the terms of the Eclipse Public License 2.0
@@ -12,63 +12,66 @@ import { getLocatorsPath } from 'vscode-extension-tester-locators';
12
12
  import { LocatorDiff, Locators } from 'monaco-page-objects';
13
13
  import { By } from 'selenium-webdriver';
14
14
  import clone from 'clone-deep';
15
- import { MonacoConstants } from '../../constants/MonacoConstants';
15
+ import { MONACO_CONSTANTS } from '../../constants/MONACO_CONSTANTS';
16
16
 
17
17
  /**
18
- * This class allows us to change or add some specific locators base on "monaco-page-object" and "vscode-extension-tester-locators".
18
+ * this class allows us to change or add some specific locators base on "monaco-page-object" and "vscode-extension-tester-locators".
19
19
  * Use method webLocatorDiff(). To change place locator into field "locators", to add - "extras".
20
20
  * To see full locators list check "node_modules/vscode-extension-tester-locators/out/lib".
21
21
  */
22
22
 
23
23
  export class CheCodeLocatorLoader extends LocatorLoader {
24
- readonly webCheCodeLocators: Locators;
24
+ readonly webCheCodeLocators: Locators;
25
25
 
26
- constructor() {
27
- super(MonacoConstants.TS_SELENIUM_MONACO_PAGE_OBJECTS_BASE_VERSION, MonacoConstants.TS_SELENIUM_MONACO_PAGE_OBJECTS_BASE_VERSION, getLocatorsPath());
28
- this.webCheCodeLocators = this.mergeLocators() as Locators;
29
- }
26
+ constructor() {
27
+ super(
28
+ MONACO_CONSTANTS.TS_SELENIUM_MONACO_PAGE_OBJECTS_BASE_VERSION,
29
+ MONACO_CONSTANTS.TS_SELENIUM_MONACO_PAGE_OBJECTS_BASE_VERSION,
30
+ getLocatorsPath()
31
+ );
32
+ this.webCheCodeLocators = this.mergeLocators();
33
+ }
30
34
 
31
- private webLocatorDiff(): LocatorDiff {
32
- return {
33
- locators: {
34
- WelcomeContent: {
35
- text: By.xpath('//*[@class="dialog-message-text" and contains(text(), "trust")]'),
36
- button: By.xpath('//a[contains(., "trust")]')
37
- }
38
- },
39
- extras: {
40
- ExtensionsViewSection: {
41
- requireReloadButton: By.xpath('//a[text()=\'Reload Required\']')
42
- }
43
- }
44
- };
45
- }
35
+ private webLocatorDiff(): LocatorDiff {
36
+ return {
37
+ locators: {
38
+ WelcomeContent: {
39
+ text: By.xpath('//*[@class="dialog-message-text" and contains(text(), "trust")]'),
40
+ button: By.xpath('//a[contains(., "trust")]')
41
+ }
42
+ },
43
+ extras: {
44
+ ExtensionsViewSection: {
45
+ requireReloadButton: By.xpath('//a[text()="Reload Required"]')
46
+ }
47
+ }
48
+ };
49
+ }
46
50
 
47
- private merge(target: any, obj: any): object {
48
- for (const key in obj) {
49
- if (!Object.prototype.hasOwnProperty.call(obj, key)) {
50
- continue;
51
- }
51
+ private merge(target: any, obj: any): object {
52
+ for (const key in obj) {
53
+ if (!Object.prototype.hasOwnProperty.call(obj, key)) {
54
+ continue;
55
+ }
52
56
 
53
- let oldVal: any = obj[key];
54
- let newVal: any = target[key];
57
+ const oldVal: any = obj[key];
58
+ const newVal: any = target[key];
55
59
 
56
- if (typeof (newVal) === 'object' && typeof (oldVal) === 'object') {
57
- target[key] = this.merge(newVal, oldVal);
58
- } else {
59
- target[key] = clone(oldVal);
60
- }
61
- }
62
- return target;
63
- }
60
+ if (typeof newVal === 'object' && typeof oldVal === 'object') {
61
+ target[key] = this.merge(newVal, oldVal);
62
+ } else {
63
+ target[key] = clone(oldVal);
64
+ }
65
+ }
66
+ return target;
67
+ }
64
68
 
65
- private mergeLocators(): Locators {
66
- const target: Locators = super.loadLocators();
69
+ private mergeLocators(): Locators {
70
+ const target: Locators = super.loadLocators();
67
71
 
68
- this.merge(target, this.webLocatorDiff().locators as Locators);
69
- this.merge(target, this.webLocatorDiff().extras as Locators);
72
+ this.merge(target, this.webLocatorDiff().locators as Locators);
73
+ this.merge(target, this.webLocatorDiff().extras as Locators);
70
74
 
71
- return target;
72
- }
75
+ return target;
76
+ }
73
77
  }
74
-
@@ -1,5 +1,5 @@
1
- /*********************************************************************
2
- * Copyright (c) 2019-2023 Red Hat, Inc.
1
+ /** *******************************************************************
2
+ * copyright (c) 2019-2023 Red Hat, Inc.
3
3
  *
4
4
  * This program and the accompanying materials are made
5
5
  * available under the terms of the Eclipse Public License 2.0
@@ -9,5 +9,5 @@
9
9
  **********************************************************************/
10
10
 
11
11
  export interface ICheLoginPage {
12
- login(): void;
12
+ login(): Promise<void>;
13
13
  }
@@ -1,5 +1,5 @@
1
- /*********************************************************************
2
- * Copyright (c) 2019-2023 Red Hat, Inc.
1
+ /** *******************************************************************
2
+ * copyright (c) 2019-2023 Red Hat, Inc.
3
3
  *
4
4
  * This program and the accompanying materials are made
5
5
  * available under the terms of the Eclipse Public License 2.0
@@ -9,5 +9,5 @@
9
9
  **********************************************************************/
10
10
 
11
11
  export interface IOcpLoginPage {
12
- login(): void;
12
+ login(): void;
13
13
  }
@@ -1,5 +1,5 @@
1
- /*********************************************************************
2
- * Copyright (c) 2019-2023 Red Hat, Inc.
1
+ /** *******************************************************************
2
+ * copyright (c) 2019-2023 Red Hat, Inc.
3
3
  *
4
4
  * This program and the accompanying materials are made
5
5
  * available under the terms of the Eclipse Public License 2.0
@@ -12,47 +12,48 @@ import { inject, injectable } from 'inversify';
12
12
  import { CLASSES } from '../../../configs/inversify.types';
13
13
  import { Logger } from '../../../utils/Logger';
14
14
  import { By } from 'selenium-webdriver';
15
- import { TimeoutConstants } from '../../../constants/TimeoutConstants';
15
+ import { TIMEOUT_CONSTANTS } from '../../../constants/TIMEOUT_CONSTANTS';
16
16
  import { DriverHelper } from '../../../utils/DriverHelper';
17
17
 
18
18
  @injectable()
19
19
  export class DexLoginPage {
20
+ private static readonly dexPageContentContainer: By = By.className('dex-container');
21
+ private static readonly loginInput: By = By.id('login');
22
+ private static readonly passwordInput: By = By.id('password');
23
+ private static readonly submitButton: By = By.id('submit-login');
20
24
 
21
- private static readonly dexPageContentContainer: By = By.className('dex-container');
22
- private static readonly loginInput: By = By.id('login');
23
- private static readonly passwordInput: By = By.id('password');
24
- private static readonly submitButton: By = By.id('submit-login');
25
+ constructor(
26
+ @inject(CLASSES.DriverHelper)
27
+ private readonly driverHelper: DriverHelper
28
+ ) {}
25
29
 
26
- constructor(
27
- @inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper) { }
30
+ async waitDexLoginPage(): Promise<void> {
31
+ Logger.debug();
28
32
 
29
- async waitDexLoginPage(): Promise<void> {
30
- Logger.debug();
33
+ await this.driverHelper.waitVisibility(DexLoginPage.dexPageContentContainer, TIMEOUT_CONSTANTS.TS_SELENIUM_LOAD_PAGE_TIMEOUT);
34
+ }
31
35
 
32
- await this.driverHelper.waitVisibility(DexLoginPage.dexPageContentContainer, TimeoutConstants.TS_SELENIUM_LOAD_PAGE_TIMEOUT);
33
- }
36
+ async clickOnLoginButton(): Promise<void> {
37
+ Logger.debug();
34
38
 
35
- async clickOnLoginButton(): Promise<void> {
36
- Logger.debug();
39
+ await this.driverHelper.waitAndClick(DexLoginPage.submitButton);
40
+ }
37
41
 
38
- await this.driverHelper.waitAndClick(DexLoginPage.submitButton);
39
- }
42
+ async enterUserNameKubernetes(userName: string): Promise<void> {
43
+ Logger.debug();
40
44
 
41
- async enterUserNameKubernetes(userName: string): Promise<void> {
42
- Logger.debug();
45
+ await this.driverHelper.enterValue(DexLoginPage.loginInput, userName);
46
+ }
43
47
 
44
- await this.driverHelper.enterValue(DexLoginPage.loginInput, userName);
45
- }
48
+ async enterPasswordKubernetes(password: string): Promise<void> {
49
+ Logger.debug();
46
50
 
47
- async enterPasswordKubernetes(password: string): Promise<void> {
48
- Logger.debug();
51
+ await this.driverHelper.enterValue(DexLoginPage.passwordInput, password);
52
+ }
49
53
 
50
- await this.driverHelper.enterValue(DexLoginPage.passwordInput, password);
51
- }
54
+ async waitDexLoginPageDisappearance(): Promise<void> {
55
+ Logger.debug();
52
56
 
53
- async waitDexLoginPageDisappearance(): Promise<void> {
54
- Logger.debug();
55
-
56
- await this.driverHelper.waitDisappearance(DexLoginPage.dexPageContentContainer, TimeoutConstants.TS_SELENIUM_LOAD_PAGE_TIMEOUT);
57
- }
57
+ await this.driverHelper.waitDisappearance(DexLoginPage.dexPageContentContainer, TIMEOUT_CONSTANTS.TS_SELENIUM_LOAD_PAGE_TIMEOUT);
58
+ }
58
59
  }
@@ -1,5 +1,5 @@
1
- /*********************************************************************
2
- * Copyright (c) 2019-2023 Red Hat, Inc.
1
+ /** *******************************************************************
2
+ * copyright (c) 2019-2023 Red Hat, Inc.
3
3
  *
4
4
  * This program and the accompanying materials are made
5
5
  * available under the terms of the Eclipse Public License 2.0
@@ -13,21 +13,22 @@ import { CLASSES } from '../../../configs/inversify.types';
13
13
  import { Logger } from '../../../utils/Logger';
14
14
  import { ICheLoginPage } from '../interfaces/ICheLoginPage';
15
15
  import { DexLoginPage } from './DexLoginPage';
16
- import { OAuthConstants } from '../../../constants/OAuthConstants';
16
+ import { OAUTH_CONSTANTS } from '../../../constants/OAUTH_CONSTANTS';
17
17
 
18
18
  @injectable()
19
19
  export class KubernetesLoginPage implements ICheLoginPage {
20
+ constructor(
21
+ @inject(CLASSES.DexLoginPage)
22
+ private readonly dexLoginPage: DexLoginPage
23
+ ) {}
20
24
 
21
- constructor(
22
- @inject(CLASSES.DexLoginPage) private readonly dexLoginPage: DexLoginPage) { }
25
+ async login(): Promise<void> {
26
+ Logger.debug();
23
27
 
24
- async login(): Promise<void> {
25
- Logger.debug();
26
-
27
- await this.dexLoginPage.waitDexLoginPage();
28
- await this.dexLoginPage.enterUserNameKubernetes(OAuthConstants.TS_SELENIUM_K8S_USERNAME);
29
- await this.dexLoginPage.enterPasswordKubernetes(OAuthConstants.TS_SELENIUM_K8S_PASSWORD);
30
- await this.dexLoginPage.clickOnLoginButton();
31
- await this.dexLoginPage.waitDexLoginPageDisappearance();
32
- }
28
+ await this.dexLoginPage.waitDexLoginPage();
29
+ await this.dexLoginPage.enterUserNameKubernetes(OAUTH_CONSTANTS.TS_SELENIUM_K8S_USERNAME);
30
+ await this.dexLoginPage.enterPasswordKubernetes(OAUTH_CONSTANTS.TS_SELENIUM_K8S_PASSWORD);
31
+ await this.dexLoginPage.clickOnLoginButton();
32
+ await this.dexLoginPage.waitDexLoginPageDisappearance();
33
+ }
33
34
  }
@@ -1,5 +1,5 @@
1
- /*********************************************************************
2
- * Copyright (c) 2019-2023 Red Hat, Inc.
1
+ /** *******************************************************************
2
+ * copyright (c) 2019-2023 Red Hat, Inc.
3
3
  *
4
4
  * This program and the accompanying materials are made
5
5
  * available under the terms of the Eclipse Public License 2.0
@@ -13,80 +13,87 @@ import { DriverHelper } from '../../../utils/DriverHelper';
13
13
  import { CLASSES } from '../../../configs/inversify.types';
14
14
  import { By } from 'selenium-webdriver';
15
15
  import { Logger } from '../../../utils/Logger';
16
- import { TimeoutConstants } from '../../../constants/TimeoutConstants';
17
- import { OAuthConstants } from '../../../constants/OAuthConstants';
16
+ import { TIMEOUT_CONSTANTS } from '../../../constants/TIMEOUT_CONSTANTS';
17
+ import { OAUTH_CONSTANTS } from '../../../constants/OAUTH_CONSTANTS';
18
18
 
19
19
  @injectable()
20
20
  export class OcpLoginPage {
21
+ private static readonly LOGIN_PAGE_OPENSHIFT_XPATH: string = '//*[contains(text(), "Welcome")]';
21
22
 
22
- private static readonly LOGIN_PAGE_OPENSHIFT_XPATH: string = '//*[contains(text(), \'Welcome\')]';
23
+ constructor(
24
+ @inject(CLASSES.DriverHelper)
25
+ private readonly driverHelper: DriverHelper
26
+ ) {}
23
27
 
24
- constructor(
25
- @inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper) { }
28
+ async waitOpenShiftLoginWelcomePage(): Promise<void> {
29
+ Logger.debug();
26
30
 
27
- async waitOpenShiftLoginWelcomePage(): Promise<void> {
28
- Logger.debug();
31
+ await this.driverHelper.waitVisibility(
32
+ By.xpath(OcpLoginPage.LOGIN_PAGE_OPENSHIFT_XPATH),
33
+ TIMEOUT_CONSTANTS.TS_SELENIUM_LOAD_PAGE_TIMEOUT
34
+ );
35
+ }
29
36
 
30
- await this.driverHelper.waitVisibility(By.xpath(OcpLoginPage.LOGIN_PAGE_OPENSHIFT_XPATH), TimeoutConstants.TS_SELENIUM_LOAD_PAGE_TIMEOUT);
31
- }
37
+ async clickOnLoginProviderTitle(): Promise<void> {
38
+ Logger.debug();
32
39
 
33
- async clickOnLoginProviderTitle(): Promise<void> {
34
- Logger.debug();
40
+ const loginProviderTitleLocator: By = By.xpath(`//a[text()="${OAUTH_CONSTANTS.TS_OCP_LOGIN_PAGE_PROVIDER_TITLE}"]`);
41
+ await this.driverHelper.waitAndClick(loginProviderTitleLocator, TIMEOUT_CONSTANTS.TS_SELENIUM_WAIT_FOR_URL);
42
+ }
35
43
 
36
- const loginProviderTitleLocator: By = By.xpath(`//a[text()=\'${OAuthConstants.TS_OCP_LOGIN_PAGE_PROVIDER_TITLE}\']`);
37
- await this.driverHelper.waitAndClick(loginProviderTitleLocator, TimeoutConstants.TS_SELENIUM_WAIT_FOR_URL);
38
- }
44
+ async isIdentityProviderLinkVisible(): Promise<boolean> {
45
+ Logger.debug();
39
46
 
40
- async isIdentityProviderLinkVisible(): Promise<boolean> {
41
- Logger.debug();
47
+ const loginWithHtpaswdLocator: By = By.xpath(`//a[text()="${OAUTH_CONSTANTS.TS_OCP_LOGIN_PAGE_PROVIDER_TITLE}"]`);
48
+ return await this.driverHelper.waitVisibilityBoolean(loginWithHtpaswdLocator, 3, 5000);
49
+ }
42
50
 
43
- const loginWithHtpaswdLocator: By = By.xpath(`//a[text()=\'${OAuthConstants.TS_OCP_LOGIN_PAGE_PROVIDER_TITLE}\']`);
44
- return await this.driverHelper.waitVisibilityBoolean(loginWithHtpaswdLocator, 3, 5000);
45
- }
51
+ async isAuthorizeOpenShiftIdentityProviderPageVisible(): Promise<boolean> {
52
+ Logger.debug();
46
53
 
47
- async isAuthorizeOpenShiftIdentityProviderPageVisible(): Promise<boolean> {
48
- Logger.debug();
54
+ const authorizeOpenshiftIdentityProviderPageLocator: By = By.xpath('//h1[text()="Authorize Access"]');
55
+ return await this.driverHelper.isVisible(authorizeOpenshiftIdentityProviderPageLocator);
56
+ }
49
57
 
50
- const authorizeOpenshiftIdentityProviderPageLocator: By = By.xpath('//h1[text()=\'Authorize Access\']');
51
- return await this.driverHelper.isVisible(authorizeOpenshiftIdentityProviderPageLocator);
52
- }
58
+ async waitAuthorizeOpenShiftIdentityProviderPage(): Promise<void> {
59
+ Logger.debug();
53
60
 
54
- async waitAuthorizeOpenShiftIdentityProviderPage(): Promise<void> {
55
- Logger.debug();
61
+ const authorizeOpenshiftIdentityProviderPageLocator: By = By.xpath('//h1[text()="Authorize Access"]');
62
+ await this.driverHelper.waitVisibility(
63
+ authorizeOpenshiftIdentityProviderPageLocator,
64
+ TIMEOUT_CONSTANTS.TS_SELENIUM_LOAD_PAGE_TIMEOUT
65
+ );
66
+ }
56
67
 
57
- const authorizeOpenshiftIdentityProviderPageLocator: By = By.xpath('//h1[text()=\'Authorize Access\']');
58
- await this.driverHelper.waitVisibility(authorizeOpenshiftIdentityProviderPageLocator, TimeoutConstants.TS_SELENIUM_LOAD_PAGE_TIMEOUT);
59
- }
68
+ async clickOnApproveAuthorizeAccessButton(): Promise<void> {
69
+ Logger.debug();
60
70
 
61
- async clickOnApproveAuthorizeAccessButton(): Promise<void> {
62
- Logger.debug();
71
+ const approveAuthorizeAccessOcpLocator: By = By.css('input[name="approve"]');
72
+ await this.driverHelper.waitAndClick(approveAuthorizeAccessOcpLocator);
73
+ }
63
74
 
64
- const approveAuthorizeAccessOcpLocator: By = By.css('input[name=\'approve\']');
65
- await this.driverHelper.waitAndClick(approveAuthorizeAccessOcpLocator);
66
- }
75
+ async enterUserNameOpenShift(userName: string): Promise<void> {
76
+ Logger.debug(`"${userName}"`);
67
77
 
68
- async enterUserNameOpenShift(userName: string): Promise<void> {
69
- Logger.debug(`"${userName}"`);
78
+ await this.driverHelper.enterValue(By.id('inputUsername'), userName);
79
+ }
70
80
 
71
- await this.driverHelper.enterValue(By.id('inputUsername'), userName);
72
- }
81
+ async enterPasswordOpenShift(passw: string): Promise<void> {
82
+ Logger.debug();
73
83
 
74
- async enterPasswordOpenShift(passw: string): Promise<void> {
75
- Logger.debug();
84
+ await this.driverHelper.enterValue(By.id('inputPassword'), passw);
85
+ }
76
86
 
77
- await this.driverHelper.enterValue(By.id('inputPassword'), passw);
78
- }
87
+ async clickOnLoginButton(): Promise<void> {
88
+ Logger.debug();
79
89
 
80
- async clickOnLoginButton(): Promise<void> {
81
- Logger.debug();
90
+ const loginButtonLocator: By = By.css('button[type=submit]');
91
+ await this.driverHelper.waitAndClick(loginButtonLocator);
92
+ }
82
93
 
83
- const loginButtonLocator: By = By.css('button[type=submit]');
84
- await this.driverHelper.waitAndClick(loginButtonLocator);
85
- }
94
+ async waitDisappearanceOpenShiftLoginWelcomePage(): Promise<void> {
95
+ Logger.debug();
86
96
 
87
- async waitDisappearanceOpenShiftLoginWelcomePage(): Promise<void> {
88
- Logger.debug();
89
-
90
- await this.driverHelper.waitDisappearance(By.xpath(OcpLoginPage.LOGIN_PAGE_OPENSHIFT_XPATH));
91
- }
97
+ await this.driverHelper.waitDisappearance(By.xpath(OcpLoginPage.LOGIN_PAGE_OPENSHIFT_XPATH));
98
+ }
92
99
  }
@@ -1,5 +1,5 @@
1
- /*********************************************************************
2
- * Copyright (c) 2019 Red Hat, Inc.
1
+ /** *******************************************************************
2
+ * copyright (c) 2019 Red Hat, Inc.
3
3
  *
4
4
  * This program and the accompanying materials are made
5
5
  * available under the terms of the Eclipse Public License 2.0
@@ -12,7 +12,7 @@ import { inject, injectable } from 'inversify';
12
12
  import { RedHatLoginPage } from './RedHatLoginPage';
13
13
  import { CLASSES } from '../../../configs/inversify.types';
14
14
  import { By } from 'selenium-webdriver';
15
- import { TimeoutConstants } from '../../../constants/TimeoutConstants';
15
+ import { TIMEOUT_CONSTANTS } from '../../../constants/TIMEOUT_CONSTANTS';
16
16
  import { ICheLoginPage } from '../interfaces/ICheLoginPage';
17
17
  import { OcpLoginPage } from './OcpLoginPage';
18
18
  import { DriverHelper } from '../../../utils/DriverHelper';
@@ -20,30 +20,35 @@ import { Logger } from '../../../utils/Logger';
20
20
 
21
21
  @injectable()
22
22
  export class OcpRedHatLoginPage implements ICheLoginPage {
23
+ private readonly OPEN_SHIFT_LOGIN_LANDING_PAGE_LOCATOR: string = '//div[@class="panel-login"]';
24
+ private readonly OPEN_SHIFT_LOGIN_LANDING_PAGE_BUTTON_LOCATOR: string = `${this.OPEN_SHIFT_LOGIN_LANDING_PAGE_LOCATOR}/div[contains(@class, 'panel-content')]/form/button`;
23
25
 
24
- private readonly OPEN_SHIFT_LOGIN_LANDING_PAGE_LOCATOR: string = `//div[@class='panel-login']`;
25
- private readonly OPEN_SHIFT_LOGIN_LANDING_PAGE_BUTTON_LOCATOR: string = `${this.OPEN_SHIFT_LOGIN_LANDING_PAGE_LOCATOR}/div[contains(@class, 'panel-content')]/form/button`;
26
+ constructor(
27
+ @inject(CLASSES.OcpLoginPage) private readonly ocpLogin: OcpLoginPage,
28
+ @inject(CLASSES.RedHatLoginPage)
29
+ private readonly redHatLogin: RedHatLoginPage,
30
+ @inject(CLASSES.DriverHelper)
31
+ private readonly driverHelper: DriverHelper
32
+ ) {}
26
33
 
27
- constructor(
28
- @inject(CLASSES.OcpLoginPage) private readonly ocpLogin: OcpLoginPage,
29
- @inject(CLASSES.RedHatLoginPage) private readonly redHatLogin: RedHatLoginPage,
30
- @inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper) { }
34
+ async login(): Promise<void> {
35
+ Logger.debug();
31
36
 
32
- async login(): Promise<void> {
33
- Logger.debug();
37
+ Logger.debug('wait for LogInWithOpenShift page and click button');
38
+ await this.driverHelper.waitPresence(
39
+ By.xpath(this.OPEN_SHIFT_LOGIN_LANDING_PAGE_LOCATOR),
40
+ TIMEOUT_CONSTANTS.TS_SELENIUM_LOAD_PAGE_TIMEOUT
41
+ );
42
+ await this.driverHelper.waitAndClick(By.xpath(this.OPEN_SHIFT_LOGIN_LANDING_PAGE_BUTTON_LOCATOR));
34
43
 
35
- Logger.debug('wait for LogInWithOpenShift page and click button');
36
- await this.driverHelper.waitPresence(By.xpath(this.OPEN_SHIFT_LOGIN_LANDING_PAGE_LOCATOR), TimeoutConstants.TS_SELENIUM_LOAD_PAGE_TIMEOUT);
37
- await this.driverHelper.waitAndClick(By.xpath(this.OPEN_SHIFT_LOGIN_LANDING_PAGE_BUTTON_LOCATOR));
44
+ await this.ocpLogin.isIdentityProviderLinkVisible();
45
+ await this.ocpLogin.clickOnLoginProviderTitle();
38
46
 
39
- await this.ocpLogin.isIdentityProviderLinkVisible();
40
- await this.ocpLogin.clickOnLoginProviderTitle();
41
-
42
- await this.redHatLogin.waitRedHatLoginWelcomePage();
43
- await this.redHatLogin.enterUserNameRedHat();
44
- await this.redHatLogin.clickNextButton();
45
- await this.redHatLogin.enterPasswordRedHat();
46
- await this.redHatLogin.clickOnLoginButton();
47
- await this.redHatLogin.waitDisappearanceRedHatLoginWelcomePage();
48
- }
47
+ await this.redHatLogin.waitRedHatLoginWelcomePage();
48
+ await this.redHatLogin.enterUserNameRedHat();
49
+ await this.redHatLogin.clickNextButton();
50
+ await this.redHatLogin.enterPasswordRedHat();
51
+ await this.redHatLogin.clickOnLoginButton();
52
+ await this.redHatLogin.waitDisappearanceRedHatLoginWelcomePage();
53
+ }
49
54
  }
@@ -1,5 +1,5 @@
1
- /*********************************************************************
2
- * Copyright (c) 2019-2023 Red Hat, Inc.
1
+ /** *******************************************************************
2
+ * copyright (c) 2019-2023 Red Hat, Inc.
3
3
  *
4
4
  * This program and the accompanying materials are made
5
5
  * available under the terms of the Eclipse Public License 2.0
@@ -13,26 +13,23 @@ import { inject, injectable } from 'inversify';
13
13
  import { OcpLoginPage } from './OcpLoginPage';
14
14
  import { CLASSES } from '../../../configs/inversify.types';
15
15
  import { Logger } from '../../../utils/Logger';
16
- import { OAuthConstants } from '../../../constants/OAuthConstants';
16
+ import { OAUTH_CONSTANTS } from '../../../constants/OAUTH_CONSTANTS';
17
17
 
18
18
  @injectable()
19
19
  export class OcpUserLoginPage implements IOcpLoginPage {
20
+ constructor(@inject(CLASSES.OcpLoginPage) private readonly ocpLogin: OcpLoginPage) {}
20
21
 
21
- constructor(
22
- @inject(CLASSES.OcpLoginPage) private readonly ocpLogin: OcpLoginPage) { }
22
+ async login(): Promise<void> {
23
+ Logger.debug();
23
24
 
24
- async login(): Promise<void> {
25
- Logger.debug();
26
-
27
- if (OAuthConstants.TS_OCP_LOGIN_PAGE_PROVIDER_TITLE !== '') {
28
- await this.ocpLogin.clickOnLoginProviderTitle();
29
- }
30
-
31
- await this.ocpLogin.waitOpenShiftLoginWelcomePage();
32
- await this.ocpLogin.enterUserNameOpenShift(OAuthConstants.TS_SELENIUM_OCP_USERNAME);
33
- await this.ocpLogin.enterPasswordOpenShift(OAuthConstants.TS_SELENIUM_OCP_PASSWORD);
34
- await this.ocpLogin.clickOnLoginButton();
35
- await this.ocpLogin.waitDisappearanceOpenShiftLoginWelcomePage();
36
- }
25
+ if (OAUTH_CONSTANTS.TS_OCP_LOGIN_PAGE_PROVIDER_TITLE !== '') {
26
+ await this.ocpLogin.clickOnLoginProviderTitle();
27
+ }
37
28
 
29
+ await this.ocpLogin.waitOpenShiftLoginWelcomePage();
30
+ await this.ocpLogin.enterUserNameOpenShift(OAUTH_CONSTANTS.TS_SELENIUM_OCP_USERNAME);
31
+ await this.ocpLogin.enterPasswordOpenShift(OAUTH_CONSTANTS.TS_SELENIUM_OCP_PASSWORD);
32
+ await this.ocpLogin.clickOnLoginButton();
33
+ await this.ocpLogin.waitDisappearanceOpenShiftLoginWelcomePage();
34
+ }
38
35
  }