@eclipse-che/che-e2e 7.73.0 → 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 (222) 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 +14 -10
  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} +13 -13
  25. package/dist/constants/API_TEST_CONSTANTS.js.map +1 -0
  26. package/dist/constants/{BaseTestConstants.js → BASE_TEST_CONSTANTS.js} +17 -16
  27. package/dist/constants/BASE_TEST_CONSTANTS.js.map +1 -0
  28. package/dist/constants/{ChromeDriverConstants.js → CHROME_DRIVER_CONSTANTS.js} +14 -14
  29. package/dist/constants/CHROME_DRIVER_CONSTANTS.js.map +1 -0
  30. package/dist/constants/{FactoryTestConstants.js → FACTORY_TEST_CONSTANTS.js} +15 -14
  31. package/dist/constants/FACTORY_TEST_CONSTANTS.js.map +1 -0
  32. package/dist/constants/{MonacoConstants.js → MONACO_CONSTANTS.js} +8 -8
  33. package/dist/constants/MONACO_CONSTANTS.js.map +1 -0
  34. package/dist/constants/{OAuthConstants.js → OAUTH_CONSTANTS.js} +15 -15
  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} +13 -13
  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 +18 -18
  47. package/dist/pageobjects/dashboard/CreateWorkspace.js.map +1 -1
  48. package/dist/pageobjects/dashboard/Dashboard.js +27 -27
  49. package/dist/pageobjects/dashboard/Dashboard.js.map +1 -1
  50. package/dist/pageobjects/dashboard/Workspaces.js +42 -42
  51. package/dist/pageobjects/dashboard/Workspaces.js.map +1 -1
  52. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js +44 -33
  53. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js.map +1 -1
  54. package/dist/pageobjects/git-providers/OauthPage.js +37 -35
  55. package/dist/pageobjects/git-providers/OauthPage.js.map +1 -1
  56. package/dist/pageobjects/ide/CheCodeLocatorLoader.js +10 -10
  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 +10 -10
  61. package/dist/pageobjects/login/kubernetes/DexLoginPage.js.map +1 -1
  62. package/dist/pageobjects/login/kubernetes/KubernetesLoginPage.js +6 -6
  63. package/dist/pageobjects/login/kubernetes/KubernetesLoginPage.js.map +1 -1
  64. package/dist/pageobjects/login/openshift/OcpLoginPage.js +23 -23
  65. package/dist/pageobjects/login/openshift/OcpLoginPage.js.map +1 -1
  66. package/dist/pageobjects/login/openshift/OcpRedHatLoginPage.js +7 -7
  67. package/dist/pageobjects/login/openshift/OcpRedHatLoginPage.js.map +1 -1
  68. package/dist/pageobjects/login/openshift/OcpUserLoginPage.js +7 -7
  69. package/dist/pageobjects/login/openshift/OcpUserLoginPage.js.map +1 -1
  70. package/dist/pageobjects/login/openshift/RedHatLoginPage.js +11 -11
  71. package/dist/pageobjects/login/openshift/RedHatLoginPage.js.map +1 -1
  72. package/dist/pageobjects/login/openshift/RegularUserOcpCheLoginPage.js +10 -10
  73. package/dist/pageobjects/login/openshift/RegularUserOcpCheLoginPage.js.map +1 -1
  74. package/dist/pageobjects/openshift/OcpApplicationPage.js +7 -7
  75. package/dist/pageobjects/openshift/OcpApplicationPage.js.map +1 -1
  76. package/dist/pageobjects/openshift/OcpImportFromGitPage.js +9 -9
  77. package/dist/pageobjects/openshift/OcpImportFromGitPage.js.map +1 -1
  78. package/dist/pageobjects/openshift/OcpMainPage.js +15 -15
  79. package/dist/pageobjects/openshift/OcpMainPage.js.map +1 -1
  80. package/dist/specs/MochaHooks.js +27 -24
  81. package/dist/specs/MochaHooks.js.map +1 -1
  82. package/dist/specs/SmokeTest.spec.js +17 -13
  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 +31 -18
  87. package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js.map +1 -1
  88. package/dist/specs/api/EmptyWorkspaceAPI.spec.js +18 -12
  89. package/dist/specs/api/EmptyWorkspaceAPI.spec.js.map +1 -1
  90. package/dist/specs/api/PodOverridesAPI.spec.js +12 -2
  91. package/dist/specs/api/PodOverridesAPI.spec.js.map +1 -1
  92. package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js +12 -8
  93. package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js.map +1 -1
  94. package/dist/specs/dashboard-samples/Quarkus.spec.js +13 -9
  95. package/dist/specs/dashboard-samples/Quarkus.spec.js.map +1 -1
  96. package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js +47 -43
  97. package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js.map +1 -1
  98. package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js +17 -10
  99. package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js.map +1 -1
  100. package/dist/specs/factory/Factory.spec.js +28 -26
  101. package/dist/specs/factory/Factory.spec.js.map +1 -1
  102. package/dist/specs/factory/NoSetupRepoFactory.spec.js +41 -36
  103. package/dist/specs/factory/NoSetupRepoFactory.spec.js.map +1 -1
  104. package/dist/specs/factory/RefusedOAuthFactory.spec.js +37 -35
  105. package/dist/specs/factory/RefusedOAuthFactory.spec.js.map +1 -1
  106. package/dist/specs/miscellaneous/PredefinedNamespace.spec.js +18 -5
  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 +9 -7
  111. package/dist/tests-library/ProjectAndFileTests.js.map +1 -1
  112. package/dist/tests-library/WorkspaceHandlingTests.js +61 -78
  113. package/dist/tests-library/WorkspaceHandlingTests.js.map +1 -1
  114. package/dist/utils/BrowserTabsUtil.js +29 -24
  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 +19 -10
  119. package/dist/utils/DevWorkspaceConfigurationHelper.js.map +1 -1
  120. package/dist/utils/DevfilesRegistryHelper.js +25 -19
  121. package/dist/utils/DevfilesRegistryHelper.js.map +1 -1
  122. package/dist/utils/DriverHelper.js +126 -128
  123. package/dist/utils/DriverHelper.js.map +1 -1
  124. package/dist/utils/KubernetesCommandLineToolsExecutor.js +53 -46
  125. package/dist/utils/KubernetesCommandLineToolsExecutor.js.map +1 -1
  126. package/dist/utils/Logger.js +62 -39
  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 +17 -9
  133. package/dist/utils/StringUtil.js.map +1 -1
  134. package/dist/utils/request-handlers/CheApiRequestHandler.js +36 -34
  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 +5 -5
  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 +36 -30
  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 +45 -51
  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 +65 -56
  151. package/pageobjects/dashboard/Dashboard.ts +101 -100
  152. package/pageobjects/dashboard/Workspaces.ts +197 -166
  153. package/pageobjects/dashboard/workspace-details/WorkspaceDetails.ts +151 -127
  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 +32 -31
  159. package/pageobjects/login/kubernetes/KubernetesLoginPage.ts +16 -15
  160. package/pageobjects/login/openshift/OcpLoginPage.ts +62 -55
  161. package/pageobjects/login/openshift/OcpRedHatLoginPage.ts +30 -25
  162. package/pageobjects/login/openshift/OcpUserLoginPage.ts +16 -19
  163. package/pageobjects/login/openshift/RedHatLoginPage.ts +49 -44
  164. package/pageobjects/login/openshift/RegularUserOcpCheLoginPage.ts +39 -35
  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/resources/pod-overrides-airgap.yaml +37 -0
  169. package/specs/MochaHooks.ts +59 -50
  170. package/specs/SmokeTest.spec.ts +43 -36
  171. package/specs/api/ContainerOverridesAPI.spec.ts +33 -26
  172. package/specs/api/DevfileAcceptanceTestAPI.spec.ts +107 -94
  173. package/specs/api/EmptyWorkspaceAPI.spec.ts +62 -57
  174. package/specs/api/PodOverridesAPI.spec.ts +42 -32
  175. package/specs/dashboard-samples/EmptyWorkspace.spec.ts +31 -27
  176. package/specs/dashboard-samples/Quarkus.spec.ts +34 -30
  177. package/specs/dashboard-samples/RecommendedExtensions.spec.ts +192 -170
  178. package/specs/devconsole-intergration/DevConsoleIntegration.spec.ts +62 -55
  179. package/specs/factory/Factory.spec.ts +178 -166
  180. package/specs/factory/NoSetupRepoFactory.spec.ts +227 -210
  181. package/specs/factory/RefusedOAuthFactory.spec.ts +219 -203
  182. package/specs/miscellaneous/PredefinedNamespace.spec.ts +64 -50
  183. package/tests-library/LoginTests.ts +34 -32
  184. package/tests-library/ProjectAndFileTests.ts +21 -18
  185. package/tests-library/WorkspaceHandlingTests.ts +98 -108
  186. package/tsconfig.json +15 -15
  187. package/utils/BrowserTabsUtil.ts +104 -98
  188. package/utils/CheReporter.ts +142 -148
  189. package/utils/DevWorkspaceConfigurationHelper.ts +70 -61
  190. package/utils/DevfilesRegistryHelper.ts +67 -58
  191. package/utils/DriverHelper.ts +726 -701
  192. package/utils/KubernetesCommandLineToolsExecutor.ts +196 -172
  193. package/utils/Logger.ts +104 -75
  194. package/utils/ScreenCatcher.ts +59 -48
  195. package/utils/ShellExecutor.ts +19 -11
  196. package/utils/StringUtil.ts +40 -32
  197. package/utils/request-handlers/CheApiRequestHandler.ts +92 -87
  198. package/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.ts +32 -21
  199. package/utils/request-handlers/headers/IAuthorizationHeaderHandler.ts +3 -3
  200. package/utils/workspace/ApiUrlResolver.ts +31 -26
  201. package/utils/workspace/ITestWorkspaceUtil.ts +31 -31
  202. package/utils/workspace/TestWorkspaceUtil.ts +153 -142
  203. package/utils/workspace/WorkspaceStatus.ts +5 -5
  204. package/constants/APITestConstants.ts +0 -56
  205. package/constants/BaseTestConstants.ts +0 -65
  206. package/constants/ChromeDriverConstants.ts +0 -46
  207. package/constants/FactoryTestConstants.ts +0 -51
  208. package/constants/MonacoConstants.ts +0 -22
  209. package/constants/OAuthConstants.ts +0 -57
  210. package/constants/PluginsTestConstants.ts +0 -15
  211. package/constants/ReporterConstants.ts +0 -45
  212. package/constants/TimeoutConstants.ts +0 -113
  213. package/dist/constants/APITestConstants.js.map +0 -1
  214. package/dist/constants/BaseTestConstants.js.map +0 -1
  215. package/dist/constants/ChromeDriverConstants.js.map +0 -1
  216. package/dist/constants/FactoryTestConstants.js.map +0 -1
  217. package/dist/constants/MonacoConstants.js.map +0 -1
  218. package/dist/constants/OAuthConstants.js.map +0 -1
  219. package/dist/constants/PluginsTestConstants.js.map +0 -1
  220. package/dist/constants/ReporterConstants.js.map +0 -1
  221. package/dist/constants/TimeoutConstants.js.map +0 -1
  222. package/tslint.json +0 -126
@@ -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
@@ -8,26 +8,27 @@
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  **********************************************************************/
10
10
  import 'reflect-metadata';
11
- import { injectable, inject } from 'inversify';
11
+ import { inject, injectable } from 'inversify';
12
12
  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(`${this.constructor.name}.${this.login.name}`);
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
@@ -8,85 +8,92 @@
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  **********************************************************************/
10
10
  import 'reflect-metadata';
11
- import { injectable, inject } from 'inversify';
11
+ import { inject, injectable } from 'inversify';
12
12
  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('OcpLoginPage.waitOpenShiftLoginWelcomePage');
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('OcpLoginPage.clickOnLoginProviderTitle');
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('OcpLoginPage.isIdentityProviderLinkVisible');
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('OcpLoginPage.isAuthorizeOpenShiftIdentityProviderPageVisible');
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('OcpLoginPage.waitAuthorizeOpenShiftIdentityProviderPage');
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('OcpLoginPage.clickOnApproveAuthorizeAccessOpenshift');
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(`OcpLoginPage.enterUserNameOpenShift "${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(`OcpLoginPage.enterPasswordOpenShift"`);
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('OcpLoginPage.clickOnLoginButton');
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('OcpLoginPage.waitDisappearanceOpenShiftLoginWelcomePage');
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
@@ -8,11 +8,11 @@
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  **********************************************************************/
10
10
  import 'reflect-metadata';
11
- import { injectable, inject } from 'inversify';
11
+ 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('OcpRedHatLoginPage.login');
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('OcpRedHatLoginPage.login 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
@@ -9,30 +9,27 @@
9
9
  **********************************************************************/
10
10
  import 'reflect-metadata';
11
11
  import { IOcpLoginPage } from '../interfaces/IOcpLoginPage';
12
- import { injectable, inject } from 'inversify';
12
+ 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('OcpUserLoginPage.login');
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
  }
@@ -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
@@ -8,53 +8,58 @@
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  **********************************************************************/
10
10
  import 'reflect-metadata';
11
- import { injectable, inject } from 'inversify';
11
+ import { inject, injectable } from 'inversify';
12
12
  import { By } from 'selenium-webdriver';
13
13
  import { CLASSES } from '../../../configs/inversify.types';
14
14
  import { DriverHelper } from '../../../utils/DriverHelper';
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 RedHatLoginPage {
20
- private readonly USERNAME_INPUT_ID: string = 'username-verification';
21
- private readonly PASSWORD_INPUT_ID: string = 'password';
22
- private readonly NEXT_BUTTON_ID: string = 'login-show-step2';
23
- private readonly LOGIN_BUTTON_ID: string = 'rh-password-verification-submit-button';
24
-
25
- constructor(
26
- @inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper) { }
27
-
28
- async waitRedHatLoginWelcomePage(): Promise<void> {
29
- Logger.debug('RedHatLoginPage.waitRedHatLoginWelcomePage');
30
- await this.driverHelper.waitVisibility(By.id(this.USERNAME_INPUT_ID));
31
- }
32
-
33
- async enterPasswordRedHat(): Promise<void> {
34
- Logger.debug('RedHatLoginPage.enterPasswordRedHat');
35
- const passwordFieldLocator: By = By.id(this.PASSWORD_INPUT_ID);
36
- await this.driverHelper.waitVisibility(passwordFieldLocator, 3000);
37
- await this.driverHelper.enterValue(passwordFieldLocator, OAuthConstants.TS_SELENIUM_OCP_PASSWORD);
38
- }
39
- async clickOnLoginButton(): Promise<void> {
40
- Logger.debug('RedHatLoginPage.clickOnLoginButton');
41
- const loginButtonLocator: By = By.id(this.LOGIN_BUTTON_ID);
42
- await this.driverHelper.waitAndClick(loginButtonLocator);
43
- }
44
- async waitDisappearanceRedHatLoginWelcomePage(): Promise<void> {
45
- Logger.debug('RedHatLoginPage.waitDisappearanceRedHatLoginWelcomePage');
46
- await this.driverHelper.waitDisappearance(By.id(this.LOGIN_BUTTON_ID));
47
- }
48
- async enterUserNameRedHat(): Promise<void> {
49
- Logger.debug('RedHatLoginPage.enterUserNameRedHat');
50
- const usernameFieldLocator: By = By.id(this.USERNAME_INPUT_ID);
51
- await this.driverHelper.waitVisibility(usernameFieldLocator, 20000);
52
- await this.driverHelper.enterValue(usernameFieldLocator, OAuthConstants.TS_SELENIUM_OCP_USERNAME);
53
- }
54
-
55
- async clickNextButton(): Promise<void> {
56
- Logger.debug('RedHatLoginPage.clickNextButton');
57
- const nextButtonLocator: By = By.id(this.NEXT_BUTTON_ID);
58
- await this.driverHelper.waitAndClick(nextButtonLocator);
59
- }
20
+ private readonly USERNAME_INPUT_ID: string = 'username-verification';
21
+ private readonly PASSWORD_INPUT_ID: string = 'password';
22
+ private readonly NEXT_BUTTON_ID: string = 'login-show-step2';
23
+ private readonly LOGIN_BUTTON_ID: string = 'rh-password-verification-submit-button';
24
+
25
+ constructor(
26
+ @inject(CLASSES.DriverHelper)
27
+ private readonly driverHelper: DriverHelper
28
+ ) {}
29
+
30
+ async waitRedHatLoginWelcomePage(): Promise<void> {
31
+ Logger.debug();
32
+ await this.driverHelper.waitVisibility(By.id(this.USERNAME_INPUT_ID));
33
+ }
34
+
35
+ async enterPasswordRedHat(): Promise<void> {
36
+ Logger.debug();
37
+ const passwordFieldLocator: By = By.id(this.PASSWORD_INPUT_ID);
38
+ await this.driverHelper.waitVisibility(passwordFieldLocator, 3000);
39
+ await this.driverHelper.enterValue(passwordFieldLocator, OAUTH_CONSTANTS.TS_SELENIUM_OCP_PASSWORD);
40
+ }
41
+
42
+ async clickOnLoginButton(): Promise<void> {
43
+ Logger.debug();
44
+ const loginButtonLocator: By = By.id(this.LOGIN_BUTTON_ID);
45
+ await this.driverHelper.waitAndClick(loginButtonLocator);
46
+ }
47
+
48
+ async waitDisappearanceRedHatLoginWelcomePage(): Promise<void> {
49
+ Logger.debug();
50
+ await this.driverHelper.waitDisappearance(By.id(this.LOGIN_BUTTON_ID));
51
+ }
52
+
53
+ async enterUserNameRedHat(): Promise<void> {
54
+ Logger.debug();
55
+ const usernameFieldLocator: By = By.id(this.USERNAME_INPUT_ID);
56
+ await this.driverHelper.waitVisibility(usernameFieldLocator, 20000);
57
+ await this.driverHelper.enterValue(usernameFieldLocator, OAUTH_CONSTANTS.TS_SELENIUM_OCP_USERNAME);
58
+ }
59
+
60
+ async clickNextButton(): Promise<void> {
61
+ Logger.debug();
62
+ const nextButtonLocator: By = By.id(this.NEXT_BUTTON_ID);
63
+ await this.driverHelper.waitAndClick(nextButtonLocator);
64
+ }
60
65
  }
@@ -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
@@ -10,44 +10,48 @@
10
10
  import 'reflect-metadata';
11
11
  import { ICheLoginPage } from '../interfaces/ICheLoginPage';
12
12
  import { OcpLoginPage } from './OcpLoginPage';
13
- import { injectable, inject } from 'inversify';
13
+ import { inject, injectable } from 'inversify';
14
14
  import { CLASSES } from '../../../configs/inversify.types';
15
15
  import { Logger } from '../../../utils/Logger';
16
- import { TimeoutConstants } from '../../../constants/TimeoutConstants';
16
+ import { TIMEOUT_CONSTANTS } from '../../../constants/TIMEOUT_CONSTANTS';
17
17
  import { By } from 'selenium-webdriver';
18
18
  import { DriverHelper } from '../../../utils/DriverHelper';
19
- import { OAuthConstants } from '../../../constants/OAuthConstants';
19
+ import { OAUTH_CONSTANTS } from '../../../constants/OAUTH_CONSTANTS';
20
20
 
21
21
  @injectable()
22
22
  export class RegularUserOcpCheLoginPage implements ICheLoginPage {
23
-
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
-
27
- constructor(
28
- @inject(CLASSES.OcpLoginPage) private readonly ocpLogin: OcpLoginPage,
29
- @inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper) { }
30
-
31
- async login(): Promise<void> {
32
- Logger.debug('RegularUserOcpCheLoginPage.login');
33
-
34
- Logger.debug('RegularUserOcpCheLoginPage.login wait for LogInWithOpenShift page and click button');
35
- await this.driverHelper.waitPresence(By.xpath(this.OPEN_SHIFT_LOGIN_LANDING_PAGE_LOCATOR), TimeoutConstants.TS_SELENIUM_LOAD_PAGE_TIMEOUT);
36
- await this.driverHelper.waitAndClick(By.xpath(this.OPEN_SHIFT_LOGIN_LANDING_PAGE_BUTTON_LOCATOR));
37
-
38
- if (await this.ocpLogin.isIdentityProviderLinkVisible()) {
39
- await this.ocpLogin.clickOnLoginProviderTitle();
40
- }
41
-
42
- await this.ocpLogin.waitOpenShiftLoginWelcomePage();
43
- await this.ocpLogin.enterUserNameOpenShift(OAuthConstants.TS_SELENIUM_OCP_USERNAME);
44
- await this.ocpLogin.enterPasswordOpenShift(OAuthConstants.TS_SELENIUM_OCP_PASSWORD);
45
- await this.ocpLogin.clickOnLoginButton();
46
- await this.ocpLogin.waitDisappearanceOpenShiftLoginWelcomePage();
47
-
48
- if (await this.ocpLogin.isAuthorizeOpenShiftIdentityProviderPageVisible()) {
49
- await this.ocpLogin.waitAuthorizeOpenShiftIdentityProviderPage();
50
- await this.ocpLogin.clickOnApproveAuthorizeAccessButton();
51
- }
52
- }
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`;
25
+
26
+ constructor(
27
+ @inject(CLASSES.OcpLoginPage) private readonly ocpLogin: OcpLoginPage,
28
+ @inject(CLASSES.DriverHelper)
29
+ private readonly driverHelper: DriverHelper
30
+ ) {}
31
+
32
+ async login(): Promise<void> {
33
+ Logger.debug();
34
+
35
+ Logger.debug('wait for LogInWithOpenShift page and click button');
36
+ await this.driverHelper.waitPresence(
37
+ By.xpath(this.OPEN_SHIFT_LOGIN_LANDING_PAGE_LOCATOR),
38
+ TIMEOUT_CONSTANTS.TS_SELENIUM_LOAD_PAGE_TIMEOUT
39
+ );
40
+ await this.driverHelper.waitAndClick(By.xpath(this.OPEN_SHIFT_LOGIN_LANDING_PAGE_BUTTON_LOCATOR));
41
+
42
+ if (await this.ocpLogin.isIdentityProviderLinkVisible()) {
43
+ await this.ocpLogin.clickOnLoginProviderTitle();
44
+ }
45
+
46
+ await this.ocpLogin.waitOpenShiftLoginWelcomePage();
47
+ await this.ocpLogin.enterUserNameOpenShift(OAUTH_CONSTANTS.TS_SELENIUM_OCP_USERNAME);
48
+ await this.ocpLogin.enterPasswordOpenShift(OAUTH_CONSTANTS.TS_SELENIUM_OCP_PASSWORD);
49
+ await this.ocpLogin.clickOnLoginButton();
50
+ await this.ocpLogin.waitDisappearanceOpenShiftLoginWelcomePage();
51
+
52
+ if (await this.ocpLogin.isAuthorizeOpenShiftIdentityProviderPageVisible()) {
53
+ await this.ocpLogin.waitAuthorizeOpenShiftIdentityProviderPage();
54
+ await this.ocpLogin.clickOnApproveAuthorizeAccessButton();
55
+ }
56
+ }
53
57
  }
@@ -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,30 +13,31 @@ 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';
16
+ import { TIMEOUT_CONSTANTS } from '../../constants/TIMEOUT_CONSTANTS';
17
17
  import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil';
18
18
 
19
19
  @injectable()
20
20
  export class OcpApplicationPage {
21
+ private static readonly APPLICATION_ICON_LOCATOR: By = By.xpath('//*[@data-test-id="base-node-handler"]');
22
+ private static readonly EDIT_SOURCE_CODE_ICON_LOCATOR: By = By.xpath('//*[@aria-label="Edit source code"]');
21
23
 
22
- private static readonly APPLICATION_ICON_LOCATOR: By = By.xpath('//*[@data-test-id="base-node-handler"]');
23
- private static readonly EDIT_SOURCE_CODE_ICON_LOCATOR: By = By.xpath('//*[@aria-label="Edit source code"]');
24
+ constructor(
25
+ @inject(CLASSES.DriverHelper)
26
+ private readonly driverHelper: DriverHelper,
27
+ @inject(CLASSES.BrowserTabsUtil)
28
+ private readonly browserTabsUtil: BrowserTabsUtil
29
+ ) {}
24
30
 
25
- constructor(
26
- @inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper,
27
- @inject(CLASSES.BrowserTabsUtil) private readonly browserTabsUtil: BrowserTabsUtil) {
28
- }
31
+ async waitApplicationIcon(): Promise<void> {
32
+ Logger.debug();
29
33
 
30
- async waitApplicationIcon(): Promise<void> {
31
- Logger.debug(`${this.constructor.name}.${this.waitApplicationIcon.name}`);
34
+ await this.driverHelper.waitPresence(OcpApplicationPage.APPLICATION_ICON_LOCATOR, TIMEOUT_CONSTANTS.TS_SELENIUM_LOAD_PAGE_TIMEOUT);
35
+ }
32
36
 
33
- await this.driverHelper.waitPresence(OcpApplicationPage.APPLICATION_ICON_LOCATOR, TimeoutConstants.TS_SELENIUM_LOAD_PAGE_TIMEOUT);
34
- }
35
-
36
- async waitAndOpenEditSourceCodeIcon(): Promise<void> {
37
- Logger.debug(`${this.constructor.name}.${this.waitAndOpenEditSourceCodeIcon.name}`);
38
- const parentGUID: string = await this.browserTabsUtil.getCurrentWindowHandle();
39
- await this.driverHelper.waitAndClick(OcpApplicationPage.EDIT_SOURCE_CODE_ICON_LOCATOR);
40
- await this.browserTabsUtil.waitAndSwitchToAnotherWindow(parentGUID, TimeoutConstants.TS_SELENIUM_LOAD_PAGE_TIMEOUT);
41
- }
37
+ async waitAndOpenEditSourceCodeIcon(): Promise<void> {
38
+ Logger.debug();
39
+ const parentGUID: string = await this.browserTabsUtil.getCurrentWindowHandle();
40
+ await this.driverHelper.waitAndClick(OcpApplicationPage.EDIT_SOURCE_CODE_ICON_LOCATOR);
41
+ await this.browserTabsUtil.waitAndSwitchToAnotherWindow(parentGUID, TIMEOUT_CONSTANTS.TS_SELENIUM_LOAD_PAGE_TIMEOUT);
42
+ }
42
43
  }