@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
@@ -10,66 +10,60 @@
10
10
  import 'chromedriver';
11
11
  import 'reflect-metadata';
12
12
  import { injectable } from 'inversify';
13
- import { ThenableWebDriver, Builder } from 'selenium-webdriver';
13
+ import { Builder, ThenableWebDriver } from 'selenium-webdriver';
14
14
  import { IDriver } from './IDriver';
15
15
  import { Options } from 'selenium-webdriver/chrome';
16
- import { ChromeDriverConstants } from '../constants/ChromeDriverConstants';
16
+ import { CHROME_DRIVER_CONSTANTS } from '../constants/CHROME_DRIVER_CONSTANTS';
17
17
 
18
18
  @injectable()
19
19
  export class ChromeDriver implements IDriver {
20
- private readonly driver: ThenableWebDriver | undefined;
20
+ private readonly driver: ThenableWebDriver | undefined;
21
21
 
22
- constructor() {
23
- const options: Options = this.getDriverOptions();
24
- if (ChromeDriverConstants.TS_USE_WEB_DRIVER_FOR_TEST) {
25
- this.driver = this.getDriverBuilder(options).build();
26
- }
27
- }
22
+ constructor() {
23
+ const options: Options = this.getDriverOptions();
24
+ if (CHROME_DRIVER_CONSTANTS.TS_USE_WEB_DRIVER_FOR_TEST) {
25
+ this.driver = this.getDriverBuilder(options).build();
26
+ }
27
+ }
28
28
 
29
- get(): ThenableWebDriver {
30
- return this.driver as ThenableWebDriver;
31
- }
29
+ get(): ThenableWebDriver {
30
+ return this.driver as ThenableWebDriver;
31
+ }
32
32
 
33
- async setWindowSize(): Promise<void> {
34
- await (this.driver as ThenableWebDriver)
35
- .manage()
36
- .window()
37
- .setSize(ChromeDriverConstants.TS_SELENIUM_RESOLUTION_WIDTH, ChromeDriverConstants.TS_SELENIUM_RESOLUTION_HEIGHT);
38
- }
33
+ async setWindowSize(): Promise<void> {
34
+ await (this.driver as ThenableWebDriver)
35
+ .manage()
36
+ .window()
37
+ .setSize(CHROME_DRIVER_CONSTANTS.TS_SELENIUM_RESOLUTION_WIDTH, CHROME_DRIVER_CONSTANTS.TS_SELENIUM_RESOLUTION_HEIGHT);
38
+ }
39
39
 
40
- private getDriverOptions(): Options {
41
- let options: Options = new Options()
42
- .addArguments('--no-sandbox')
43
- .addArguments('--disable-web-security')
44
- .addArguments('--allow-running-insecure-content')
45
- .addArguments('--ignore-certificate-errors');
46
- // if 'true' run in 'headless' mode
47
- if (ChromeDriverConstants.TS_SELENIUM_HEADLESS) {
48
- options = options.addArguments('headless');
49
- }
50
- return options;
51
- }
40
+ private getDriverOptions(): Options {
41
+ let options: Options = new Options()
42
+ .addArguments('--no-sandbox')
43
+ .addArguments('--disable-web-security')
44
+ .addArguments('--allow-running-insecure-content')
45
+ .addArguments('--ignore-certificate-errors');
46
+ // if 'true' run in 'headless' mode
47
+ if (CHROME_DRIVER_CONSTANTS.TS_SELENIUM_HEADLESS) {
48
+ options = options.addArguments('headless');
49
+ }
50
+ return options;
51
+ }
52
52
 
53
- private getDriverBuilder(options: Options): Builder {
54
- const disableW3copts: object = { 'goog:chromeOptions' : { 'w3c' : false }};
55
- let builder: Builder = new Builder()
56
- .forBrowser('chrome')
57
- .setChromeOptions(options);
53
+ private getDriverBuilder(options: Options): Builder {
54
+ const disableW3copts: object = { 'goog:chromeOptions': { w3c: false } };
55
+ let builder: Builder = new Builder().forBrowser('chrome').setChromeOptions(options);
58
56
 
59
- // if 'false' w3c protocol is disabled
60
- if (! ChromeDriverConstants.TS_SELENIUM_W3C_CHROME_OPTION) {
61
- builder.withCapabilities(disableW3copts)
62
- .forBrowser('chrome')
63
- .setChromeOptions(options);
64
- }
57
+ // if 'false' w3c protocol is disabled
58
+ if (!CHROME_DRIVER_CONSTANTS.TS_SELENIUM_W3C_CHROME_OPTION) {
59
+ builder.withCapabilities(disableW3copts).forBrowser('chrome').setChromeOptions(options);
60
+ }
65
61
 
66
- // if 'true' run with remote driver
67
- if (ChromeDriverConstants.TS_SELENIUM_REMOTE_DRIVER_URL) {
68
- builder = builder.usingServer(ChromeDriverConstants.TS_SELENIUM_REMOTE_DRIVER_URL);
69
- }
70
-
71
- return builder;
72
-
73
- }
62
+ // if 'true' run with remote driver
63
+ if (CHROME_DRIVER_CONSTANTS.TS_SELENIUM_REMOTE_DRIVER_URL) {
64
+ builder = builder.usingServer(CHROME_DRIVER_CONSTANTS.TS_SELENIUM_REMOTE_DRIVER_URL);
65
+ }
74
66
 
67
+ return builder;
68
+ }
75
69
  }
package/driver/IDriver.ts CHANGED
@@ -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,5 +10,5 @@
10
10
  import { ThenableWebDriver } from 'selenium-webdriver';
11
11
 
12
12
  export interface IDriver {
13
- get(): ThenableWebDriver;
13
+ get(): ThenableWebDriver;
14
14
  }
package/index.ts CHANGED
@@ -41,12 +41,12 @@ export * from './pageobjects/openshift/OcpMainPage';
41
41
  export * from './tests-library/LoginTests';
42
42
  export * from './tests-library/ProjectAndFileTests';
43
43
  export * from './tests-library/WorkspaceHandlingTests';
44
- export * from './constants/APITestConstants';
45
- export * from './constants/BaseTestConstants';
46
- export * from './constants/ChromeDriverConstants';
47
- export * from './constants/FactoryTestConstants';
48
- export * from './constants/MonacoConstants';
49
- export * from './constants/OAuthConstants';
50
- export * from './constants/PluginsTestConstants';
51
- export * from './constants/ReporterConstants';
52
- export * from './constants/TimeoutConstants';
44
+ export * from './constants/API_TEST_CONSTANTS';
45
+ export * from './constants/BASE_TEST_CONSTANTS';
46
+ export * from './constants/CHROME_DRIVER_CONSTANTS';
47
+ export * from './constants/FACTORY_TEST_CONSTANTS';
48
+ export * from './constants/MONACO_CONSTANTS';
49
+ export * from './constants/OAUTH_CONSTANTS';
50
+ export * from './constants/PLUGIN_TEST_CONSTANTS';
51
+ export * from './constants/REPORTER_CONSTANTS';
52
+ export * from './constants/TIMEOUT_CONSTANTS';
package/package.json CHANGED
@@ -1,51 +1,61 @@
1
1
  {
2
- "name": "@eclipse-che/che-e2e",
3
- "version": "7.73.0",
4
- "description": "",
5
- "main": "dist/index.js",
6
- "scripts": {
7
- "lint": "tslint --fix -p .",
8
- "tsc": "rm -rf ./dist && ./configs/sh-scripts/generateIndex.sh && tsc -p .",
9
- "test": "./configs/sh-scripts/initDefaultValues.sh npm run lint && npm run tsc && export USERSTORY=$USERSTORY && mocha --config dist/configs/mocharc.js",
10
- "driver-less-test": "export TS_USE_WEB_DRIVER_FOR_TEST=false && npm run test",
11
- "cleanup-docker": "if [ $(docker ps -a | grep -c selenium-e2e) -gt 0 ]; then docker rm -f $(docker ps --filter \"name=selenium-e2e\" -aq); fi;",
12
- "test-docker": "npm run cleanup-docker && docker run -it --shm-size=2g -p 5920:5920 --name selenium-e2e -e TS_SELENIUM_BASE_URL=$TS_SELENIUM_BASE_URL eclipse/che-e2e:nightly",
13
- "test-docker-mount-e2e": "npm run cleanup-docker && docker run -it --shm-size=2g -p 5920:5920 --name selenium-e2e -e TS_SELENIUM_BASE_URL=$TS_SELENIUM_BASE_URL -v $(pwd):/tmp/e2e:Z eclipse/che-e2e:nightly",
14
- "test-all-devfiles": " ./configs/sh-scripts/initDefaultValues.sh && ./configs/sh-scripts/initDevfileTests.sh",
15
- "devfile-acceptance-test-suite": "./configs/sh-scripts/initDefaultValues.sh npm run lint && npm run tsc && export TS_USE_WEB_DRIVER_FOR_TEST=false && mocha 'dist/specs/api/*.js' --config dist/configs/mocharc.js --delay --grep 'Devfile acceptance test suite'"
16
- },
17
- "author": "Ihor Okhrimenko (iokhrime@redhat.com)",
18
- "license": "ISC",
19
- "devDependencies": {
20
- "@eclipse-che/che-devworkspace-generator": "next",
21
- "@types/chai": "^4.3.4",
22
- "@types/clone-deep": "^4.0.1",
23
- "@types/mocha": "5.2.6",
24
- "@types/node": "11.13.4",
25
- "@types/rimraf": "2.0.2",
26
- "@types/selenium-webdriver": "4.1.3",
27
- "@types/shelljs": "^0.8.11",
28
- "axios": "^0.25.0",
29
- "chai": "^4.3.4",
30
- "chromedriver": "^114.0.2",
31
- "clone-deep": "^4.0.1",
32
- "mocha": "^9.1.3",
33
- "monaco-page-objects": "3.1.0",
34
- "rimraf": "2.6.2",
35
- "selenium-webdriver": "4.4.0",
36
- "shelljs": "^0.8.5",
37
- "ts-node": "^10.9.1",
38
- "tslint": "^6.1.3",
39
- "typescript": "3.9.9",
40
- "vscode-extension-tester-locators": "3.1.0",
41
- "yaml": "^2.2.2"
42
- },
43
- "dependencies": {
44
- "@eclipse-che/api": "latest",
45
- "inversify": "5.0.1",
46
- "reflect-metadata": "0.1.13"
47
- },
48
- "resolutions": {
49
- "minimist": "^1.2.5"
50
- }
2
+ "name": "@eclipse-che/che-e2e",
3
+ "version": "7.74.0-dev-41d1364",
4
+ "description": "",
5
+ "main": "dist/index.js",
6
+ "scripts": {
7
+ "lint": "eslint --fix .",
8
+ "prettier": "prettier --config .prettierrc.json . --write",
9
+ "tsc": "rm -rf ./dist && ./configs/sh-scripts/generateIndex.sh && tsc -p .",
10
+ "test": "./configs/sh-scripts/initDefaultValues.sh npm run lint && npm run tsc && export USERSTORY=$USERSTORY && mocha --config dist/configs/mocharc.js",
11
+ "driver-less-test": "export TS_USE_WEB_DRIVER_FOR_TEST=false && npm run test",
12
+ "cleanup-docker": "if [ $(docker ps -a | grep -c selenium-e2e) -gt 0 ]; then docker rm -f $(docker ps --filter \"name=selenium-e2e\" -aq); fi;",
13
+ "test-docker": "npm run cleanup-docker && docker run -it --shm-size=2g -p 5920:5920 --name selenium-e2e -e TS_SELENIUM_BASE_URL=$TS_SELENIUM_BASE_URL eclipse/che-e2e:nightly",
14
+ "test-docker-mount-e2e": "npm run cleanup-docker && docker run -it --shm-size=2g -p 5920:5920 --name selenium-e2e -e TS_SELENIUM_BASE_URL=$TS_SELENIUM_BASE_URL -v $(pwd):/tmp/e2e:Z eclipse/che-e2e:nightly",
15
+ "test-all-devfiles": " ./configs/sh-scripts/initDefaultValues.sh && ./configs/sh-scripts/initDevfileTests.sh",
16
+ "devfile-acceptance-test-suite": "./configs/sh-scripts/initDefaultValues.sh npm run lint && npm run tsc && export TS_USE_WEB_DRIVER_FOR_TEST=false && mocha 'dist/specs/api/*.js' --config dist/configs/mocharc.js --delay --grep 'Devfile acceptance test suite'"
17
+ },
18
+ "author": "Ihor Okhrimenko (iokhrime@redhat.com)",
19
+ "license": "ISC",
20
+ "devDependencies": {
21
+ "@eclipse-che/che-devworkspace-generator": "next",
22
+ "@types/chai": "^4.3.4",
23
+ "@types/clone-deep": "^4.0.1",
24
+ "@types/mocha": "5.2.6",
25
+ "@types/node": "11.13.4",
26
+ "@types/rimraf": "2.0.2",
27
+ "@types/selenium-webdriver": "4.1.3",
28
+ "@types/shelljs": "^0.8.11",
29
+ "@typescript-eslint/eslint-plugin": "^6.4.1",
30
+ "@typescript-eslint/eslint-plugin-tslint": "^6.1.0",
31
+ "@typescript-eslint/parser": "^6.1.0",
32
+ "axios": "^0.25.0",
33
+ "chai": "^4.3.4",
34
+ "chromedriver": "^114.0.2",
35
+ "clone-deep": "^4.0.1",
36
+ "eslint": "^8.45.0",
37
+ "eslint-config-prettier": "^8.10.0",
38
+ "eslint-plugin-header": "^3.1.1",
39
+ "eslint-plugin-jsdoc": "^46.5.0",
40
+ "eslint-plugin-prettier": "^5.0.0",
41
+ "husky": "^8.0.3",
42
+ "mocha": "^9.1.3",
43
+ "monaco-page-objects": "3.1.0",
44
+ "prettier": "^3.0.2",
45
+ "rimraf": "2.6.2",
46
+ "selenium-webdriver": "4.4.0",
47
+ "shelljs": "^0.8.5",
48
+ "ts-node": "^10.9.1",
49
+ "typescript": "3.9.9",
50
+ "vscode-extension-tester-locators": "3.1.0",
51
+ "yaml": "^2.2.2"
52
+ },
53
+ "dependencies": {
54
+ "@eclipse-che/api": "latest",
55
+ "inversify": "5.0.1",
56
+ "reflect-metadata": "0.1.13"
57
+ },
58
+ "resolutions": {
59
+ "minimist": "^1.2.5"
60
+ }
51
61
  }
@@ -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,90 +8,99 @@
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  **********************************************************************/
10
10
 
11
- import { injectable, inject } from 'inversify';
11
+ import { inject, injectable } from 'inversify';
12
12
  import { CLASSES } from '../../configs/inversify.types';
13
13
  import { DriverHelper } from '../../utils/DriverHelper';
14
14
  import { By, Key } from 'selenium-webdriver';
15
15
  import { Logger } from '../../utils/Logger';
16
- import { TimeoutConstants } from '../../constants/TimeoutConstants';
17
- import { BaseTestConstants } from '../../constants/BaseTestConstants';
16
+ import { TIMEOUT_CONSTANTS } from '../../constants/TIMEOUT_CONSTANTS';
17
+ import { BASE_TEST_CONSTANTS } from '../../constants/BASE_TEST_CONSTANTS';
18
18
 
19
19
  @injectable()
20
20
  export class CreateWorkspace {
21
- static readonly FACTORY_URL_LOCATOR: By = By.xpath(`//input[@id="git-repo-url"]`);
21
+ static readonly FACTORY_URL_LOCATOR: By = By.xpath('//input[@id="git-repo-url"]');
22
22
 
23
- constructor(@inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper) { }
23
+ constructor(
24
+ @inject(CLASSES.DriverHelper)
25
+ private readonly driverHelper: DriverHelper
26
+ ) {}
24
27
 
25
- async waitTitleContains(expectedText: string, timeout: number = TimeoutConstants.TS_COMMON_DASHBOARD_WAIT_TIMEOUT): Promise<void> {
26
- Logger.debug(`CreateWorkspace.waitTitleContains text: "${expectedText}"`);
28
+ async waitTitleContains(expectedText: string, timeout: number = TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT): Promise<void> {
29
+ Logger.debug(`text: "${expectedText}"`);
27
30
 
28
- const pageTitleLocator: By = By.xpath(`//h1[contains(text(), '${expectedText}')]`);
31
+ const pageTitleLocator: By = By.xpath(`//h1[contains(text(), '${expectedText}')]`);
29
32
 
30
- await this.driverHelper.waitVisibility(pageTitleLocator, timeout);
31
- }
33
+ await this.driverHelper.waitVisibility(pageTitleLocator, timeout);
34
+ }
32
35
 
33
- async waitPage(timeout: number = TimeoutConstants.TS_SELENIUM_LOAD_PAGE_TIMEOUT): Promise<void> {
34
- Logger.debug('CreateWorkspace.waitPage');
36
+ async waitPage(timeout: number = TIMEOUT_CONSTANTS.TS_SELENIUM_LOAD_PAGE_TIMEOUT): Promise<void> {
37
+ Logger.debug();
35
38
 
36
- await this.waitTitleContains('Create Workspace', timeout);
37
- }
39
+ await this.waitTitleContains('Create Workspace', timeout);
40
+ }
38
41
 
39
- async clickOnSampleNoEditorSelection(sampleName: string, timeout: number = TimeoutConstants.TS_CLICK_DASHBOARD_ITEM_TIMEOUT): Promise<void> {
40
- Logger.debug(`CreateWorkspace.clickOnSample sampleName: "${sampleName}"`);
42
+ async clickOnSampleNoEditorSelection(
43
+ sampleName: string,
44
+ timeout: number = TIMEOUT_CONSTANTS.TS_CLICK_DASHBOARD_ITEM_TIMEOUT
45
+ ): Promise<void> {
46
+ Logger.debug(`sampleName: "${sampleName}"`);
41
47
 
42
- const sampleLocator: By = this.getSampleLocator(sampleName);
48
+ const sampleLocator: By = this.getSampleLocator(sampleName);
43
49
 
44
- await this.driverHelper.waitAndClick(sampleLocator, timeout);
45
- }
50
+ await this.driverHelper.waitAndClick(sampleLocator, timeout);
51
+ }
46
52
 
47
- async clickOnSampleForSpecificEditor(sampleName: string, timeout: number = TimeoutConstants.TS_CLICK_DASHBOARD_ITEM_TIMEOUT): Promise<void> {
48
- await this.clickOnEditorsDropdownListButton(sampleName, timeout);
53
+ async clickOnSampleForSpecificEditor(
54
+ sampleName: string,
55
+ timeout: number = TIMEOUT_CONSTANTS.TS_CLICK_DASHBOARD_ITEM_TIMEOUT
56
+ ): Promise<void> {
57
+ await this.clickOnEditorsDropdownListButton(sampleName, timeout);
49
58
 
50
- Logger.debug(`CreateWorkspace.clickOnSampleForSpecificEditor sampleName: "${sampleName}"`);
59
+ Logger.debug(`sampleName: "${sampleName}"`);
51
60
 
52
- const sampleLocator: By = this.getSampleLocatorWithSpecificEditor(sampleName);
53
- await this.driverHelper.waitAndClick(sampleLocator, timeout);
54
- }
61
+ const sampleLocator: By = this.getSampleLocatorWithSpecificEditor(sampleName);
62
+ await this.driverHelper.waitAndClick(sampleLocator, timeout);
63
+ }
55
64
 
56
- async importFromGitUsingUI(factoryUrl: string, timeout: number = TimeoutConstants.TS_CLICK_DASHBOARD_ITEM_TIMEOUT): Promise<void> {
57
- Logger.debug(`CreateWorkspace.importFromGitUsingUI factoryUrl: "${factoryUrl}"`);
58
- await this.driverHelper.waitVisibility(CreateWorkspace.FACTORY_URL_LOCATOR, timeout);
59
- await this.driverHelper.type(CreateWorkspace.FACTORY_URL_LOCATOR, Key.chord(factoryUrl, Key.ENTER), timeout);
60
- }
65
+ async importFromGitUsingUI(factoryUrl: string, timeout: number = TIMEOUT_CONSTANTS.TS_CLICK_DASHBOARD_ITEM_TIMEOUT): Promise<void> {
66
+ Logger.debug(`factoryUrl: "${factoryUrl}"`);
67
+ await this.driverHelper.waitVisibility(CreateWorkspace.FACTORY_URL_LOCATOR, timeout);
68
+ await this.driverHelper.type(CreateWorkspace.FACTORY_URL_LOCATOR, Key.chord(factoryUrl, Key.ENTER), timeout);
69
+ }
61
70
 
62
- private async clickOnEditorsDropdownListButton(sampleName: string, timeout: number): Promise<void> {
63
- Logger.debug(`CreateWorkspace.clickOnSample sampleName: "${sampleName}, editor ${BaseTestConstants.TS_SELENIUM_EDITOR}"`);
71
+ private async clickOnEditorsDropdownListButton(sampleName: string, timeout: number): Promise<void> {
72
+ Logger.debug(`sampleName: "${sampleName}, editor ${BASE_TEST_CONSTANTS.TS_SELENIUM_EDITOR}"`);
64
73
 
65
- const editorDropdownListLocator: By = this.getEditorsDropdownListLocator(sampleName);
66
- await this.driverHelper.waitAndClick(editorDropdownListLocator, timeout);
67
- }
74
+ const editorDropdownListLocator: By = this.getEditorsDropdownListLocator(sampleName);
75
+ await this.driverHelper.waitAndClick(editorDropdownListLocator, timeout);
76
+ }
68
77
 
69
- private getEditorsDropdownListLocator(sampleName: string): By {
70
- return By.xpath(`//div[text()=\'${sampleName}\']//parent::article//button`);
71
- }
78
+ private getEditorsDropdownListLocator(sampleName: string): By {
79
+ return By.xpath(`//div[text()=\'${sampleName}\']//parent::article//button`);
80
+ }
72
81
 
73
- private getSampleLocatorWithSpecificEditor(sampleName: string): By {
74
- let editor: string = '';
75
- switch (process.env.TS_SELENIUM_EDITOR) {
76
- case 'che-code':
77
- editor = 'code';
78
- break;
79
- default:
80
- throw new Error(`Unsupported editor ${process.env.TS_SELENIUM_EDITOR}`);
81
- }
82
+ private getSampleLocatorWithSpecificEditor(sampleName: string): By {
83
+ let editor: string = '';
84
+ switch (process.env.TS_SELENIUM_EDITOR) {
85
+ case 'che-code':
86
+ editor = 'code';
87
+ break;
88
+ default:
89
+ throw new Error(`Unsupported editor ${process.env.TS_SELENIUM_EDITOR}`);
90
+ }
82
91
 
83
- Logger.trace(`CreateWorkspace.getSampleLocatorWithSpecificEditor sampleName: ${sampleName}, editor "${editor}"`);
92
+ Logger.trace(`sampleName: ${sampleName}, editor "${editor}"`);
84
93
 
85
- return By.xpath(`//div[text()='${sampleName}']//parent::article//span[text()[
94
+ return By.xpath(`//div[text()='${sampleName}']//parent::article//span[text()[
86
95
  contains(
87
96
  translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),
88
97
  '${editor}')]
89
98
  ]//parent::a`);
90
- }
99
+ }
91
100
 
92
- private getSampleLocator(sampleName: string): By {
93
- Logger.trace(`CreateWorkspace.getSampleLocator sampleName: ${sampleName}, used default editor`);
101
+ private getSampleLocator(sampleName: string): By {
102
+ Logger.trace(`sampleName: ${sampleName}, used default editor`);
94
103
 
95
- return By.xpath(`//article[contains(@class, 'sample-card')]//div[text()='${sampleName}']`);
96
- }
104
+ return By.xpath(`//article[contains(@class, 'sample-card')]//div[text()='${sampleName}']`);
105
+ }
97
106
  }