@eclipse-che/che-e2e 7.67.0 → 7.67.1-dev-e49f025
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.
- package/README.md +13 -4
- package/build/dockerfiles/Dockerfile +1 -1
- package/configs/inversify.config.ts +20 -17
- package/configs/inversify.types.ts +3 -3
- package/configs/mocharc.ts +14 -4
- package/configs/sh-scripts/generateIndex.sh +2 -3
- package/constants/APITestConstants.ts +56 -0
- package/constants/BaseTestConstants.ts +65 -0
- package/constants/ChromeDriverConstants.ts +46 -0
- package/constants/FactoryTestConstants.ts +45 -0
- package/constants/MonacoConstants.ts +22 -0
- package/constants/OAuthConstants.ts +56 -0
- package/constants/PluginsTestConstants.ts +15 -0
- package/constants/ReporterConstants.ts +45 -0
- package/constants/TimeoutConstants.ts +28 -146
- package/dist/configs/inversify.config.js +17 -13
- package/dist/configs/inversify.config.js.map +1 -1
- package/dist/configs/inversify.types.js +3 -2
- package/dist/configs/inversify.types.js.map +1 -1
- package/dist/configs/mocharc.js +13 -4
- package/dist/configs/mocharc.js.map +1 -1
- package/dist/constants/APITestConstants.js +54 -0
- package/dist/constants/APITestConstants.js.map +1 -0
- package/dist/constants/BaseTestConstants.js +61 -0
- package/dist/constants/BaseTestConstants.js.map +1 -0
- package/dist/constants/ChromeDriverConstants.js +44 -0
- package/dist/constants/ChromeDriverConstants.js.map +1 -0
- package/dist/constants/FactoryTestConstants.js +44 -0
- package/dist/constants/FactoryTestConstants.js.map +1 -0
- package/dist/constants/MonacoConstants.js +25 -0
- package/dist/constants/MonacoConstants.js.map +1 -0
- package/dist/constants/OAuthConstants.js +52 -0
- package/dist/constants/OAuthConstants.js.map +1 -0
- package/dist/constants/PluginsTestConstants.js +19 -0
- package/dist/constants/PluginsTestConstants.js.map +1 -0
- package/dist/constants/ReporterConstants.js +43 -0
- package/dist/constants/ReporterConstants.js.map +1 -0
- package/dist/constants/TimeoutConstants.js +22 -113
- package/dist/constants/TimeoutConstants.js.map +1 -1
- package/dist/driver/ChromeDriver.js +7 -7
- package/dist/driver/ChromeDriver.js.map +1 -1
- package/dist/index.js +22 -12
- package/dist/index.js.map +1 -1
- package/dist/pageobjects/dashboard/CreateWorkspace.js +2 -2
- package/dist/pageobjects/dashboard/CreateWorkspace.js.map +1 -1
- package/dist/pageobjects/dashboard/Dashboard.js +7 -6
- package/dist/pageobjects/dashboard/Dashboard.js.map +1 -1
- package/dist/pageobjects/dashboard/Workspaces.js +3 -4
- package/dist/pageobjects/dashboard/Workspaces.js.map +1 -1
- package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js +2 -3
- package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js.map +1 -1
- package/dist/pageobjects/git-providers/OauthPage.js +12 -19
- package/dist/pageobjects/git-providers/OauthPage.js.map +1 -1
- package/dist/pageobjects/ide/CheCodeLocatorLoader.js +2 -2
- package/dist/pageobjects/ide/CheCodeLocatorLoader.js.map +1 -1
- package/dist/pageobjects/login/interfaces/ICheLoginPage.js.map +1 -0
- package/dist/pageobjects/login/interfaces/IOcpLoginPage.js.map +1 -0
- package/dist/pageobjects/login/kubernetes/DexLoginPage.js +68 -0
- package/dist/pageobjects/login/kubernetes/DexLoginPage.js.map +1 -0
- package/dist/pageobjects/{openshift/CheLoginPage.js → login/kubernetes/KubernetesLoginPage.js} +21 -26
- package/dist/pageobjects/login/kubernetes/KubernetesLoginPage.js.map +1 -0
- package/dist/pageobjects/{openshift → login/openshift}/OcpLoginPage.js +7 -7
- package/dist/pageobjects/login/openshift/OcpLoginPage.js.map +1 -0
- package/dist/pageobjects/login/{OcpRedHatLoginPage.js → openshift/OcpRedHatLoginPage.js} +5 -5
- package/dist/pageobjects/login/openshift/OcpRedHatLoginPage.js.map +1 -0
- package/dist/pageobjects/login/{OcpUserLoginPage.js → openshift/OcpUserLoginPage.js} +7 -7
- package/dist/pageobjects/login/openshift/OcpUserLoginPage.js.map +1 -0
- package/dist/pageobjects/login/{RedHatLoginPage.js → openshift/RedHatLoginPage.js} +6 -6
- package/dist/pageobjects/login/openshift/RedHatLoginPage.js.map +1 -0
- package/dist/pageobjects/login/{RegularUserOcpCheLoginPage.js → openshift/RegularUserOcpCheLoginPage.js} +8 -8
- package/dist/pageobjects/login/openshift/RegularUserOcpCheLoginPage.js.map +1 -0
- package/dist/specs/MochaHooks.js +18 -11
- package/dist/specs/MochaHooks.js.map +1 -1
- package/dist/specs/SmokeTest.spec.js +5 -2
- package/dist/specs/SmokeTest.spec.js.map +1 -1
- package/dist/specs/api/ContainerOverridesAPI.spec.js +5 -4
- package/dist/specs/api/ContainerOverridesAPI.spec.js.map +1 -1
- package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js +93 -0
- package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js.map +1 -0
- package/dist/specs/api/EmptyWorkspaceAPI.spec.js +62 -0
- package/dist/specs/api/EmptyWorkspaceAPI.spec.js.map +1 -0
- package/dist/specs/api/PodOverridesAPI.spec.js +5 -4
- package/dist/specs/api/PodOverridesAPI.spec.js.map +1 -1
- package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js +7 -2
- package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js.map +1 -1
- package/dist/specs/dashboard-samples/RecomendedExtentions.spec.js +7 -6
- package/dist/specs/dashboard-samples/RecomendedExtentions.spec.js.map +1 -1
- package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js +4 -4
- package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js.map +1 -1
- package/dist/specs/factory/Factory.spec.js +20 -18
- package/dist/specs/factory/Factory.spec.js.map +1 -1
- package/dist/specs/factory/NoSetupRepoFactory.spec.js +28 -28
- package/dist/specs/factory/NoSetupRepoFactory.spec.js.map +1 -1
- package/dist/specs/factory/RefusedOAuthFactory.spec.js +28 -26
- package/dist/specs/factory/RefusedOAuthFactory.spec.js.map +1 -1
- package/dist/tests-library/LoginTests.js +4 -4
- package/dist/tests-library/LoginTests.js.map +1 -1
- package/dist/tests-library/ProjectAndFileTests.js.map +1 -1
- package/dist/tests-library/WorkspaceHandlingTests.js +1 -2
- package/dist/tests-library/WorkspaceHandlingTests.js.map +1 -1
- package/dist/utils/BrowserTabsUtil.js +2 -2
- package/dist/utils/BrowserTabsUtil.js.map +1 -1
- package/dist/utils/CheReporter.js +33 -36
- package/dist/utils/CheReporter.js.map +1 -1
- package/dist/utils/DevWorkspaceConfigurationHelper.js +72 -0
- package/dist/utils/DevWorkspaceConfigurationHelper.js.map +1 -0
- package/dist/utils/DevfilesRegistryHelper.js +82 -0
- package/dist/utils/DevfilesRegistryHelper.js.map +1 -0
- package/dist/utils/DriverHelper.js +20 -17
- package/dist/utils/DriverHelper.js.map +1 -1
- package/dist/utils/KubernetesCommandLineToolsExecutor.js +42 -29
- package/dist/utils/KubernetesCommandLineToolsExecutor.js.map +1 -1
- package/dist/utils/Logger.js +11 -11
- package/dist/utils/Logger.js.map +1 -1
- package/dist/utils/ScreenCatcher.js +9 -12
- package/dist/utils/ScreenCatcher.js.map +1 -1
- package/dist/utils/ShellExecutor.js +5 -2
- package/dist/utils/ShellExecutor.js.map +1 -1
- package/dist/utils/{vsc/GitUtil.js → StringUtil.js} +26 -8
- package/dist/utils/StringUtil.js.map +1 -0
- package/dist/utils/request-handlers/CheApiRequestHandler.js +2 -2
- package/dist/utils/request-handlers/CheApiRequestHandler.js.map +1 -1
- package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js +4 -2
- package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js.map +1 -1
- package/dist/utils/workspace/ApiUrlResolver.js.map +1 -1
- package/dist/utils/workspace/TestWorkspaceUtil.js +9 -7
- package/dist/utils/workspace/TestWorkspaceUtil.js.map +1 -1
- package/driver/ChromeDriver.ts +7 -7
- package/index.ts +22 -12
- package/package.json +4 -2
- package/pageobjects/dashboard/CreateWorkspace.ts +2 -2
- package/pageobjects/dashboard/Dashboard.ts +7 -6
- package/pageobjects/dashboard/Workspaces.ts +3 -4
- package/pageobjects/dashboard/workspace-details/WorkspaceDetails.ts +2 -3
- package/pageobjects/git-providers/OauthPage.ts +8 -16
- package/pageobjects/ide/CheCodeLocatorLoader.ts +2 -2
- package/pageobjects/login/kubernetes/DexLoginPage.ts +58 -0
- package/pageobjects/login/kubernetes/KubernetesLoginPage.ts +33 -0
- package/pageobjects/{openshift → login/openshift}/OcpLoginPage.ts +7 -7
- package/pageobjects/login/{OcpRedHatLoginPage.ts → openshift/OcpRedHatLoginPage.ts} +6 -6
- package/pageobjects/login/{OcpUserLoginPage.ts → openshift/OcpUserLoginPage.ts} +8 -8
- package/pageobjects/login/{RedHatLoginPage.ts → openshift/RedHatLoginPage.ts} +6 -6
- package/pageobjects/login/{RegularUserOcpCheLoginPage.ts → openshift/RegularUserOcpCheLoginPage.ts} +9 -9
- package/specs/MochaHooks.ts +18 -12
- package/specs/SmokeTest.spec.ts +5 -2
- package/specs/api/ContainerOverridesAPI.spec.ts +5 -4
- package/specs/api/DevfileAcceptanceTestAPI.spec.ts +106 -0
- package/specs/api/EmptyWorkspaceAPI.spec.ts +74 -0
- package/specs/api/PodOverridesAPI.spec.ts +5 -4
- package/specs/dashboard-samples/EmptyWorkspace.spec.ts +10 -2
- package/specs/dashboard-samples/RecomendedExtentions.spec.ts +8 -7
- package/specs/devconsole-intergration/DevConsoleIntegration.spec.ts +4 -4
- package/specs/factory/Factory.spec.ts +21 -19
- package/specs/factory/NoSetupRepoFactory.spec.ts +29 -30
- package/specs/factory/RefusedOAuthFactory.spec.ts +29 -28
- package/tests-library/LoginTests.ts +9 -9
- package/tests-library/ProjectAndFileTests.ts +1 -1
- package/tests-library/WorkspaceHandlingTests.ts +11 -12
- package/utils/BrowserTabsUtil.ts +2 -2
- package/utils/CheReporter.ts +35 -42
- package/utils/DevWorkspaceConfigurationHelper.ts +83 -0
- package/utils/DevfilesRegistryHelper.ts +77 -0
- package/utils/DriverHelper.ts +54 -50
- package/utils/KubernetesCommandLineToolsExecutor.ts +43 -28
- package/utils/Logger.ts +16 -17
- package/utils/ScreenCatcher.ts +8 -9
- package/utils/ShellExecutor.ts +6 -2
- package/utils/StringUtil.ts +46 -0
- package/utils/request-handlers/CheApiRequestHandler.ts +4 -4
- package/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.ts +4 -2
- package/utils/workspace/ApiUrlResolver.ts +2 -2
- package/utils/workspace/TestWorkspaceUtil.ts +16 -14
- package/constants/TestConstants.ts +0 -247
- package/dist/constants/TestConstants.js +0 -198
- package/dist/constants/TestConstants.js.map +0 -1
- package/dist/pageobjects/login/ICheLoginPage.js.map +0 -1
- package/dist/pageobjects/login/IOcpLoginPage.js.map +0 -1
- package/dist/pageobjects/login/OcpRedHatLoginPage.js.map +0 -1
- package/dist/pageobjects/login/OcpUserLoginPage.js.map +0 -1
- package/dist/pageobjects/login/RedHatLoginPage.js.map +0 -1
- package/dist/pageobjects/login/RegularUserOcpCheLoginPage.js.map +0 -1
- package/dist/pageobjects/openshift/CheLoginPage.js.map +0 -1
- package/dist/pageobjects/openshift/OcpLoginPage.js.map +0 -1
- package/dist/specs/api/CloneGitRepoAPI.spec.js +0 -60
- package/dist/specs/api/CloneGitRepoAPI.spec.js.map +0 -1
- package/dist/utils/Sanitizer.js +0 -29
- package/dist/utils/Sanitizer.js.map +0 -1
- package/dist/utils/vsc/GitUtil.js.map +0 -1
- package/pageobjects/openshift/CheLoginPage.ts +0 -42
- package/specs/api/CloneGitRepoAPI.spec.ts +0 -72
- package/utils/Sanitizer.ts +0 -19
- package/utils/vsc/GitUtil.ts +0 -25
- /package/dist/pageobjects/login/{ICheLoginPage.js → interfaces/ICheLoginPage.js} +0 -0
- /package/dist/pageobjects/login/{IOcpLoginPage.js → interfaces/IOcpLoginPage.js} +0 -0
- /package/pageobjects/login/{ICheLoginPage.ts → interfaces/ICheLoginPage.ts} +0 -0
- /package/pageobjects/login/{IOcpLoginPage.ts → interfaces/IOcpLoginPage.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestWorkspaceUtil.js","sourceRoot":"","sources":["../../../utils/workspace/TestWorkspaceUtil.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;;;;;;;;;;;;;;;;;AAExE,4BAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"TestWorkspaceUtil.js","sourceRoot":"","sources":["../../../utils/workspace/TestWorkspaceUtil.ts"],"names":[],"mappings":"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"}
|
package/driver/ChromeDriver.ts
CHANGED
|
@@ -13,7 +13,7 @@ import { injectable } from 'inversify';
|
|
|
13
13
|
import { ThenableWebDriver, Builder } from 'selenium-webdriver';
|
|
14
14
|
import { IDriver } from './IDriver';
|
|
15
15
|
import { Options } from 'selenium-webdriver/chrome';
|
|
16
|
-
import {
|
|
16
|
+
import { ChromeDriverConstants } from '../constants/ChromeDriverConstants';
|
|
17
17
|
|
|
18
18
|
@injectable()
|
|
19
19
|
export class ChromeDriver implements IDriver {
|
|
@@ -21,7 +21,7 @@ export class ChromeDriver implements IDriver {
|
|
|
21
21
|
|
|
22
22
|
constructor() {
|
|
23
23
|
const options: Options = this.getDriverOptions();
|
|
24
|
-
if (
|
|
24
|
+
if (ChromeDriverConstants.TS_USE_WEB_DRIVER_FOR_TEST) {
|
|
25
25
|
this.driver = this.getDriverBuilder(options).build();
|
|
26
26
|
}
|
|
27
27
|
}
|
|
@@ -34,7 +34,7 @@ export class ChromeDriver implements IDriver {
|
|
|
34
34
|
await (this.driver as ThenableWebDriver)
|
|
35
35
|
.manage()
|
|
36
36
|
.window()
|
|
37
|
-
.setSize(
|
|
37
|
+
.setSize(ChromeDriverConstants.TS_SELENIUM_RESOLUTION_WIDTH, ChromeDriverConstants.TS_SELENIUM_RESOLUTION_HEIGHT);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
private getDriverOptions(): Options {
|
|
@@ -44,7 +44,7 @@ export class ChromeDriver implements IDriver {
|
|
|
44
44
|
.addArguments('--allow-running-insecure-content')
|
|
45
45
|
.addArguments('--ignore-certificate-errors');
|
|
46
46
|
// if 'true' run in 'headless' mode
|
|
47
|
-
if (
|
|
47
|
+
if (ChromeDriverConstants.TS_SELENIUM_HEADLESS) {
|
|
48
48
|
options = options.addArguments('headless');
|
|
49
49
|
}
|
|
50
50
|
return options;
|
|
@@ -57,15 +57,15 @@ export class ChromeDriver implements IDriver {
|
|
|
57
57
|
.setChromeOptions(options);
|
|
58
58
|
|
|
59
59
|
// if 'false' w3c protocol is disabled
|
|
60
|
-
if (!
|
|
60
|
+
if (! ChromeDriverConstants.TS_SELENIUM_W3C_CHROME_OPTION) {
|
|
61
61
|
builder.withCapabilities(disableW3copts)
|
|
62
62
|
.forBrowser('chrome')
|
|
63
63
|
.setChromeOptions(options);
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
// if 'true' run with remote driver
|
|
67
|
-
if (
|
|
68
|
-
builder = builder.usingServer(
|
|
67
|
+
if (ChromeDriverConstants.TS_SELENIUM_REMOTE_DRIVER_URL) {
|
|
68
|
+
builder = builder.usingServer(ChromeDriverConstants.TS_SELENIUM_REMOTE_DRIVER_URL);
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
return builder;
|
package/index.ts
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import * as inversifyConfig from './configs/inversify.config';
|
|
2
2
|
export { inversifyConfig };
|
|
3
3
|
export * from './configs/inversify.types';
|
|
4
|
-
export * from './
|
|
5
|
-
export * from './constants/TimeoutConstants';
|
|
4
|
+
export * from './configs/mocharc';
|
|
6
5
|
export * from './driver/ChromeDriver';
|
|
7
6
|
export * from './driver/IDriver';
|
|
8
7
|
export * from './utils/BrowserTabsUtil';
|
|
8
|
+
export * from './utils/DevWorkspaceConfigurationHelper';
|
|
9
|
+
export * from './utils/DevfilesRegistryHelper';
|
|
9
10
|
export * from './utils/DriverHelper';
|
|
10
11
|
export * from './utils/KubernetesCommandLineToolsExecutor';
|
|
11
12
|
export * from './utils/Logger';
|
|
12
|
-
export * from './utils/Sanitizer';
|
|
13
13
|
export * from './utils/ScreenCatcher';
|
|
14
14
|
export * from './utils/ShellExecutor';
|
|
15
|
+
export * from './utils/StringUtil';
|
|
15
16
|
export * from './utils/request-handlers/CheApiRequestHandler';
|
|
16
17
|
export * from './utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler';
|
|
17
18
|
export * from './utils/request-handlers/headers/IAuthorizationHeaderHandler';
|
|
18
|
-
export * from './utils/vsc/GitUtil';
|
|
19
19
|
export * from './utils/workspace/ApiUrlResolver';
|
|
20
20
|
export * from './utils/workspace/ITestWorkspaceUtil';
|
|
21
21
|
export * from './utils/workspace/TestWorkspaceUtil';
|
|
@@ -26,17 +26,27 @@ export * from './pageobjects/dashboard/Workspaces';
|
|
|
26
26
|
export * from './pageobjects/dashboard/workspace-details/WorkspaceDetails';
|
|
27
27
|
export * from './pageobjects/git-providers/OauthPage';
|
|
28
28
|
export * from './pageobjects/ide/CheCodeLocatorLoader';
|
|
29
|
-
export * from './pageobjects/login/ICheLoginPage';
|
|
30
|
-
export * from './pageobjects/login/IOcpLoginPage';
|
|
31
|
-
export * from './pageobjects/login/
|
|
32
|
-
export * from './pageobjects/login/
|
|
33
|
-
export * from './pageobjects/login/
|
|
34
|
-
export * from './pageobjects/login/
|
|
35
|
-
export * from './pageobjects/openshift/
|
|
29
|
+
export * from './pageobjects/login/interfaces/ICheLoginPage';
|
|
30
|
+
export * from './pageobjects/login/interfaces/IOcpLoginPage';
|
|
31
|
+
export * from './pageobjects/login/kubernetes/DexLoginPage';
|
|
32
|
+
export * from './pageobjects/login/kubernetes/KubernetesLoginPage';
|
|
33
|
+
export * from './pageobjects/login/openshift/OcpLoginPage';
|
|
34
|
+
export * from './pageobjects/login/openshift/OcpRedHatLoginPage';
|
|
35
|
+
export * from './pageobjects/login/openshift/OcpUserLoginPage';
|
|
36
|
+
export * from './pageobjects/login/openshift/RedHatLoginPage';
|
|
37
|
+
export * from './pageobjects/login/openshift/RegularUserOcpCheLoginPage';
|
|
36
38
|
export * from './pageobjects/openshift/OcpApplicationPage';
|
|
37
39
|
export * from './pageobjects/openshift/OcpImportFromGitPage';
|
|
38
|
-
export * from './pageobjects/openshift/OcpLoginPage';
|
|
39
40
|
export * from './pageobjects/openshift/OcpMainPage';
|
|
40
41
|
export * from './tests-library/LoginTests';
|
|
41
42
|
export * from './tests-library/ProjectAndFileTests';
|
|
42
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';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eclipse-che/che-e2e",
|
|
3
|
-
"version": "7.67.
|
|
3
|
+
"version": "7.67.1-dev-e49f025",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -11,11 +11,13 @@
|
|
|
11
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
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
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"
|
|
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'"
|
|
15
16
|
},
|
|
16
17
|
"author": "Ihor Okhrimenko (iokhrime@redhat.com)",
|
|
17
18
|
"license": "ISC",
|
|
18
19
|
"devDependencies": {
|
|
20
|
+
"@eclipse-che/che-devworkspace-generator": "next",
|
|
19
21
|
"@types/chai": "^4.3.4",
|
|
20
22
|
"@types/clone-deep": "^4.0.1",
|
|
21
23
|
"@types/mocha": "5.2.6",
|
|
@@ -14,7 +14,7 @@ import { DriverHelper } from '../../utils/DriverHelper';
|
|
|
14
14
|
import { By, Key } from 'selenium-webdriver';
|
|
15
15
|
import { Logger } from '../../utils/Logger';
|
|
16
16
|
import { TimeoutConstants } from '../../constants/TimeoutConstants';
|
|
17
|
-
import {
|
|
17
|
+
import { BaseTestConstants } from '../../constants/BaseTestConstants';
|
|
18
18
|
|
|
19
19
|
@injectable()
|
|
20
20
|
export class CreateWorkspace {
|
|
@@ -60,7 +60,7 @@ export class CreateWorkspace {
|
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
private async clickOnEditorsDropdownListButton(sampleName: string, timeout: number): Promise<void> {
|
|
63
|
-
Logger.debug(`CreateWorkspace.clickOnSample sampleName: "${sampleName}, editor ${
|
|
63
|
+
Logger.debug(`CreateWorkspace.clickOnSample sampleName: "${sampleName}, editor ${BaseTestConstants.TS_SELENIUM_EDITOR}"`);
|
|
64
64
|
|
|
65
65
|
const editorDropdownListLocator: By = this.getEditorsDropdownListLocator(sampleName);
|
|
66
66
|
await this.driverHelper.waitAndClick(editorDropdownListLocator, timeout);
|
|
@@ -12,10 +12,11 @@ import 'reflect-metadata';
|
|
|
12
12
|
import { CLASSES } from '../../configs/inversify.types';
|
|
13
13
|
import { By } from 'selenium-webdriver';
|
|
14
14
|
import { DriverHelper } from '../../utils/DriverHelper';
|
|
15
|
-
import { TestConstants } from '../../constants/TestConstants';
|
|
16
15
|
import { TimeoutConstants } from '../../constants/TimeoutConstants';
|
|
17
16
|
import { Workspaces } from './Workspaces';
|
|
18
17
|
import { Logger } from '../../utils/Logger';
|
|
18
|
+
import { OAuthConstants } from '../../constants/OAuthConstants';
|
|
19
|
+
import { BaseTestConstants } from '../../constants/BaseTestConstants';
|
|
19
20
|
|
|
20
21
|
@injectable()
|
|
21
22
|
export class Dashboard {
|
|
@@ -29,7 +30,7 @@ export class Dashboard {
|
|
|
29
30
|
private static getUserDropdownMenuButtonLocator(): By {
|
|
30
31
|
Logger.debug(`Dashboard.getUserDropdownMenuButtonLocator: get current user.`);
|
|
31
32
|
|
|
32
|
-
const currentUser: string =
|
|
33
|
+
const currentUser: string = OAuthConstants.TS_SELENIUM_OCP_USERNAME;
|
|
33
34
|
Logger.debug(`Dashboard.getUserDropdownMenuButtonLocator: ${currentUser}.`);
|
|
34
35
|
|
|
35
36
|
return By.xpath(`//*[text()="${currentUser}"]//parent::button`);
|
|
@@ -60,7 +61,7 @@ export class Dashboard {
|
|
|
60
61
|
await this.workspaces.waitWorkspaceListItem(workspaceName);
|
|
61
62
|
await this.workspaces.deleteWorkspaceByActionsButton(workspaceName);
|
|
62
63
|
await this.workspaces.waitPage();
|
|
63
|
-
await this.workspaces.
|
|
64
|
+
await this.workspaces.waitWorkspaceListItemAbsence(workspaceName);
|
|
64
65
|
}
|
|
65
66
|
|
|
66
67
|
async stopAndRemoveWorkspaceByUI(workspaceName: string): Promise<void> {
|
|
@@ -68,12 +69,12 @@ export class Dashboard {
|
|
|
68
69
|
|
|
69
70
|
await this.stopWorkspaceByUI(workspaceName);
|
|
70
71
|
await this.workspaces.deleteWorkspaceByActionsButton(workspaceName);
|
|
71
|
-
await this.workspaces.
|
|
72
|
+
await this.workspaces.waitWorkspaceListItemAbsence(workspaceName);
|
|
72
73
|
}
|
|
73
74
|
|
|
74
75
|
async openDashboard(): Promise<void> {
|
|
75
76
|
Logger.debug('Dashboard.openDashboard');
|
|
76
|
-
await this.driverHelper.getDriver().navigate().to(
|
|
77
|
+
await this.driverHelper.getDriver().navigate().to(BaseTestConstants.TS_SELENIUM_BASE_URL);
|
|
77
78
|
await this.waitPage();
|
|
78
79
|
|
|
79
80
|
}
|
|
@@ -125,7 +126,7 @@ export class Dashboard {
|
|
|
125
126
|
Logger.debug(`Dashboard.waitStartingPageLoaderDisappearance`);
|
|
126
127
|
|
|
127
128
|
await this.driverHelper.waitDisappearance(By.css(Dashboard.STARTING_PAGE_LOADER_CSS), timeout);
|
|
128
|
-
await this.driverHelper.wait(
|
|
129
|
+
await this.driverHelper.wait(TimeoutConstants.TS_SELENIUM_DEFAULT_POLLING);
|
|
129
130
|
}
|
|
130
131
|
|
|
131
132
|
async getRecentWorkspaceName(timeout: number = TimeoutConstants.TS_COMMON_DASHBOARD_WAIT_TIMEOUT): Promise<string> {
|
|
@@ -14,7 +14,6 @@ import { CLASSES } from '../../configs/inversify.types';
|
|
|
14
14
|
import { By, WebElement } from 'selenium-webdriver';
|
|
15
15
|
import { Logger } from '../../utils/Logger';
|
|
16
16
|
import { TimeoutConstants } from '../../constants/TimeoutConstants';
|
|
17
|
-
import { TestConstants } from '../../constants/TestConstants';
|
|
18
17
|
|
|
19
18
|
export enum WorkspaceStatusUI {
|
|
20
19
|
Running = 'green',
|
|
@@ -160,10 +159,10 @@ export class Workspaces {
|
|
|
160
159
|
await this.clickActionsStopWorkspaceButton(workspaceName);
|
|
161
160
|
}
|
|
162
161
|
|
|
163
|
-
async
|
|
164
|
-
Logger.debug(`Workspaces.
|
|
162
|
+
async waitWorkspaceListItemAbsence(workspaceName: string, timeout: number = TimeoutConstants.TS_DASHBOARD_WORKSPACE_STOP_TIMEOUT): Promise<void> {
|
|
163
|
+
Logger.debug(`Workspaces.waitWorkspaceListItemAbsence "${workspaceName}"`);
|
|
165
164
|
|
|
166
|
-
const polling: number =
|
|
165
|
+
const polling: number = TimeoutConstants.TS_SELENIUM_DEFAULT_POLLING;
|
|
167
166
|
const attempts: number = Math.ceil(timeout / polling);
|
|
168
167
|
|
|
169
168
|
const workspaceListItemLocator: By = By.xpath(this.getWorkspaceListItemLocator(workspaceName));
|
|
@@ -11,7 +11,6 @@ import { DriverHelper } from '../../../utils/DriverHelper';
|
|
|
11
11
|
import { injectable, inject } from 'inversify';
|
|
12
12
|
import { CLASSES, TYPES } from '../../../configs/inversify.types';
|
|
13
13
|
import 'reflect-metadata';
|
|
14
|
-
import { TestConstants } from '../../../constants/TestConstants';
|
|
15
14
|
import { By } from 'selenium-webdriver';
|
|
16
15
|
import { WorkspaceStatus } from '../../../utils/workspace/WorkspaceStatus';
|
|
17
16
|
import { Logger } from '../../../utils/Logger';
|
|
@@ -31,7 +30,7 @@ export class WorkspaceDetails {
|
|
|
31
30
|
@inject(TYPES.WorkspaceUtil) private readonly testWorkspaceUtil: ITestWorkspaceUtil,
|
|
32
31
|
@inject(CLASSES.ProjectAndFileTests) private readonly testProjectAndFileCheCode: ProjectAndFileTests) { }
|
|
33
32
|
|
|
34
|
-
async waitLoaderDisappearance(attempts: number =
|
|
33
|
+
async waitLoaderDisappearance(attempts: number = TimeoutConstants.TS_SELENIUM_DEFAULT_ATTEMPTS, polling: number = TimeoutConstants.TS_SELENIUM_DEFAULT_POLLING): Promise<void> {
|
|
35
34
|
Logger.debug('WorkspaceDetails.waitLoaderDisappearance');
|
|
36
35
|
|
|
37
36
|
await this.driverHelper.waitDisappearance(By.css(WorkspaceDetails.WORKSPACE_DETAILS_LOADER_CSS), attempts, polling);
|
|
@@ -125,7 +124,7 @@ export class WorkspaceDetails {
|
|
|
125
124
|
await this.driverHelper.waitVisibility(By.css(WorkspaceDetails.ENABLED_SAVE_BUTTON_CSS), timeout);
|
|
126
125
|
}
|
|
127
126
|
|
|
128
|
-
private async waitSaveButtonDisappearance(attempts: number =
|
|
127
|
+
private async waitSaveButtonDisappearance(attempts: number = TimeoutConstants.TS_SELENIUM_DEFAULT_ATTEMPTS, polling: number = TimeoutConstants.TS_SELENIUM_DEFAULT_POLLING): Promise<void> {
|
|
129
128
|
await this.driverHelper.waitDisappearance(By.css(WorkspaceDetails.SAVE_BUTTON_CSS), attempts, polling);
|
|
130
129
|
}
|
|
131
130
|
|
|
@@ -11,9 +11,10 @@ import { inject, injectable } from 'inversify';
|
|
|
11
11
|
import { By } from 'selenium-webdriver';
|
|
12
12
|
import { CLASSES } from '../../configs/inversify.types';
|
|
13
13
|
import { DriverHelper } from '../../utils/DriverHelper';
|
|
14
|
-
import { GitProviderType, TestConstants } from '../../constants/TestConstants';
|
|
15
14
|
import { Logger } from '../../utils/Logger';
|
|
16
15
|
import { TimeoutConstants } from '../../constants/TimeoutConstants';
|
|
16
|
+
import { FactoryTestConstants, GitProviderType } from '../../constants/FactoryTestConstants';
|
|
17
|
+
import { OAuthConstants } from '../../constants/OAuthConstants';
|
|
17
18
|
|
|
18
19
|
@injectable()
|
|
19
20
|
export class OauthPage {
|
|
@@ -24,7 +25,7 @@ export class OauthPage {
|
|
|
24
25
|
private readonly denyAccessButton: By;
|
|
25
26
|
|
|
26
27
|
constructor(@inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper) {
|
|
27
|
-
switch (
|
|
28
|
+
switch (FactoryTestConstants.TS_SELENIUM_FACTORY_GIT_PROVIDER) {
|
|
28
29
|
case GitProviderType.BITBUCKET : {
|
|
29
30
|
this.loginForm = By.id('j_username');
|
|
30
31
|
this.passwordForm = By.id('j_password');
|
|
@@ -34,9 +35,9 @@ export class OauthPage {
|
|
|
34
35
|
}
|
|
35
36
|
break;
|
|
36
37
|
case GitProviderType.GITLAB: {
|
|
37
|
-
this.loginForm =
|
|
38
|
-
this.passwordForm =
|
|
39
|
-
this.submitButton =
|
|
38
|
+
this.loginForm = By.id('user_login');
|
|
39
|
+
this.passwordForm = By.id('user_password');
|
|
40
|
+
this.submitButton = By.xpath('//button[@data-qa-selector="sign_in_button"]');
|
|
40
41
|
this.approveButton = By.xpath('//*[@value="Authorize"]');
|
|
41
42
|
this.denyAccessButton = By.xpath('//input[@value="Deny"]');
|
|
42
43
|
}
|
|
@@ -58,15 +59,6 @@ export class OauthPage {
|
|
|
58
59
|
async waitLoginPage(): Promise<void> {
|
|
59
60
|
Logger.debug('OauthPage.waitLoginPage');
|
|
60
61
|
|
|
61
|
-
// for gitlab server https://gitlab.cee.redhat.com
|
|
62
|
-
if (!TestConstants.TS_SELENIUM_GIT_PROVIDER_IS_LDAP_LOGIN &&
|
|
63
|
-
TestConstants.TS_SELENIUM_FACTORY_GIT_PROVIDER === GitProviderType.GITLAB) {
|
|
64
|
-
{
|
|
65
|
-
Logger.debug(`OauthPage.login - go to ${TestConstants.TS_SELENIUM_FACTORY_GIT_PROVIDER} Standard login section`);
|
|
66
|
-
await this.driverHelper.waitAndClick(By.xpath('//a[@data-qa-selector="standard_tab"]'));
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
62
|
await this.driverHelper.waitVisibility(this.loginForm, TimeoutConstants.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM * 3);
|
|
71
63
|
}
|
|
72
64
|
|
|
@@ -122,8 +114,8 @@ export class OauthPage {
|
|
|
122
114
|
Logger.debug('OauthPage.login');
|
|
123
115
|
|
|
124
116
|
await this.waitLoginPage();
|
|
125
|
-
await this.enterUserName(
|
|
126
|
-
await this.enterPassword(
|
|
117
|
+
await this.enterUserName(OAuthConstants.TS_SELENIUM_GIT_PROVIDER_USERNAME);
|
|
118
|
+
await this.enterPassword(OAuthConstants.TS_SELENIUM_GIT_PROVIDER_PASSWORD);
|
|
127
119
|
await this.clickOnLoginButton();
|
|
128
120
|
await this.waitClosingLoginPage();
|
|
129
121
|
}
|
|
@@ -12,7 +12,7 @@ import { getLocatorsPath } from 'vscode-extension-tester-locators';
|
|
|
12
12
|
import { LocatorDiff, Locators } from 'monaco-page-objects';
|
|
13
13
|
import { By } from 'selenium-webdriver';
|
|
14
14
|
import clone from 'clone-deep';
|
|
15
|
-
import {
|
|
15
|
+
import { MonacoConstants } from '../../constants/MonacoConstants';
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* This class allows us to change or add some specific locators base on "monaco-page-object" and "vscode-extension-tester-locators".
|
|
@@ -24,7 +24,7 @@ export class CheCodeLocatorLoader extends LocatorLoader {
|
|
|
24
24
|
readonly webCheCodeLocators: Locators;
|
|
25
25
|
|
|
26
26
|
constructor() {
|
|
27
|
-
super(
|
|
27
|
+
super(MonacoConstants.TS_SELENIUM_MONACO_PAGE_OBJECTS_BASE_VERSION, MonacoConstants.TS_SELENIUM_MONACO_PAGE_OBJECTS_BASE_VERSION, getLocatorsPath());
|
|
28
28
|
this.webCheCodeLocators = this.mergeLocators() as Locators;
|
|
29
29
|
}
|
|
30
30
|
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/*********************************************************************
|
|
2
|
+
* Copyright (c) 2019-2023 Red Hat, Inc.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made
|
|
5
|
+
* available under the terms of the Eclipse Public License 2.0
|
|
6
|
+
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
7
|
+
*
|
|
8
|
+
* SPDX-License-Identifier: EPL-2.0
|
|
9
|
+
**********************************************************************/
|
|
10
|
+
import 'reflect-metadata';
|
|
11
|
+
import { injectable, inject } from 'inversify';
|
|
12
|
+
import { CLASSES } from '../../../configs/inversify.types';
|
|
13
|
+
import { Logger } from '../../../utils/Logger';
|
|
14
|
+
import { By } from 'selenium-webdriver';
|
|
15
|
+
import { TimeoutConstants } from '../../../constants/TimeoutConstants';
|
|
16
|
+
import { DriverHelper } from '../../../utils/DriverHelper';
|
|
17
|
+
|
|
18
|
+
@injectable()
|
|
19
|
+
export class DexLoginPage {
|
|
20
|
+
|
|
21
|
+
private static readonly dexPageContentContainer: By = By.className('dex-container');
|
|
22
|
+
private static readonly loginInput: By = By.id('login');
|
|
23
|
+
private static readonly passwordInput: By = By.id('password');
|
|
24
|
+
private static readonly submitButton: By = By.id('submit-login');
|
|
25
|
+
|
|
26
|
+
constructor(
|
|
27
|
+
@inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper) { }
|
|
28
|
+
|
|
29
|
+
async waitDexLoginPage(): Promise<void> {
|
|
30
|
+
Logger.debug(`${this.constructor.name}.${this.waitDexLoginPage.name}`);
|
|
31
|
+
|
|
32
|
+
await this.driverHelper.waitVisibility(DexLoginPage.dexPageContentContainer, TimeoutConstants.TS_SELENIUM_LOAD_PAGE_TIMEOUT);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
async clickOnLoginButton(): Promise<void> {
|
|
36
|
+
Logger.debug(`${this.constructor.name}.${this.clickOnLoginButton.name}`);
|
|
37
|
+
|
|
38
|
+
await this.driverHelper.waitAndClick(DexLoginPage.submitButton);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
async enterUserNameKubernetes(userName: string): Promise<void> {
|
|
42
|
+
Logger.debug(`${this.constructor.name}.${this.enterUserNameKubernetes.name}`);
|
|
43
|
+
|
|
44
|
+
await this.driverHelper.enterValue(DexLoginPage.loginInput, userName);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
async enterPasswordKubernetes(password: string): Promise<void> {
|
|
48
|
+
Logger.debug(`${this.constructor.name}.${this.enterPasswordKubernetes.name}`);
|
|
49
|
+
|
|
50
|
+
await this.driverHelper.enterValue(DexLoginPage.passwordInput, password);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
async waitDexLoginPageDisappearance(): Promise<void> {
|
|
54
|
+
Logger.debug(`${this.constructor.name}.${this.waitDexLoginPageDisappearance.name}`);
|
|
55
|
+
|
|
56
|
+
await this.driverHelper.waitDisappearance(DexLoginPage.dexPageContentContainer, TimeoutConstants.TS_SELENIUM_LOAD_PAGE_TIMEOUT);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/*********************************************************************
|
|
2
|
+
* Copyright (c) 2019-2023 Red Hat, Inc.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made
|
|
5
|
+
* available under the terms of the Eclipse Public License 2.0
|
|
6
|
+
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
7
|
+
*
|
|
8
|
+
* SPDX-License-Identifier: EPL-2.0
|
|
9
|
+
**********************************************************************/
|
|
10
|
+
import 'reflect-metadata';
|
|
11
|
+
import { injectable, inject } from 'inversify';
|
|
12
|
+
import { CLASSES } from '../../../configs/inversify.types';
|
|
13
|
+
import { Logger } from '../../../utils/Logger';
|
|
14
|
+
import { ICheLoginPage } from '../interfaces/ICheLoginPage';
|
|
15
|
+
import { DexLoginPage } from './DexLoginPage';
|
|
16
|
+
import { OAuthConstants } from '../../../constants/OAuthConstants';
|
|
17
|
+
|
|
18
|
+
@injectable()
|
|
19
|
+
export class KubernetesLoginPage implements ICheLoginPage {
|
|
20
|
+
|
|
21
|
+
constructor(
|
|
22
|
+
@inject(CLASSES.DexLoginPage) private readonly dexLoginPage: DexLoginPage) { }
|
|
23
|
+
|
|
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
|
+
}
|
|
33
|
+
}
|
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
**********************************************************************/
|
|
10
10
|
import 'reflect-metadata';
|
|
11
11
|
import { injectable, inject } from 'inversify';
|
|
12
|
-
import { DriverHelper } from '
|
|
13
|
-
import { CLASSES } from '
|
|
12
|
+
import { DriverHelper } from '../../../utils/DriverHelper';
|
|
13
|
+
import { CLASSES } from '../../../configs/inversify.types';
|
|
14
14
|
import { By } from 'selenium-webdriver';
|
|
15
|
-
import { Logger } from '
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
15
|
+
import { Logger } from '../../../utils/Logger';
|
|
16
|
+
import { TimeoutConstants } from '../../../constants/TimeoutConstants';
|
|
17
|
+
import { OAuthConstants } from '../../../constants/OAuthConstants';
|
|
18
18
|
|
|
19
19
|
@injectable()
|
|
20
20
|
export class OcpLoginPage {
|
|
@@ -33,14 +33,14 @@ export class OcpLoginPage {
|
|
|
33
33
|
async clickOnLoginProviderTitle(): Promise<void> {
|
|
34
34
|
Logger.debug('OcpLoginPage.clickOnLoginProviderTitle');
|
|
35
35
|
|
|
36
|
-
const loginProviderTitleLocator: By = By.xpath(`//a[text()=\'${
|
|
36
|
+
const loginProviderTitleLocator: By = By.xpath(`//a[text()=\'${OAuthConstants.TS_OCP_LOGIN_PAGE_PROVIDER_TITLE}\']`);
|
|
37
37
|
await this.driverHelper.waitAndClick(loginProviderTitleLocator, TimeoutConstants.TS_SELENIUM_WAIT_FOR_URL);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
async isIdentityProviderLinkVisible(): Promise<boolean> {
|
|
41
41
|
Logger.debug('OcpLoginPage.isIdentityProviderLinkVisible');
|
|
42
42
|
|
|
43
|
-
const loginWithHtpaswdLocator: By = By.xpath(`//a[text()=\'${
|
|
43
|
+
const loginWithHtpaswdLocator: By = By.xpath(`//a[text()=\'${OAuthConstants.TS_OCP_LOGIN_PAGE_PROVIDER_TITLE}\']`);
|
|
44
44
|
return await this.driverHelper.waitVisibilityBoolean(loginWithHtpaswdLocator, 3, 5000);
|
|
45
45
|
}
|
|
46
46
|
|
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
import 'reflect-metadata';
|
|
11
11
|
import { injectable, inject } from 'inversify';
|
|
12
12
|
import { RedHatLoginPage } from './RedHatLoginPage';
|
|
13
|
-
import { CLASSES } from '
|
|
13
|
+
import { CLASSES } from '../../../configs/inversify.types';
|
|
14
14
|
import { By } from 'selenium-webdriver';
|
|
15
|
-
import { TimeoutConstants } from '
|
|
16
|
-
import { ICheLoginPage } from '
|
|
17
|
-
import { OcpLoginPage } from '
|
|
18
|
-
import { DriverHelper } from '
|
|
19
|
-
import { Logger } from '
|
|
15
|
+
import { TimeoutConstants } from '../../../constants/TimeoutConstants';
|
|
16
|
+
import { ICheLoginPage } from '../interfaces/ICheLoginPage';
|
|
17
|
+
import { OcpLoginPage } from './OcpLoginPage';
|
|
18
|
+
import { DriverHelper } from '../../../utils/DriverHelper';
|
|
19
|
+
import { Logger } from '../../../utils/Logger';
|
|
20
20
|
|
|
21
21
|
@injectable()
|
|
22
22
|
export class OcpRedHatLoginPage implements ICheLoginPage {
|
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
* SPDX-License-Identifier: EPL-2.0
|
|
9
9
|
**********************************************************************/
|
|
10
10
|
import 'reflect-metadata';
|
|
11
|
-
import { IOcpLoginPage } from '
|
|
11
|
+
import { IOcpLoginPage } from '../interfaces/IOcpLoginPage';
|
|
12
12
|
import { injectable, inject } from 'inversify';
|
|
13
|
-
import { OcpLoginPage } from '
|
|
14
|
-
import { CLASSES } from '
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
13
|
+
import { OcpLoginPage } from './OcpLoginPage';
|
|
14
|
+
import { CLASSES } from '../../../configs/inversify.types';
|
|
15
|
+
import { Logger } from '../../../utils/Logger';
|
|
16
|
+
import { OAuthConstants } from '../../../constants/OAuthConstants';
|
|
17
17
|
|
|
18
18
|
@injectable()
|
|
19
19
|
export class OcpUserLoginPage implements IOcpLoginPage {
|
|
@@ -24,13 +24,13 @@ export class OcpUserLoginPage implements IOcpLoginPage {
|
|
|
24
24
|
async login(): Promise<void> {
|
|
25
25
|
Logger.debug('OcpUserLoginPage.login');
|
|
26
26
|
|
|
27
|
-
if (
|
|
27
|
+
if (OAuthConstants.TS_OCP_LOGIN_PAGE_PROVIDER_TITLE !== '') {
|
|
28
28
|
await this.ocpLogin.clickOnLoginProviderTitle();
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
await this.ocpLogin.waitOpenShiftLoginWelcomePage();
|
|
32
|
-
await this.ocpLogin.enterUserNameOpenShift(
|
|
33
|
-
await this.ocpLogin.enterPasswordOpenShift(
|
|
32
|
+
await this.ocpLogin.enterUserNameOpenShift(OAuthConstants.TS_SELENIUM_OCP_USERNAME);
|
|
33
|
+
await this.ocpLogin.enterPasswordOpenShift(OAuthConstants.TS_SELENIUM_OCP_PASSWORD);
|
|
34
34
|
await this.ocpLogin.clickOnLoginButton();
|
|
35
35
|
await this.ocpLogin.waitDisappearanceOpenShiftLoginWelcomePage();
|
|
36
36
|
}
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
import 'reflect-metadata';
|
|
11
11
|
import { injectable, inject } from 'inversify';
|
|
12
12
|
import { By } from 'selenium-webdriver';
|
|
13
|
-
import { CLASSES } from '
|
|
14
|
-
import { DriverHelper } from '
|
|
15
|
-
import { Logger } from '
|
|
16
|
-
import {
|
|
13
|
+
import { CLASSES } from '../../../configs/inversify.types';
|
|
14
|
+
import { DriverHelper } from '../../../utils/DriverHelper';
|
|
15
|
+
import { Logger } from '../../../utils/Logger';
|
|
16
|
+
import { OAuthConstants } from '../../../constants/OAuthConstants';
|
|
17
17
|
|
|
18
18
|
@injectable()
|
|
19
19
|
export class RedHatLoginPage {
|
|
@@ -34,7 +34,7 @@ export class RedHatLoginPage {
|
|
|
34
34
|
Logger.debug('RedHatLoginPage.enterPasswordRedHat');
|
|
35
35
|
const passwordFieldLocator: By = By.id(this.PASSWORD_INPUT_ID);
|
|
36
36
|
await this.driverHelper.waitVisibility(passwordFieldLocator, 3000);
|
|
37
|
-
await this.driverHelper.enterValue(passwordFieldLocator,
|
|
37
|
+
await this.driverHelper.enterValue(passwordFieldLocator, OAuthConstants.TS_SELENIUM_OCP_PASSWORD);
|
|
38
38
|
}
|
|
39
39
|
async clickOnLoginButton(): Promise<void> {
|
|
40
40
|
Logger.debug('RedHatLoginPage.clickOnLoginButton');
|
|
@@ -49,7 +49,7 @@ export class RedHatLoginPage {
|
|
|
49
49
|
Logger.debug('RedHatLoginPage.enterUserNameRedHat');
|
|
50
50
|
const usernameFieldLocator: By = By.id(this.USERNAME_INPUT_ID);
|
|
51
51
|
await this.driverHelper.waitVisibility(usernameFieldLocator, 20000);
|
|
52
|
-
await this.driverHelper.enterValue(usernameFieldLocator,
|
|
52
|
+
await this.driverHelper.enterValue(usernameFieldLocator, OAuthConstants.TS_SELENIUM_OCP_USERNAME);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
async clickNextButton(): Promise<void> {
|
package/pageobjects/login/{RegularUserOcpCheLoginPage.ts → openshift/RegularUserOcpCheLoginPage.ts}
RENAMED
|
@@ -8,15 +8,15 @@
|
|
|
8
8
|
* SPDX-License-Identifier: EPL-2.0
|
|
9
9
|
**********************************************************************/
|
|
10
10
|
import 'reflect-metadata';
|
|
11
|
-
import { ICheLoginPage } from '
|
|
12
|
-
import { OcpLoginPage } from '
|
|
11
|
+
import { ICheLoginPage } from '../interfaces/ICheLoginPage';
|
|
12
|
+
import { OcpLoginPage } from './OcpLoginPage';
|
|
13
13
|
import { injectable, inject } from 'inversify';
|
|
14
|
-
import { CLASSES } from '
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import { TimeoutConstants } from '../../constants/TimeoutConstants';
|
|
14
|
+
import { CLASSES } from '../../../configs/inversify.types';
|
|
15
|
+
import { Logger } from '../../../utils/Logger';
|
|
16
|
+
import { TimeoutConstants } from '../../../constants/TimeoutConstants';
|
|
18
17
|
import { By } from 'selenium-webdriver';
|
|
19
|
-
import { DriverHelper } from '
|
|
18
|
+
import { DriverHelper } from '../../../utils/DriverHelper';
|
|
19
|
+
import { OAuthConstants } from '../../../constants/OAuthConstants';
|
|
20
20
|
|
|
21
21
|
@injectable()
|
|
22
22
|
export class RegularUserOcpCheLoginPage implements ICheLoginPage {
|
|
@@ -40,8 +40,8 @@ export class RegularUserOcpCheLoginPage implements ICheLoginPage {
|
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
await this.ocpLogin.waitOpenShiftLoginWelcomePage();
|
|
43
|
-
await this.ocpLogin.enterUserNameOpenShift(
|
|
44
|
-
await this.ocpLogin.enterPasswordOpenShift(
|
|
43
|
+
await this.ocpLogin.enterUserNameOpenShift(OAuthConstants.TS_SELENIUM_OCP_USERNAME);
|
|
44
|
+
await this.ocpLogin.enterPasswordOpenShift(OAuthConstants.TS_SELENIUM_OCP_PASSWORD);
|
|
45
45
|
await this.ocpLogin.clickOnLoginButton();
|
|
46
46
|
await this.ocpLogin.waitDisappearanceOpenShiftLoginWelcomePage();
|
|
47
47
|
|