@eclipse-che/che-e2e 7.74.0-dev-1d09cb7 → 7.74.0-dev-aace77a

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 (229) hide show
  1. package/.eslintignore +10 -0
  2. package/.eslintrc.js +197 -0
  3. package/.prettierignore +10 -0
  4. package/.prettierrc.json +10 -0
  5. package/CODE_STYLE.md +144 -0
  6. package/README.md +47 -47
  7. package/configs/inversify.config.ts +39 -14
  8. package/configs/inversify.types.ts +44 -30
  9. package/configs/mocharc.ts +21 -24
  10. package/constants/API_TEST_CONSTANTS.ts +67 -0
  11. package/constants/BASE_TEST_CONSTANTS.ts +80 -0
  12. package/constants/CHROME_DRIVER_CONSTANTS.ts +42 -0
  13. package/constants/FACTORY_TEST_CONSTANTS.ts +61 -0
  14. package/constants/MONACO_CONSTANTS.ts +25 -0
  15. package/constants/OAUTH_CONSTANTS.ts +67 -0
  16. package/constants/PLUGIN_TEST_CONSTANTS.ts +15 -0
  17. package/constants/REPORTER_CONSTANTS.ts +53 -0
  18. package/constants/TIMEOUT_CONSTANTS.ts +131 -0
  19. package/dist/configs/inversify.config.js +36 -9
  20. package/dist/configs/inversify.config.js.map +1 -1
  21. package/dist/configs/inversify.types.js +19 -5
  22. package/dist/configs/inversify.types.js.map +1 -1
  23. package/dist/configs/mocharc.js +13 -16
  24. package/dist/configs/mocharc.js.map +1 -1
  25. package/dist/constants/{APITestConstants.js → API_TEST_CONSTANTS.js} +12 -12
  26. package/dist/constants/API_TEST_CONSTANTS.js.map +1 -0
  27. package/dist/constants/{BaseTestConstants.js → BASE_TEST_CONSTANTS.js} +16 -16
  28. package/dist/constants/BASE_TEST_CONSTANTS.js.map +1 -0
  29. package/dist/constants/CHROME_DRIVER_CONSTANTS.js +36 -0
  30. package/dist/constants/CHROME_DRIVER_CONSTANTS.js.map +1 -0
  31. package/dist/constants/{FactoryTestConstants.js → FACTORY_TEST_CONSTANTS.js} +14 -13
  32. package/dist/constants/FACTORY_TEST_CONSTANTS.js.map +1 -0
  33. package/dist/constants/{MonacoConstants.js → MONACO_CONSTANTS.js} +7 -7
  34. package/dist/constants/MONACO_CONSTANTS.js.map +1 -0
  35. package/dist/constants/{OAuthConstants.js → OAUTH_CONSTANTS.js} +14 -14
  36. package/dist/constants/OAUTH_CONSTANTS.js.map +1 -0
  37. package/dist/constants/{PluginsTestConstants.js → PLUGIN_TEST_CONSTANTS.js} +7 -7
  38. package/dist/constants/PLUGIN_TEST_CONSTANTS.js.map +1 -0
  39. package/dist/constants/{ReporterConstants.js → REPORTER_CONSTANTS.js} +12 -12
  40. package/dist/constants/REPORTER_CONSTANTS.js.map +1 -0
  41. package/dist/constants/{TimeoutConstants.js → TIMEOUT_CONSTANTS.js} +24 -24
  42. package/dist/constants/TIMEOUT_CONSTANTS.js.map +1 -0
  43. package/dist/driver/ChromeDriver.js +12 -22
  44. package/dist/driver/ChromeDriver.js.map +1 -1
  45. package/dist/index.js +18 -12
  46. package/dist/index.js.map +1 -1
  47. package/dist/pageobjects/dashboard/CreateWorkspace.js +15 -15
  48. package/dist/pageobjects/dashboard/CreateWorkspace.js.map +1 -1
  49. package/dist/pageobjects/dashboard/Dashboard.js +20 -21
  50. package/dist/pageobjects/dashboard/Dashboard.js.map +1 -1
  51. package/dist/pageobjects/dashboard/Workspaces.js +55 -60
  52. package/dist/pageobjects/dashboard/Workspaces.js.map +1 -1
  53. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js +58 -48
  54. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js.map +1 -1
  55. package/dist/pageobjects/git-providers/OauthPage.js +22 -20
  56. package/dist/pageobjects/git-providers/OauthPage.js.map +1 -1
  57. package/dist/pageobjects/ide/CheCodeLocatorLoader.js +26 -12
  58. package/dist/pageobjects/ide/CheCodeLocatorLoader.js.map +1 -1
  59. package/dist/pageobjects/login/interfaces/ICheLoginPage.js +2 -2
  60. package/dist/pageobjects/login/interfaces/IOcpLoginPage.js +2 -2
  61. package/dist/pageobjects/login/kubernetes/DexLoginPage.js +14 -14
  62. package/dist/pageobjects/login/kubernetes/DexLoginPage.js.map +1 -1
  63. package/dist/pageobjects/login/kubernetes/KubernetesLoginPage.js +7 -7
  64. package/dist/pageobjects/login/kubernetes/KubernetesLoginPage.js.map +1 -1
  65. package/dist/pageobjects/login/openshift/OcpLoginPage.js +24 -28
  66. package/dist/pageobjects/login/openshift/OcpLoginPage.js.map +1 -1
  67. package/dist/pageobjects/login/openshift/OcpRedHatLoginPage.js +13 -16
  68. package/dist/pageobjects/login/openshift/OcpRedHatLoginPage.js.map +1 -1
  69. package/dist/pageobjects/login/openshift/OcpUserLoginPage.js +9 -9
  70. package/dist/pageobjects/login/openshift/OcpUserLoginPage.js.map +1 -1
  71. package/dist/pageobjects/login/openshift/RedHatLoginPage.js +19 -23
  72. package/dist/pageobjects/login/openshift/RedHatLoginPage.js.map +1 -1
  73. package/dist/pageobjects/login/openshift/RegularUserOcpCheLoginPage.js +20 -19
  74. package/dist/pageobjects/login/openshift/RegularUserOcpCheLoginPage.js.map +1 -1
  75. package/dist/pageobjects/openshift/OcpApplicationPage.js +11 -11
  76. package/dist/pageobjects/openshift/OcpApplicationPage.js.map +1 -1
  77. package/dist/pageobjects/openshift/OcpImportFromGitPage.js +24 -24
  78. package/dist/pageobjects/openshift/OcpImportFromGitPage.js.map +1 -1
  79. package/dist/pageobjects/openshift/OcpMainPage.js +30 -30
  80. package/dist/pageobjects/openshift/OcpMainPage.js.map +1 -1
  81. package/dist/specs/MochaHooks.js +33 -27
  82. package/dist/specs/MochaHooks.js.map +1 -1
  83. package/dist/specs/SmokeTest.spec.js +17 -17
  84. package/dist/specs/SmokeTest.spec.js.map +1 -1
  85. package/dist/specs/api/ContainerOverridesAPI.spec.js +8 -6
  86. package/dist/specs/api/ContainerOverridesAPI.spec.js.map +1 -1
  87. package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js +27 -24
  88. package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js.map +1 -1
  89. package/dist/specs/api/EmptyWorkspaceAPI.spec.js +17 -17
  90. package/dist/specs/api/EmptyWorkspaceAPI.spec.js.map +1 -1
  91. package/dist/specs/api/PodOverridesAPI.spec.js +10 -8
  92. package/dist/specs/api/PodOverridesAPI.spec.js.map +1 -1
  93. package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js +10 -10
  94. package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js.map +1 -1
  95. package/dist/specs/dashboard-samples/Quarkus.spec.js +13 -13
  96. package/dist/specs/dashboard-samples/Quarkus.spec.js.map +1 -1
  97. package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js +52 -52
  98. package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js.map +1 -1
  99. package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js +23 -19
  100. package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js.map +1 -1
  101. package/dist/specs/factory/Factory.spec.js +38 -41
  102. package/dist/specs/factory/Factory.spec.js.map +1 -1
  103. package/dist/specs/factory/NoSetupRepoFactory.spec.js +52 -50
  104. package/dist/specs/factory/NoSetupRepoFactory.spec.js.map +1 -1
  105. package/dist/specs/factory/RefusedOAuthFactory.spec.js +49 -51
  106. package/dist/specs/factory/RefusedOAuthFactory.spec.js.map +1 -1
  107. package/dist/specs/miscellaneous/PredefinedNamespace.spec.js +45 -42
  108. package/dist/specs/miscellaneous/PredefinedNamespace.spec.js.map +1 -1
  109. package/dist/tests-library/LoginTests.js +13 -13
  110. package/dist/tests-library/LoginTests.js.map +1 -1
  111. package/dist/tests-library/ProjectAndFileTests.js +9 -7
  112. package/dist/tests-library/ProjectAndFileTests.js.map +1 -1
  113. package/dist/tests-library/WorkspaceHandlingTests.js +22 -19
  114. package/dist/tests-library/WorkspaceHandlingTests.js.map +1 -1
  115. package/dist/utils/BrowserTabsUtil.js +21 -21
  116. package/dist/utils/BrowserTabsUtil.js.map +1 -1
  117. package/dist/utils/CheReporter.js +91 -65
  118. package/dist/utils/CheReporter.js.map +1 -1
  119. package/dist/utils/DevWorkspaceConfigurationHelper.js +34 -15
  120. package/dist/utils/DevWorkspaceConfigurationHelper.js.map +1 -1
  121. package/dist/utils/DevfilesRegistryHelper.js +34 -18
  122. package/dist/utils/DevfilesRegistryHelper.js.map +1 -1
  123. package/dist/utils/DriverHelper.js +73 -68
  124. package/dist/utils/DriverHelper.js.map +1 -1
  125. package/dist/utils/IContextParams.js +12 -0
  126. package/dist/utils/IContextParams.js.map +1 -0
  127. package/dist/utils/IKubernetesCommandLineToolsExecutor.js +3 -0
  128. package/dist/utils/IKubernetesCommandLineToolsExecutor.js.map +1 -0
  129. package/dist/utils/KubernetesCommandLineToolsExecutor.js +146 -107
  130. package/dist/utils/KubernetesCommandLineToolsExecutor.js.map +1 -1
  131. package/dist/utils/Logger.js +18 -19
  132. package/dist/utils/Logger.js.map +1 -1
  133. package/dist/utils/ScreenCatcher.js +26 -16
  134. package/dist/utils/ScreenCatcher.js.map +1 -1
  135. package/dist/utils/ShellExecutor.js +29 -9
  136. package/dist/utils/ShellExecutor.js.map +1 -1
  137. package/dist/utils/StringUtil.js +19 -9
  138. package/dist/utils/StringUtil.js.map +1 -1
  139. package/dist/utils/request-handlers/CheApiRequestHandler.js +29 -29
  140. package/dist/utils/request-handlers/CheApiRequestHandler.js.map +1 -1
  141. package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js +12 -8
  142. package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js.map +1 -1
  143. package/dist/utils/request-handlers/headers/IAuthorizationHeaderHandler.js +2 -2
  144. package/dist/utils/workspace/ApiUrlResolver.js +5 -5
  145. package/dist/utils/workspace/ApiUrlResolver.js.map +1 -1
  146. package/dist/utils/workspace/ITestWorkspaceUtil.js +2 -2
  147. package/dist/utils/workspace/TestWorkspaceUtil.js +25 -23
  148. package/dist/utils/workspace/TestWorkspaceUtil.js.map +1 -1
  149. package/dist/utils/workspace/WorkspaceStatus.js +2 -2
  150. package/dist/utils/workspace/WorkspaceStatus.js.map +1 -1
  151. package/driver/ChromeDriver.ts +45 -58
  152. package/driver/IDriver.ts +3 -3
  153. package/index.ts +11 -9
  154. package/package.json +59 -49
  155. package/pageobjects/dashboard/CreateWorkspace.ts +65 -55
  156. package/pageobjects/dashboard/Dashboard.ts +100 -100
  157. package/pageobjects/dashboard/Workspaces.ts +210 -186
  158. package/pageobjects/dashboard/workspace-details/WorkspaceDetails.ts +153 -131
  159. package/pageobjects/git-providers/OauthPage.ts +177 -166
  160. package/pageobjects/ide/CheCodeLocatorLoader.ts +51 -46
  161. package/pageobjects/login/interfaces/ICheLoginPage.ts +3 -3
  162. package/pageobjects/login/interfaces/IOcpLoginPage.ts +3 -3
  163. package/pageobjects/login/kubernetes/DexLoginPage.ts +31 -30
  164. package/pageobjects/login/kubernetes/KubernetesLoginPage.ts +15 -14
  165. package/pageobjects/login/openshift/OcpLoginPage.ts +51 -56
  166. package/pageobjects/login/openshift/OcpRedHatLoginPage.ts +27 -27
  167. package/pageobjects/login/openshift/OcpUserLoginPage.ts +15 -18
  168. package/pageobjects/login/openshift/RedHatLoginPage.ts +49 -46
  169. package/pageobjects/login/openshift/RegularUserOcpCheLoginPage.ts +43 -34
  170. package/pageobjects/openshift/OcpApplicationPage.ts +21 -19
  171. package/pageobjects/openshift/OcpImportFromGitPage.ts +68 -68
  172. package/pageobjects/openshift/OcpMainPage.ts +69 -69
  173. package/specs/MochaHooks.ts +59 -52
  174. package/specs/SmokeTest.spec.ts +47 -45
  175. package/specs/api/ContainerOverridesAPI.spec.ts +39 -26
  176. package/specs/api/DevfileAcceptanceTestAPI.spec.ts +110 -97
  177. package/specs/api/EmptyWorkspaceAPI.spec.ts +67 -58
  178. package/specs/api/PodOverridesAPI.spec.ts +48 -34
  179. package/specs/dashboard-samples/EmptyWorkspace.spec.ts +36 -36
  180. package/specs/dashboard-samples/Quarkus.spec.ts +41 -40
  181. package/specs/dashboard-samples/RecommendedExtensions.spec.ts +202 -183
  182. package/specs/devconsole-intergration/DevConsoleIntegration.spec.ts +85 -75
  183. package/specs/factory/Factory.spec.ts +184 -178
  184. package/specs/factory/NoSetupRepoFactory.spec.ts +233 -219
  185. package/specs/factory/RefusedOAuthFactory.spec.ts +223 -211
  186. package/specs/miscellaneous/PredefinedNamespace.spec.ts +70 -64
  187. package/tests-library/LoginTests.ts +34 -32
  188. package/tests-library/ProjectAndFileTests.ts +21 -18
  189. package/tests-library/WorkspaceHandlingTests.ts +98 -89
  190. package/tsconfig.json +15 -15
  191. package/utils/BrowserTabsUtil.ts +78 -74
  192. package/utils/CheReporter.ts +159 -157
  193. package/utils/DevWorkspaceConfigurationHelper.ts +63 -69
  194. package/utils/DevfilesRegistryHelper.ts +71 -57
  195. package/utils/DriverHelper.ts +728 -700
  196. package/utils/IContextParams.ts +26 -0
  197. package/utils/IKubernetesCommandLineToolsExecutor.ts +42 -0
  198. package/utils/KubernetesCommandLineToolsExecutor.ts +231 -183
  199. package/utils/Logger.ts +102 -125
  200. package/utils/ScreenCatcher.ts +57 -46
  201. package/utils/ShellExecutor.ts +23 -12
  202. package/utils/StringUtil.ts +49 -36
  203. package/utils/request-handlers/CheApiRequestHandler.ts +91 -88
  204. package/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.ts +32 -21
  205. package/utils/request-handlers/headers/IAuthorizationHeaderHandler.ts +3 -3
  206. package/utils/workspace/ApiUrlResolver.ts +31 -26
  207. package/utils/workspace/ITestWorkspaceUtil.ts +31 -31
  208. package/utils/workspace/TestWorkspaceUtil.ts +152 -145
  209. package/utils/workspace/WorkspaceStatus.ts +5 -5
  210. package/constants/APITestConstants.ts +0 -57
  211. package/constants/BaseTestConstants.ts +0 -68
  212. package/constants/ChromeDriverConstants.ts +0 -46
  213. package/constants/FactoryTestConstants.ts +0 -51
  214. package/constants/MonacoConstants.ts +0 -22
  215. package/constants/OAuthConstants.ts +0 -57
  216. package/constants/PluginsTestConstants.ts +0 -15
  217. package/constants/ReporterConstants.ts +0 -45
  218. package/constants/TimeoutConstants.ts +0 -113
  219. package/dist/constants/APITestConstants.js.map +0 -1
  220. package/dist/constants/BaseTestConstants.js.map +0 -1
  221. package/dist/constants/ChromeDriverConstants.js +0 -44
  222. package/dist/constants/ChromeDriverConstants.js.map +0 -1
  223. package/dist/constants/FactoryTestConstants.js.map +0 -1
  224. package/dist/constants/MonacoConstants.js.map +0 -1
  225. package/dist/constants/OAuthConstants.js.map +0 -1
  226. package/dist/constants/PluginsTestConstants.js.map +0 -1
  227. package/dist/constants/ReporterConstants.js.map +0 -1
  228. package/dist/constants/TimeoutConstants.js.map +0 -1
  229. 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
@@ -13,63 +13,50 @@ import { injectable } from 'inversify';
13
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;
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
- }
28
-
29
- get(): ThenableWebDriver {
30
- return this.driver as ThenableWebDriver;
31
- }
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
- }
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
- }
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);
58
-
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
- }
65
-
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
- }
74
-
20
+ private readonly driver: ThenableWebDriver | undefined;
21
+
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
+
29
+ get(): ThenableWebDriver {
30
+ return this.driver as ThenableWebDriver;
31
+ }
32
+
33
+ private getDriverOptions(): Options {
34
+ let options: Options = new Options()
35
+ .addArguments('--no-sandbox')
36
+ .addArguments('--disable-web-security')
37
+ .addArguments('--allow-running-insecure-content')
38
+ .addArguments('--ignore-certificate-errors');
39
+ // if 'true' run in 'headless' mode
40
+ if (CHROME_DRIVER_CONSTANTS.TS_SELENIUM_HEADLESS) {
41
+ options = options.addArguments('headless');
42
+ }
43
+ return options;
44
+ }
45
+
46
+ private getDriverBuilder(options: Options): Builder {
47
+ const disableW3copts: object = { 'goog:chromeOptions': { w3c: false } };
48
+ let builder: Builder = new Builder().forBrowser('chrome').setChromeOptions(options);
49
+
50
+ // if 'false' w3c protocol is disabled
51
+ if (!CHROME_DRIVER_CONSTANTS.TS_SELENIUM_W3C_CHROME_OPTION) {
52
+ builder.withCapabilities(disableW3copts).forBrowser('chrome').setChromeOptions(options);
53
+ }
54
+
55
+ // if 'true' run with remote driver
56
+ if (CHROME_DRIVER_CONSTANTS.TS_SELENIUM_REMOTE_DRIVER_URL) {
57
+ builder = builder.usingServer(CHROME_DRIVER_CONSTANTS.TS_SELENIUM_REMOTE_DRIVER_URL);
58
+ }
59
+
60
+ return builder;
61
+ }
75
62
  }
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
@@ -8,6 +8,8 @@ export * from './utils/BrowserTabsUtil';
8
8
  export * from './utils/DevWorkspaceConfigurationHelper';
9
9
  export * from './utils/DevfilesRegistryHelper';
10
10
  export * from './utils/DriverHelper';
11
+ export * from './utils/IContextParams';
12
+ export * from './utils/IKubernetesCommandLineToolsExecutor';
11
13
  export * from './utils/KubernetesCommandLineToolsExecutor';
12
14
  export * from './utils/Logger';
13
15
  export * from './utils/ScreenCatcher';
@@ -41,12 +43,12 @@ export * from './pageobjects/openshift/OcpMainPage';
41
43
  export * from './tests-library/LoginTests';
42
44
  export * from './tests-library/ProjectAndFileTests';
43
45
  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';
46
+ export * from './constants/API_TEST_CONSTANTS';
47
+ export * from './constants/BASE_TEST_CONSTANTS';
48
+ export * from './constants/CHROME_DRIVER_CONSTANTS';
49
+ export * from './constants/FACTORY_TEST_CONSTANTS';
50
+ export * from './constants/MONACO_CONSTANTS';
51
+ export * from './constants/OAUTH_CONSTANTS';
52
+ export * from './constants/PLUGIN_TEST_CONSTANTS';
53
+ export * from './constants/REPORTER_CONSTANTS';
54
+ export * from './constants/TIMEOUT_CONSTANTS';
package/package.json CHANGED
@@ -1,51 +1,61 @@
1
1
  {
2
- "name": "@eclipse-che/che-e2e",
3
- "version": "7.74.0-dev-1d09cb7",
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-aace77a",
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": "4.9.4",
50
+ "vscode-extension-tester-locators": "3.1.0",
51
+ "yaml": "^2.2.2"
52
+ },
53
+ "dependencies": {
54
+ "@eclipse-che/api": "latest",
55
+ "inversify": "6.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
@@ -13,85 +13,95 @@ 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
+ private static readonly FACTORY_URL: 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(`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();
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(`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(`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(`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}"`);
61
67
 
62
- private async clickOnEditorsDropdownListButton(sampleName: string, timeout: number): Promise<void> {
63
- Logger.debug(`sampleName: "${sampleName}, editor ${BaseTestConstants.TS_SELENIUM_EDITOR}"`);
68
+ await this.driverHelper.waitVisibility(CreateWorkspace.FACTORY_URL, timeout);
69
+ await this.driverHelper.type(CreateWorkspace.FACTORY_URL, Key.chord(factoryUrl, Key.ENTER), timeout);
70
+ }
64
71
 
65
- const editorDropdownListLocator: By = this.getEditorsDropdownListLocator(sampleName);
66
- await this.driverHelper.waitAndClick(editorDropdownListLocator, timeout);
67
- }
72
+ async clickOnEditorsDropdownListButton(sampleName: string, timeout: number): Promise<void> {
73
+ Logger.debug(`sampleName: "${sampleName}, editor ${BASE_TEST_CONSTANTS.TS_SELENIUM_EDITOR}"`);
68
74
 
69
- private getEditorsDropdownListLocator(sampleName: string): By {
70
- return By.xpath(`//div[text()=\'${sampleName}\']//parent::article//button`);
71
- }
75
+ const editorDropdownListLocator: By = this.getEditorsDropdownListLocator(sampleName);
76
+ await this.driverHelper.waitAndClick(editorDropdownListLocator, timeout);
77
+ }
72
78
 
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
- }
79
+ private getEditorsDropdownListLocator(sampleName: string): By {
80
+ return By.xpath(`//div[text()=\'${sampleName}\']//parent::article//button`);
81
+ }
82
82
 
83
- Logger.trace(`sampleName: ${sampleName}, editor "${editor}"`);
83
+ private getSampleLocatorWithSpecificEditor(sampleName: string): By {
84
+ let editor: string = '';
85
+ switch (process.env.TS_SELENIUM_EDITOR) {
86
+ case 'che-code':
87
+ editor = 'code';
88
+ break;
89
+ default:
90
+ throw new Error(`Unsupported editor ${process.env.TS_SELENIUM_EDITOR}`);
91
+ }
84
92
 
85
- return By.xpath(`//div[text()='${sampleName}']//parent::article//span[text()[
93
+ Logger.trace(`sampleName: ${sampleName}, editor "${editor}"`);
94
+
95
+ return By.xpath(`//div[text()='${sampleName}']//parent::article//span[text()[
86
96
  contains(
87
97
  translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),
88
98
  '${editor}')]
89
99
  ]//parent::a`);
90
- }
100
+ }
91
101
 
92
- private getSampleLocator(sampleName: string): By {
93
- Logger.trace(`sampleName: ${sampleName}, used default editor`);
102
+ private getSampleLocator(sampleName: string): By {
103
+ Logger.trace(`sampleName: ${sampleName}, used default editor`);
94
104
 
95
- return By.xpath(`//article[contains(@class, 'sample-card')]//div[text()='${sampleName}']`);
96
- }
105
+ return By.xpath(`//article[contains(@class, 'sample-card')]//div[text()='${sampleName}']`);
106
+ }
97
107
  }