@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.
- package/.eslintignore +10 -0
- package/.eslintrc.js +197 -0
- package/.prettierignore +10 -0
- package/.prettierrc.json +10 -0
- package/CODE_STYLE.md +144 -0
- package/README.md +47 -47
- package/configs/inversify.config.ts +39 -14
- package/configs/inversify.types.ts +44 -30
- package/configs/mocharc.ts +21 -24
- package/constants/API_TEST_CONSTANTS.ts +67 -0
- package/constants/BASE_TEST_CONSTANTS.ts +80 -0
- package/constants/CHROME_DRIVER_CONSTANTS.ts +42 -0
- package/constants/FACTORY_TEST_CONSTANTS.ts +61 -0
- package/constants/MONACO_CONSTANTS.ts +25 -0
- package/constants/OAUTH_CONSTANTS.ts +67 -0
- package/constants/PLUGIN_TEST_CONSTANTS.ts +15 -0
- package/constants/REPORTER_CONSTANTS.ts +53 -0
- package/constants/TIMEOUT_CONSTANTS.ts +131 -0
- package/dist/configs/inversify.config.js +36 -9
- package/dist/configs/inversify.config.js.map +1 -1
- package/dist/configs/inversify.types.js +19 -5
- package/dist/configs/inversify.types.js.map +1 -1
- package/dist/configs/mocharc.js +13 -16
- package/dist/configs/mocharc.js.map +1 -1
- package/dist/constants/{APITestConstants.js → API_TEST_CONSTANTS.js} +12 -12
- package/dist/constants/API_TEST_CONSTANTS.js.map +1 -0
- package/dist/constants/{BaseTestConstants.js → BASE_TEST_CONSTANTS.js} +16 -16
- package/dist/constants/BASE_TEST_CONSTANTS.js.map +1 -0
- package/dist/constants/CHROME_DRIVER_CONSTANTS.js +36 -0
- package/dist/constants/CHROME_DRIVER_CONSTANTS.js.map +1 -0
- package/dist/constants/{FactoryTestConstants.js → FACTORY_TEST_CONSTANTS.js} +14 -13
- package/dist/constants/FACTORY_TEST_CONSTANTS.js.map +1 -0
- package/dist/constants/{MonacoConstants.js → MONACO_CONSTANTS.js} +7 -7
- package/dist/constants/MONACO_CONSTANTS.js.map +1 -0
- package/dist/constants/{OAuthConstants.js → OAUTH_CONSTANTS.js} +14 -14
- package/dist/constants/OAUTH_CONSTANTS.js.map +1 -0
- package/dist/constants/{PluginsTestConstants.js → PLUGIN_TEST_CONSTANTS.js} +7 -7
- package/dist/constants/PLUGIN_TEST_CONSTANTS.js.map +1 -0
- package/dist/constants/{ReporterConstants.js → REPORTER_CONSTANTS.js} +12 -12
- package/dist/constants/REPORTER_CONSTANTS.js.map +1 -0
- package/dist/constants/{TimeoutConstants.js → TIMEOUT_CONSTANTS.js} +24 -24
- package/dist/constants/TIMEOUT_CONSTANTS.js.map +1 -0
- package/dist/driver/ChromeDriver.js +12 -22
- package/dist/driver/ChromeDriver.js.map +1 -1
- package/dist/index.js +18 -12
- package/dist/index.js.map +1 -1
- package/dist/pageobjects/dashboard/CreateWorkspace.js +15 -15
- package/dist/pageobjects/dashboard/CreateWorkspace.js.map +1 -1
- package/dist/pageobjects/dashboard/Dashboard.js +20 -21
- package/dist/pageobjects/dashboard/Dashboard.js.map +1 -1
- package/dist/pageobjects/dashboard/Workspaces.js +55 -60
- package/dist/pageobjects/dashboard/Workspaces.js.map +1 -1
- package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js +58 -48
- package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js.map +1 -1
- package/dist/pageobjects/git-providers/OauthPage.js +22 -20
- package/dist/pageobjects/git-providers/OauthPage.js.map +1 -1
- package/dist/pageobjects/ide/CheCodeLocatorLoader.js +26 -12
- package/dist/pageobjects/ide/CheCodeLocatorLoader.js.map +1 -1
- package/dist/pageobjects/login/interfaces/ICheLoginPage.js +2 -2
- package/dist/pageobjects/login/interfaces/IOcpLoginPage.js +2 -2
- package/dist/pageobjects/login/kubernetes/DexLoginPage.js +14 -14
- package/dist/pageobjects/login/kubernetes/DexLoginPage.js.map +1 -1
- package/dist/pageobjects/login/kubernetes/KubernetesLoginPage.js +7 -7
- package/dist/pageobjects/login/kubernetes/KubernetesLoginPage.js.map +1 -1
- package/dist/pageobjects/login/openshift/OcpLoginPage.js +24 -28
- package/dist/pageobjects/login/openshift/OcpLoginPage.js.map +1 -1
- package/dist/pageobjects/login/openshift/OcpRedHatLoginPage.js +13 -16
- package/dist/pageobjects/login/openshift/OcpRedHatLoginPage.js.map +1 -1
- package/dist/pageobjects/login/openshift/OcpUserLoginPage.js +9 -9
- package/dist/pageobjects/login/openshift/OcpUserLoginPage.js.map +1 -1
- package/dist/pageobjects/login/openshift/RedHatLoginPage.js +19 -23
- package/dist/pageobjects/login/openshift/RedHatLoginPage.js.map +1 -1
- package/dist/pageobjects/login/openshift/RegularUserOcpCheLoginPage.js +20 -19
- package/dist/pageobjects/login/openshift/RegularUserOcpCheLoginPage.js.map +1 -1
- package/dist/pageobjects/openshift/OcpApplicationPage.js +11 -11
- package/dist/pageobjects/openshift/OcpApplicationPage.js.map +1 -1
- package/dist/pageobjects/openshift/OcpImportFromGitPage.js +24 -24
- package/dist/pageobjects/openshift/OcpImportFromGitPage.js.map +1 -1
- package/dist/pageobjects/openshift/OcpMainPage.js +30 -30
- package/dist/pageobjects/openshift/OcpMainPage.js.map +1 -1
- package/dist/specs/MochaHooks.js +33 -27
- package/dist/specs/MochaHooks.js.map +1 -1
- package/dist/specs/SmokeTest.spec.js +17 -17
- package/dist/specs/SmokeTest.spec.js.map +1 -1
- package/dist/specs/api/ContainerOverridesAPI.spec.js +8 -6
- package/dist/specs/api/ContainerOverridesAPI.spec.js.map +1 -1
- package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js +27 -24
- package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js.map +1 -1
- package/dist/specs/api/EmptyWorkspaceAPI.spec.js +17 -17
- package/dist/specs/api/EmptyWorkspaceAPI.spec.js.map +1 -1
- package/dist/specs/api/PodOverridesAPI.spec.js +10 -8
- package/dist/specs/api/PodOverridesAPI.spec.js.map +1 -1
- package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js +10 -10
- package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js.map +1 -1
- package/dist/specs/dashboard-samples/Quarkus.spec.js +13 -13
- package/dist/specs/dashboard-samples/Quarkus.spec.js.map +1 -1
- package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js +52 -52
- package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js.map +1 -1
- package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js +23 -19
- package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js.map +1 -1
- package/dist/specs/factory/Factory.spec.js +38 -41
- package/dist/specs/factory/Factory.spec.js.map +1 -1
- package/dist/specs/factory/NoSetupRepoFactory.spec.js +52 -50
- package/dist/specs/factory/NoSetupRepoFactory.spec.js.map +1 -1
- package/dist/specs/factory/RefusedOAuthFactory.spec.js +49 -51
- package/dist/specs/factory/RefusedOAuthFactory.spec.js.map +1 -1
- package/dist/specs/miscellaneous/PredefinedNamespace.spec.js +45 -42
- package/dist/specs/miscellaneous/PredefinedNamespace.spec.js.map +1 -1
- package/dist/tests-library/LoginTests.js +13 -13
- package/dist/tests-library/LoginTests.js.map +1 -1
- package/dist/tests-library/ProjectAndFileTests.js +9 -7
- package/dist/tests-library/ProjectAndFileTests.js.map +1 -1
- package/dist/tests-library/WorkspaceHandlingTests.js +22 -19
- package/dist/tests-library/WorkspaceHandlingTests.js.map +1 -1
- package/dist/utils/BrowserTabsUtil.js +21 -21
- package/dist/utils/BrowserTabsUtil.js.map +1 -1
- package/dist/utils/CheReporter.js +91 -65
- package/dist/utils/CheReporter.js.map +1 -1
- package/dist/utils/DevWorkspaceConfigurationHelper.js +34 -15
- package/dist/utils/DevWorkspaceConfigurationHelper.js.map +1 -1
- package/dist/utils/DevfilesRegistryHelper.js +34 -18
- package/dist/utils/DevfilesRegistryHelper.js.map +1 -1
- package/dist/utils/DriverHelper.js +73 -68
- package/dist/utils/DriverHelper.js.map +1 -1
- package/dist/utils/IContextParams.js +12 -0
- package/dist/utils/IContextParams.js.map +1 -0
- package/dist/utils/IKubernetesCommandLineToolsExecutor.js +3 -0
- package/dist/utils/IKubernetesCommandLineToolsExecutor.js.map +1 -0
- package/dist/utils/KubernetesCommandLineToolsExecutor.js +146 -107
- package/dist/utils/KubernetesCommandLineToolsExecutor.js.map +1 -1
- package/dist/utils/Logger.js +18 -19
- package/dist/utils/Logger.js.map +1 -1
- package/dist/utils/ScreenCatcher.js +26 -16
- package/dist/utils/ScreenCatcher.js.map +1 -1
- package/dist/utils/ShellExecutor.js +29 -9
- package/dist/utils/ShellExecutor.js.map +1 -1
- package/dist/utils/StringUtil.js +19 -9
- package/dist/utils/StringUtil.js.map +1 -1
- package/dist/utils/request-handlers/CheApiRequestHandler.js +29 -29
- package/dist/utils/request-handlers/CheApiRequestHandler.js.map +1 -1
- package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js +12 -8
- package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js.map +1 -1
- package/dist/utils/request-handlers/headers/IAuthorizationHeaderHandler.js +2 -2
- package/dist/utils/workspace/ApiUrlResolver.js +5 -5
- package/dist/utils/workspace/ApiUrlResolver.js.map +1 -1
- package/dist/utils/workspace/ITestWorkspaceUtil.js +2 -2
- package/dist/utils/workspace/TestWorkspaceUtil.js +25 -23
- package/dist/utils/workspace/TestWorkspaceUtil.js.map +1 -1
- package/dist/utils/workspace/WorkspaceStatus.js +2 -2
- package/dist/utils/workspace/WorkspaceStatus.js.map +1 -1
- package/driver/ChromeDriver.ts +45 -58
- package/driver/IDriver.ts +3 -3
- package/index.ts +11 -9
- package/package.json +59 -49
- package/pageobjects/dashboard/CreateWorkspace.ts +65 -55
- package/pageobjects/dashboard/Dashboard.ts +100 -100
- package/pageobjects/dashboard/Workspaces.ts +210 -186
- package/pageobjects/dashboard/workspace-details/WorkspaceDetails.ts +153 -131
- package/pageobjects/git-providers/OauthPage.ts +177 -166
- package/pageobjects/ide/CheCodeLocatorLoader.ts +51 -46
- package/pageobjects/login/interfaces/ICheLoginPage.ts +3 -3
- package/pageobjects/login/interfaces/IOcpLoginPage.ts +3 -3
- package/pageobjects/login/kubernetes/DexLoginPage.ts +31 -30
- package/pageobjects/login/kubernetes/KubernetesLoginPage.ts +15 -14
- package/pageobjects/login/openshift/OcpLoginPage.ts +51 -56
- package/pageobjects/login/openshift/OcpRedHatLoginPage.ts +27 -27
- package/pageobjects/login/openshift/OcpUserLoginPage.ts +15 -18
- package/pageobjects/login/openshift/RedHatLoginPage.ts +49 -46
- package/pageobjects/login/openshift/RegularUserOcpCheLoginPage.ts +43 -34
- package/pageobjects/openshift/OcpApplicationPage.ts +21 -19
- package/pageobjects/openshift/OcpImportFromGitPage.ts +68 -68
- package/pageobjects/openshift/OcpMainPage.ts +69 -69
- package/specs/MochaHooks.ts +59 -52
- package/specs/SmokeTest.spec.ts +47 -45
- package/specs/api/ContainerOverridesAPI.spec.ts +39 -26
- package/specs/api/DevfileAcceptanceTestAPI.spec.ts +110 -97
- package/specs/api/EmptyWorkspaceAPI.spec.ts +67 -58
- package/specs/api/PodOverridesAPI.spec.ts +48 -34
- package/specs/dashboard-samples/EmptyWorkspace.spec.ts +36 -36
- package/specs/dashboard-samples/Quarkus.spec.ts +41 -40
- package/specs/dashboard-samples/RecommendedExtensions.spec.ts +202 -183
- package/specs/devconsole-intergration/DevConsoleIntegration.spec.ts +85 -75
- package/specs/factory/Factory.spec.ts +184 -178
- package/specs/factory/NoSetupRepoFactory.spec.ts +233 -219
- package/specs/factory/RefusedOAuthFactory.spec.ts +223 -211
- package/specs/miscellaneous/PredefinedNamespace.spec.ts +70 -64
- package/tests-library/LoginTests.ts +34 -32
- package/tests-library/ProjectAndFileTests.ts +21 -18
- package/tests-library/WorkspaceHandlingTests.ts +98 -89
- package/tsconfig.json +15 -15
- package/utils/BrowserTabsUtil.ts +78 -74
- package/utils/CheReporter.ts +159 -157
- package/utils/DevWorkspaceConfigurationHelper.ts +63 -69
- package/utils/DevfilesRegistryHelper.ts +71 -57
- package/utils/DriverHelper.ts +728 -700
- package/utils/IContextParams.ts +26 -0
- package/utils/IKubernetesCommandLineToolsExecutor.ts +42 -0
- package/utils/KubernetesCommandLineToolsExecutor.ts +231 -183
- package/utils/Logger.ts +102 -125
- package/utils/ScreenCatcher.ts +57 -46
- package/utils/ShellExecutor.ts +23 -12
- package/utils/StringUtil.ts +49 -36
- package/utils/request-handlers/CheApiRequestHandler.ts +91 -88
- package/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.ts +32 -21
- package/utils/request-handlers/headers/IAuthorizationHeaderHandler.ts +3 -3
- package/utils/workspace/ApiUrlResolver.ts +31 -26
- package/utils/workspace/ITestWorkspaceUtil.ts +31 -31
- package/utils/workspace/TestWorkspaceUtil.ts +152 -145
- package/utils/workspace/WorkspaceStatus.ts +5 -5
- package/constants/APITestConstants.ts +0 -57
- package/constants/BaseTestConstants.ts +0 -68
- package/constants/ChromeDriverConstants.ts +0 -46
- package/constants/FactoryTestConstants.ts +0 -51
- package/constants/MonacoConstants.ts +0 -22
- package/constants/OAuthConstants.ts +0 -57
- package/constants/PluginsTestConstants.ts +0 -15
- package/constants/ReporterConstants.ts +0 -45
- package/constants/TimeoutConstants.ts +0 -113
- package/dist/constants/APITestConstants.js.map +0 -1
- package/dist/constants/BaseTestConstants.js.map +0 -1
- package/dist/constants/ChromeDriverConstants.js +0 -44
- package/dist/constants/ChromeDriverConstants.js.map +0 -1
- package/dist/constants/FactoryTestConstants.js.map +0 -1
- package/dist/constants/MonacoConstants.js.map +0 -1
- package/dist/constants/OAuthConstants.js.map +0 -1
- package/dist/constants/PluginsTestConstants.js.map +0 -1
- package/dist/constants/ReporterConstants.js.map +0 -1
- package/dist/constants/TimeoutConstants.js.map +0 -1
- package/tslint.json +0 -126
|
@@ -1,69 +1,72 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/** *******************************************************************
|
|
4
|
+
* copyright (c) 2023 Red Hat, Inc.
|
|
5
|
+
*
|
|
6
|
+
* This program and the accompanying materials are made
|
|
7
|
+
* available under the terms of the Eclipse Public License 2.0
|
|
8
|
+
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
9
|
+
*
|
|
10
|
+
* SPDX-License-Identifier: EPL-2.0
|
|
11
|
+
**********************************************************************/
|
|
3
12
|
const inversify_config_1 = require("../../configs/inversify.config");
|
|
4
13
|
const chai_1 = require("chai");
|
|
5
14
|
const inversify_types_1 = require("../../configs/inversify.types");
|
|
6
15
|
const WorkspaceHandlingTests_1 = require("../../tests-library/WorkspaceHandlingTests");
|
|
7
16
|
const Logger_1 = require("../../utils/Logger");
|
|
8
17
|
const MochaHooks_1 = require("../MochaHooks");
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
return stdout;
|
|
19
|
-
}
|
|
20
|
-
suite(`Create predefined workspace and check it `, async function () {
|
|
21
|
-
let workspaceName = '';
|
|
22
|
-
const setEditRightsForUser = `oc adm policy add-role-to-user edit user -n ${predefinedNamespaceName}`;
|
|
23
|
-
const getDevWorkspaceFromPredefinedNameSpace = `oc get dw -n ${predefinedNamespaceName}`;
|
|
24
|
-
const deletePredefinedNamespace = `oc delete project ${predefinedNamespaceName}`;
|
|
25
|
-
const createPredefinedProjectCommand = 'cat <<EOF | oc apply -f - \n' +
|
|
26
|
-
'kind: Namespace\n' +
|
|
27
|
-
'apiVersion: v1\n' +
|
|
28
|
-
'metadata:\n' +
|
|
29
|
-
` name: ${predefinedNamespaceName}\n` +
|
|
30
|
-
' labels:\n' +
|
|
31
|
-
' app.kubernetes.io/part-of: che.eclipse.org\n' +
|
|
32
|
-
' app.kubernetes.io/component: workspaces-namespace\n' +
|
|
33
|
-
' annotations:\n' +
|
|
34
|
-
' che.eclipse.org/username: user\n' +
|
|
35
|
-
'EOF';
|
|
36
|
-
// create a predefined namespace for user using shell script and login into user dashboard
|
|
37
|
-
suiteSetup(async function () {
|
|
18
|
+
suite('Create predefined workspace and check it', function () {
|
|
19
|
+
const predefinedNamespaceName = 'predefined-ns';
|
|
20
|
+
const stackName = 'Empty Workspace';
|
|
21
|
+
const loginTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.LoginTests);
|
|
22
|
+
const workspaceHandlingTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.WorkspaceHandlingTests);
|
|
23
|
+
const kubernetesCommandLineToolsExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.KubernetesCommandLineToolsExecutor);
|
|
24
|
+
const shellExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ShellExecutor);
|
|
25
|
+
suiteSetup(function () {
|
|
26
|
+
// create a predefined namespace for user using shell script and login into user dashboard
|
|
38
27
|
Logger_1.Logger.info('Test prerequisites:');
|
|
39
28
|
Logger_1.Logger.info(' (1) there is OCP user with username and user password that have been set in the TS_SELENIUM_OCP_USERNAME and TS_SELENIUM_OCP_PASSWORD variables');
|
|
40
|
-
Logger_1.Logger.info(' (2)
|
|
41
|
-
|
|
42
|
-
|
|
29
|
+
Logger_1.Logger.info(' (2) "oc" client installed and logged into test OCP cluster with admin rights.');
|
|
30
|
+
kubernetesCommandLineToolsExecutor.loginToOcp('admin');
|
|
31
|
+
const predefinedProjectConfiguration = 'kind: Namespace\n' +
|
|
32
|
+
'apiVersion: v1\n' +
|
|
33
|
+
'metadata:\n' +
|
|
34
|
+
` name: ${predefinedNamespaceName}\n` +
|
|
35
|
+
' labels:\n' +
|
|
36
|
+
' app.kubernetes.io/part-of: che.eclipse.org\n' +
|
|
37
|
+
' app.kubernetes.io/component: workspaces-namespace\n' +
|
|
38
|
+
' annotations:\n' +
|
|
39
|
+
' che.eclipse.org/username: user';
|
|
40
|
+
kubernetesCommandLineToolsExecutor.applyWithoutNamespace(predefinedProjectConfiguration);
|
|
41
|
+
const setEditRightsForUser = `oc adm policy add-role-to-user edit user -n ${predefinedNamespaceName}`;
|
|
42
|
+
shellExecutor.executeCommand(setEditRightsForUser);
|
|
43
43
|
});
|
|
44
|
-
suiteTeardown(
|
|
44
|
+
suiteTeardown(function () {
|
|
45
45
|
const workspaceName = WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName();
|
|
46
46
|
try {
|
|
47
|
-
|
|
47
|
+
kubernetesCommandLineToolsExecutor.deleteDevWorkspace();
|
|
48
|
+
kubernetesCommandLineToolsExecutor.deleteProject(predefinedNamespaceName);
|
|
48
49
|
}
|
|
49
50
|
catch (e) {
|
|
50
51
|
Logger_1.Logger.error(`Cannot remove the predefined project: ${workspaceName}, please fix it manually: ${e}`);
|
|
51
52
|
}
|
|
52
53
|
});
|
|
53
|
-
loginTests.loginIntoChe();
|
|
54
|
+
loginTests.loginIntoChe('user');
|
|
54
55
|
// create the Empty workspace using CHE Dashboard
|
|
55
|
-
test(`Create and open new workspace, stack:${
|
|
56
|
-
await workspaceHandlingTests.createAndOpenWorkspace(
|
|
56
|
+
test(`Create and open new workspace, stack:${stackName}`, async function () {
|
|
57
|
+
await workspaceHandlingTests.createAndOpenWorkspace(stackName);
|
|
57
58
|
});
|
|
58
59
|
test('Obtain workspace name from workspace loader page', async function () {
|
|
59
60
|
await workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
|
|
60
61
|
});
|
|
61
62
|
// verify that just created workspace with unique name is present in the predefined namespace
|
|
62
|
-
test('Validate the created workspace is present in predefined namespace',
|
|
63
|
-
workspaceName = WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName();
|
|
64
|
-
MochaHooks_1.registerRunningWorkspace(workspaceName);
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
test('Validate the created workspace is present in predefined namespace', function () {
|
|
64
|
+
const workspaceName = WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName();
|
|
65
|
+
(0, MochaHooks_1.registerRunningWorkspace)(workspaceName);
|
|
66
|
+
kubernetesCommandLineToolsExecutor.workspaceName = workspaceName;
|
|
67
|
+
kubernetesCommandLineToolsExecutor.namespace = predefinedNamespaceName;
|
|
68
|
+
const ocDevWorkspaceOutput = kubernetesCommandLineToolsExecutor.getDevWorkspaceYamlConfiguration();
|
|
69
|
+
(0, chai_1.expect)(ocDevWorkspaceOutput).includes(workspaceName);
|
|
67
70
|
});
|
|
68
71
|
loginTests.logoutFromChe();
|
|
69
72
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PredefinedNamespace.spec.js","sourceRoot":"","sources":["../../../specs/miscellaneous/PredefinedNamespace.spec.ts"],"names":[],"mappings":";;AAAA,qEAA8D;AAC9D,+BAA8B;AAC9B,mEAAwD;AACxD,uFAAoF;AACpF,+CAA4C;AAE5C,8CAAyD;
|
|
1
|
+
{"version":3,"file":"PredefinedNamespace.spec.js","sourceRoot":"","sources":["../../../specs/miscellaneous/PredefinedNamespace.spec.ts"],"names":[],"mappings":";;AAAA;;;;;;;;wEAQwE;AACxE,qEAA8D;AAC9D,+BAA8B;AAC9B,mEAAwD;AACxD,uFAAoF;AACpF,+CAA4C;AAE5C,8CAAyD;AAIzD,KAAK,CAAC,0CAA0C,EAAE;IACjD,MAAM,uBAAuB,GAAW,eAAe,CAAC;IACxD,MAAM,SAAS,GAAW,iBAAiB,CAAC;IAE5C,MAAM,UAAU,GAAe,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,UAAU,CAAC,CAAC;IACpE,MAAM,sBAAsB,GAA2B,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,sBAAsB,CAAC,CAAC;IACxG,MAAM,kCAAkC,GAAuC,+BAAY,CAAC,GAAG,CAC9F,yBAAO,CAAC,kCAAkC,CAC1C,CAAC;IACF,MAAM,aAAa,GAAkB,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,aAAa,CAAC,CAAC;IAE7E,UAAU,CAAC;QACV,0FAA0F;QAC1F,eAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACnC,eAAM,CAAC,IAAI,CACV,kJAAkJ,CAClJ,CAAC;QACF,eAAM,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;QAC9F,kCAAkC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,8BAA8B,GACnC,mBAAmB;YACnB,kBAAkB;YAClB,aAAa;YACb,WAAW,uBAAuB,IAAI;YACtC,aAAa;YACb,kDAAkD;YAClD,yDAAyD;YACzD,kBAAkB;YAClB,oCAAoC,CAAC;QACtC,kCAAkC,CAAC,qBAAqB,CAAC,8BAA8B,CAAC,CAAC;QACzF,MAAM,oBAAoB,GAAW,+CAA+C,uBAAuB,EAAE,CAAC;QAC9G,aAAa,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC;QACb,MAAM,aAAa,GAAW,+CAAsB,CAAC,gBAAgB,EAAE,CAAC;QACxE,IAAI;YACH,kCAAkC,CAAC,kBAAkB,EAAE,CAAC;YACxD,kCAAkC,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;SAC1E;QAAC,OAAO,CAAC,EAAE;YACX,eAAM,CAAC,KAAK,CAAC,yCAAyC,aAAa,6BAA6B,CAAC,EAAE,CAAC,CAAC;SACrG;IACF,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAChC,iDAAiD;IACjD,IAAI,CAAC,wCAAwC,SAAS,EAAE,EAAE,KAAK;QAC9D,MAAM,sBAAsB,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,kDAAkD,EAAE,KAAK;QAC7D,MAAM,sBAAsB,CAAC,mCAAmC,EAAE,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,6FAA6F;IAC7F,IAAI,CAAC,mEAAmE,EAAE;QACzE,MAAM,aAAa,GAAW,+CAAsB,CAAC,gBAAgB,EAAE,CAAC;QACxE,IAAA,qCAAwB,EAAC,aAAa,CAAC,CAAC;QACxC,kCAAkC,CAAC,aAAa,GAAG,aAAa,CAAC;QACjE,kCAAkC,CAAC,SAAS,GAAG,uBAAuB,CAAC;QACvE,MAAM,oBAAoB,GAAW,kCAAkC,CAAC,gCAAgC,EAAE,CAAC;QAC3G,IAAA,aAAM,EAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,aAAa,EAAE,CAAC;AAC5B,CAAC,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
*
|
|
2
|
+
/** *******************************************************************
|
|
3
|
+
* copyright (c) 2019-2023 Red Hat, Inc.
|
|
4
4
|
*
|
|
5
5
|
* This program and the accompanying materials are made
|
|
6
6
|
* available under the terms of the Eclipse Public License 2.0
|
|
@@ -26,7 +26,7 @@ const inversify_types_1 = require("../configs/inversify.types");
|
|
|
26
26
|
const BrowserTabsUtil_1 = require("../utils/BrowserTabsUtil");
|
|
27
27
|
const inversify_1 = require("inversify");
|
|
28
28
|
const Dashboard_1 = require("../pageobjects/dashboard/Dashboard");
|
|
29
|
-
const
|
|
29
|
+
const BASE_TEST_CONSTANTS_1 = require("../constants/BASE_TEST_CONSTANTS");
|
|
30
30
|
let LoginTests = class LoginTests {
|
|
31
31
|
constructor(browserTabsUtil, productLoginPage, ocpLoginPage, dashboard) {
|
|
32
32
|
this.browserTabsUtil = browserTabsUtil;
|
|
@@ -34,19 +34,19 @@ let LoginTests = class LoginTests {
|
|
|
34
34
|
this.ocpLoginPage = ocpLoginPage;
|
|
35
35
|
this.dashboard = dashboard;
|
|
36
36
|
}
|
|
37
|
-
loginIntoChe() {
|
|
37
|
+
loginIntoChe(userName, password) {
|
|
38
38
|
test('Login', async () => {
|
|
39
|
-
if (!(await this.browserTabsUtil.getCurrentUrl()).includes(
|
|
40
|
-
await this.browserTabsUtil.navigateTo(
|
|
39
|
+
if (!(await this.browserTabsUtil.getCurrentUrl()).includes(BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TS_SELENIUM_BASE_URL)) {
|
|
40
|
+
await this.browserTabsUtil.navigateTo(BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TS_SELENIUM_BASE_URL);
|
|
41
41
|
}
|
|
42
|
-
await this.productLoginPage.login();
|
|
42
|
+
await this.productLoginPage.login(userName, password);
|
|
43
43
|
await this.browserTabsUtil.maximize();
|
|
44
44
|
await this.dashboard.waitStartingPageLoaderDisappearance();
|
|
45
45
|
});
|
|
46
46
|
}
|
|
47
47
|
loginIntoOcpConsole() {
|
|
48
48
|
test('Login into ocp console', async () => {
|
|
49
|
-
const openshiftConsoleUrl =
|
|
49
|
+
const openshiftConsoleUrl = BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TS_SELENIUM_BASE_URL.replace('devspaces', 'console-openshift-console');
|
|
50
50
|
await this.browserTabsUtil.navigateTo(openshiftConsoleUrl);
|
|
51
51
|
await this.ocpLoginPage.login();
|
|
52
52
|
await this.browserTabsUtil.maximize();
|
|
@@ -59,11 +59,11 @@ let LoginTests = class LoginTests {
|
|
|
59
59
|
}
|
|
60
60
|
};
|
|
61
61
|
LoginTests = __decorate([
|
|
62
|
-
inversify_1.injectable(),
|
|
63
|
-
__param(0, inversify_1.inject(inversify_types_1.CLASSES.BrowserTabsUtil)),
|
|
64
|
-
__param(1, inversify_1.inject(inversify_types_1.TYPES.CheLogin)),
|
|
65
|
-
__param(2, inversify_1.inject(inversify_types_1.TYPES.OcpLogin)),
|
|
66
|
-
__param(3, inversify_1.inject(inversify_types_1.CLASSES.Dashboard)),
|
|
62
|
+
(0, inversify_1.injectable)(),
|
|
63
|
+
__param(0, (0, inversify_1.inject)(inversify_types_1.CLASSES.BrowserTabsUtil)),
|
|
64
|
+
__param(1, (0, inversify_1.inject)(inversify_types_1.TYPES.CheLogin)),
|
|
65
|
+
__param(2, (0, inversify_1.inject)(inversify_types_1.TYPES.OcpLogin)),
|
|
66
|
+
__param(3, (0, inversify_1.inject)(inversify_types_1.CLASSES.Dashboard)),
|
|
67
67
|
__metadata("design:paramtypes", [BrowserTabsUtil_1.BrowserTabsUtil, Object, Object, Dashboard_1.Dashboard])
|
|
68
68
|
], LoginTests);
|
|
69
69
|
exports.LoginTests = LoginTests;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoginTests.js","sourceRoot":"","sources":["../../tests-library/LoginTests.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;;;;;;;;;;;;;;AAExE,gEAA4D;AAE5D,8DAA2D;AAC3D,yCAA+C;AAC/C,kEAA+D;AAE/D,
|
|
1
|
+
{"version":3,"file":"LoginTests.js","sourceRoot":"","sources":["../../tests-library/LoginTests.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;;;;;;;;;;;;;;AAExE,gEAA4D;AAE5D,8DAA2D;AAC3D,yCAA+C;AAC/C,kEAA+D;AAE/D,0EAAuE;AAGhE,IAAM,UAAU,GAAhB,MAAM,UAAU;IACtB,YAEkB,eAAgC,EAEhC,gBAA+B,EACP,YAA2B,EACxB,SAAoB;QAJ/C,oBAAe,GAAf,eAAe,CAAiB;QAEhC,qBAAgB,GAAhB,gBAAgB,CAAe;QACP,iBAAY,GAAZ,YAAY,CAAe;QACxB,cAAS,GAAT,SAAS,CAAW;IAC9D,CAAC;IAEJ,YAAY,CAAC,QAAiB,EAAE,QAAiB;QAChD,IAAI,CAAC,OAAO,EAAE,KAAK,IAAmB,EAAE;YACvC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,yCAAmB,CAAC,oBAAoB,CAAC,EAAE;gBACrG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,yCAAmB,CAAC,oBAAoB,CAAC,CAAC;aAChF;YACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACtD,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,SAAS,CAAC,mCAAmC,EAAE,CAAC;QAC5D,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,mBAAmB;QAClB,IAAI,CAAC,wBAAwB,EAAE,KAAK,IAAmB,EAAE;YACxD,MAAM,mBAAmB,GAAW,yCAAmB,CAAC,oBAAoB,CAAC,OAAO,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;YAC/H,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;YAC3D,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,aAAa;QACZ,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAmB,EAAE;YACxC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACJ,CAAC;CACD,CAAA;AAnCY,UAAU;IADtB,IAAA,sBAAU,GAAE;IAGV,WAAA,IAAA,kBAAM,EAAC,yBAAO,CAAC,eAAe,CAAC,CAAA;IAE/B,WAAA,IAAA,kBAAM,EAAC,uBAAK,CAAC,QAAQ,CAAC,CAAA;IAEtB,WAAA,IAAA,kBAAM,EAAC,uBAAK,CAAC,QAAQ,CAAC,CAAA;IACtB,WAAA,IAAA,kBAAM,EAAC,yBAAO,CAAC,SAAS,CAAC,CAAA;qCAJQ,iCAAe,kBAIM,qBAAS;GAPrD,UAAU,CAmCtB;AAnCY,gCAAU"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
*
|
|
2
|
+
/** *******************************************************************
|
|
3
|
+
* copyright (c) 2019-2023 Red Hat, Inc.
|
|
4
4
|
*
|
|
5
5
|
* This program and the accompanying materials are made
|
|
6
6
|
* available under the terms of the Eclipse Public License 2.0
|
|
@@ -28,16 +28,18 @@ const selenium_webdriver_1 = require("selenium-webdriver");
|
|
|
28
28
|
const DriverHelper_1 = require("../utils/DriverHelper");
|
|
29
29
|
const inversify_types_1 = require("../configs/inversify.types");
|
|
30
30
|
const Logger_1 = require("../utils/Logger");
|
|
31
|
-
const
|
|
31
|
+
const TIMEOUT_CONSTANTS_1 = require("../constants/TIMEOUT_CONSTANTS");
|
|
32
32
|
let ProjectAndFileTests = class ProjectAndFileTests {
|
|
33
33
|
constructor(driverHelper) {
|
|
34
34
|
this.driverHelper = driverHelper;
|
|
35
35
|
}
|
|
36
36
|
async waitWorkspaceReadinessForCheCodeEditor() {
|
|
37
|
-
Logger_1.Logger.debug(
|
|
37
|
+
Logger_1.Logger.debug('waiting for editor.');
|
|
38
38
|
try {
|
|
39
39
|
const start = new Date().getTime();
|
|
40
|
-
await this.driverHelper
|
|
40
|
+
await this.driverHelper
|
|
41
|
+
.getDriver()
|
|
42
|
+
.wait(selenium_webdriver_1.until.elementLocated(selenium_webdriver_1.By.className('monaco-workbench')), TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_START_WORKSPACE_TIMEOUT);
|
|
41
43
|
const end = new Date().getTime();
|
|
42
44
|
Logger_1.Logger.debug(`editor was opened in ${end - start} seconds.`);
|
|
43
45
|
}
|
|
@@ -48,8 +50,8 @@ let ProjectAndFileTests = class ProjectAndFileTests {
|
|
|
48
50
|
}
|
|
49
51
|
};
|
|
50
52
|
ProjectAndFileTests = __decorate([
|
|
51
|
-
inversify_1.injectable(),
|
|
52
|
-
__param(0, inversify_1.inject(inversify_types_1.CLASSES.DriverHelper)),
|
|
53
|
+
(0, inversify_1.injectable)(),
|
|
54
|
+
__param(0, (0, inversify_1.inject)(inversify_types_1.CLASSES.DriverHelper)),
|
|
53
55
|
__metadata("design:paramtypes", [DriverHelper_1.DriverHelper])
|
|
54
56
|
], ProjectAndFileTests);
|
|
55
57
|
exports.ProjectAndFileTests = ProjectAndFileTests;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectAndFileTests.js","sourceRoot":"","sources":["../../tests-library/ProjectAndFileTests.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;;;;;;;;;;;;;;AAExE,4BAA0B;AAC1B,yCAA+C;AAC/C,2DAA+C;AAC/C,wDAAqD;AACrD,gEAAqD;AACrD,4CAAyC;AACzC,
|
|
1
|
+
{"version":3,"file":"ProjectAndFileTests.js","sourceRoot":"","sources":["../../tests-library/ProjectAndFileTests.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;;;;;;;;;;;;;;AAExE,4BAA0B;AAC1B,yCAA+C;AAC/C,2DAA+C;AAC/C,wDAAqD;AACrD,gEAAqD;AACrD,4CAAyC;AACzC,sEAAmE;AAG5D,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC/B,YAEkB,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IACzC,CAAC;IAEJ,KAAK,CAAC,sCAAsC;QAC3C,eAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACpC,IAAI;YACH,MAAM,KAAK,GAAW,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,IAAI,CAAC,YAAY;iBACrB,SAAS,EAAE;iBACX,IAAI,CAAC,0BAAK,CAAC,cAAc,CAAC,uBAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,EAAE,qCAAiB,CAAC,mCAAmC,CAAC,CAAC;YACtH,MAAM,GAAG,GAAW,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YACzC,eAAM,CAAC,KAAK,CAAC,wBAAwB,GAAG,GAAG,KAAK,WAAW,CAAC,CAAC;SAC7D;QAAC,OAAO,GAAG,EAAE;YACb,eAAM,CAAC,KAAK,CAAC,2CAA2C,GAAG,EAAE,CAAC,CAAC;YAC/D,MAAM,GAAG,CAAC;SACV;IACF,CAAC;CACD,CAAA;AApBY,mBAAmB;IAD/B,IAAA,sBAAU,GAAE;IAGV,WAAA,IAAA,kBAAM,EAAC,yBAAO,CAAC,YAAY,CAAC,CAAA;qCACE,2BAAY;GAHhC,mBAAmB,CAoB/B;AApBY,kDAAmB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
*
|
|
2
|
+
/** *******************************************************************
|
|
3
|
+
* copyright (c) 2019-2023 Red Hat, Inc.
|
|
4
4
|
*
|
|
5
5
|
* This program and the accompanying materials are made
|
|
6
6
|
* available under the terms of the Eclipse Public License 2.0
|
|
@@ -31,7 +31,7 @@ const CreateWorkspace_1 = require("../pageobjects/dashboard/CreateWorkspace");
|
|
|
31
31
|
const BrowserTabsUtil_1 = require("../utils/BrowserTabsUtil");
|
|
32
32
|
const Logger_1 = require("../utils/Logger");
|
|
33
33
|
const ApiUrlResolver_1 = require("../utils/workspace/ApiUrlResolver");
|
|
34
|
-
const
|
|
34
|
+
const TIMEOUT_CONSTANTS_1 = require("../constants/TIMEOUT_CONSTANTS");
|
|
35
35
|
const DriverHelper_1 = require("../utils/DriverHelper");
|
|
36
36
|
const selenium_webdriver_1 = require("selenium-webdriver");
|
|
37
37
|
let WorkspaceHandlingTests = WorkspaceHandlingTests_1 = class WorkspaceHandlingTests {
|
|
@@ -54,31 +54,34 @@ let WorkspaceHandlingTests = WorkspaceHandlingTests_1 = class WorkspaceHandlingT
|
|
|
54
54
|
async createAndOpenWorkspace(stack) {
|
|
55
55
|
await this.dashboard.clickWorkspacesButton();
|
|
56
56
|
await this.dashboard.waitPage();
|
|
57
|
-
Logger_1.Logger.debug(
|
|
57
|
+
Logger_1.Logger.debug('fetching user kubernetes namespace, storing auth token by getting workspaces API URL.');
|
|
58
58
|
await this.apiUrlResolver.getWorkspacesApiUrl();
|
|
59
59
|
await this.dashboard.clickCreateWorkspaceButton();
|
|
60
60
|
await this.createWorkspace.waitPage();
|
|
61
61
|
WorkspaceHandlingTests_1.parentGUID = await this.browserTabsUtil.getCurrentWindowHandle();
|
|
62
62
|
await this.createWorkspace.clickOnSampleNoEditorSelection(stack);
|
|
63
|
-
await this.browserTabsUtil.waitAndSwitchToAnotherWindow(WorkspaceHandlingTests_1.parentGUID,
|
|
63
|
+
await this.browserTabsUtil.waitAndSwitchToAnotherWindow(WorkspaceHandlingTests_1.parentGUID, TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_IDE_LOAD_TIMEOUT);
|
|
64
64
|
}
|
|
65
65
|
async createAndOpenWorkspaceFromGitRepository(factoryUrl) {
|
|
66
66
|
await this.dashboard.waitPage();
|
|
67
|
-
Logger_1.Logger.debug(
|
|
67
|
+
Logger_1.Logger.debug('fetching user kubernetes namespace, storing auth token by getting workspaces API URL.');
|
|
68
68
|
await this.apiUrlResolver.getWorkspacesApiUrl();
|
|
69
69
|
await this.dashboard.clickCreateWorkspaceButton();
|
|
70
70
|
await this.createWorkspace.waitPage();
|
|
71
71
|
WorkspaceHandlingTests_1.parentGUID = await this.browserTabsUtil.getCurrentWindowHandle();
|
|
72
72
|
await this.createWorkspace.importFromGitUsingUI(factoryUrl);
|
|
73
|
-
await this.browserTabsUtil.waitAndSwitchToAnotherWindow(WorkspaceHandlingTests_1.parentGUID,
|
|
73
|
+
await this.browserTabsUtil.waitAndSwitchToAnotherWindow(WorkspaceHandlingTests_1.parentGUID, TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_IDE_LOAD_TIMEOUT);
|
|
74
74
|
}
|
|
75
75
|
async obtainWorkspaceNameFromStartingPage() {
|
|
76
|
-
const timeout =
|
|
77
|
-
const polling =
|
|
76
|
+
const timeout = TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_IDE_LOAD_TIMEOUT;
|
|
77
|
+
const polling = TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING;
|
|
78
78
|
const attempts = Math.ceil(timeout / polling);
|
|
79
79
|
for (let i = 0; i < attempts; i++) {
|
|
80
80
|
try {
|
|
81
|
-
|
|
81
|
+
const startingWorkspaceLineContent = await this.driverHelper
|
|
82
|
+
.getDriver()
|
|
83
|
+
.findElement(WorkspaceHandlingTests_1.WORKSPACE_NAME)
|
|
84
|
+
.getText();
|
|
82
85
|
Logger_1.Logger.trace(`obtained starting workspace getText():${startingWorkspaceLineContent}`);
|
|
83
86
|
// cutting away leading text
|
|
84
87
|
WorkspaceHandlingTests_1.workspaceName = startingWorkspaceLineContent.substring('Starting workspace '.length).trim();
|
|
@@ -87,12 +90,12 @@ let WorkspaceHandlingTests = WorkspaceHandlingTests_1 = class WorkspaceHandlingT
|
|
|
87
90
|
}
|
|
88
91
|
catch (err) {
|
|
89
92
|
if (err instanceof selenium_webdriver_1.error.StaleElementReferenceError) {
|
|
90
|
-
Logger_1.Logger.trace(
|
|
93
|
+
Logger_1.Logger.trace('failed to obtain name from workspace start page, element possibly detached from DOM. Retrying.');
|
|
91
94
|
await this.driverHelper.wait(polling);
|
|
92
95
|
continue;
|
|
93
96
|
}
|
|
94
97
|
if (err instanceof selenium_webdriver_1.error.NoSuchElementError) {
|
|
95
|
-
Logger_1.Logger.trace(
|
|
98
|
+
Logger_1.Logger.trace('failed to obtain name from workspace start page, element not visible yet. Retrying.');
|
|
96
99
|
await this.driverHelper.wait(polling);
|
|
97
100
|
continue;
|
|
98
101
|
}
|
|
@@ -120,15 +123,15 @@ let WorkspaceHandlingTests = WorkspaceHandlingTests_1 = class WorkspaceHandlingT
|
|
|
120
123
|
await this.dashboard.stopAndRemoveWorkspaceByUI(workspaceName);
|
|
121
124
|
}
|
|
122
125
|
};
|
|
123
|
-
WorkspaceHandlingTests.
|
|
126
|
+
WorkspaceHandlingTests.WORKSPACE_NAME = selenium_webdriver_1.By.xpath('//h1[contains(.,"Starting workspace ")]');
|
|
124
127
|
WorkspaceHandlingTests.workspaceName = 'undefined';
|
|
125
128
|
WorkspaceHandlingTests = WorkspaceHandlingTests_1 = __decorate([
|
|
126
|
-
inversify_1.injectable(),
|
|
127
|
-
__param(0, inversify_1.inject(inversify_types_1.CLASSES.Dashboard)),
|
|
128
|
-
__param(1, inversify_1.inject(inversify_types_1.CLASSES.CreateWorkspace)),
|
|
129
|
-
__param(2, inversify_1.inject(inversify_types_1.CLASSES.BrowserTabsUtil)),
|
|
130
|
-
__param(3, inversify_1.inject(inversify_types_1.CLASSES.ApiUrlResolver)),
|
|
131
|
-
__param(4, inversify_1.inject(inversify_types_1.CLASSES.DriverHelper)),
|
|
129
|
+
(0, inversify_1.injectable)(),
|
|
130
|
+
__param(0, (0, inversify_1.inject)(inversify_types_1.CLASSES.Dashboard)),
|
|
131
|
+
__param(1, (0, inversify_1.inject)(inversify_types_1.CLASSES.CreateWorkspace)),
|
|
132
|
+
__param(2, (0, inversify_1.inject)(inversify_types_1.CLASSES.BrowserTabsUtil)),
|
|
133
|
+
__param(3, (0, inversify_1.inject)(inversify_types_1.CLASSES.ApiUrlResolver)),
|
|
134
|
+
__param(4, (0, inversify_1.inject)(inversify_types_1.CLASSES.DriverHelper)),
|
|
132
135
|
__metadata("design:paramtypes", [Dashboard_1.Dashboard,
|
|
133
136
|
CreateWorkspace_1.CreateWorkspace,
|
|
134
137
|
BrowserTabsUtil_1.BrowserTabsUtil,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkspaceHandlingTests.js","sourceRoot":"","sources":["../../tests-library/WorkspaceHandlingTests.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;;;;;;;;;;;;;;;AAExE,4BAA0B;AAC1B,yCAA+C;AAC/C,gEAAqD;AACrD,kEAA+D;AAC/D,8EAA2E;AAC3E,8DAA2D;AAC3D,4CAAyC;AACzC,sEAAmE;AACnE,
|
|
1
|
+
{"version":3,"file":"WorkspaceHandlingTests.js","sourceRoot":"","sources":["../../tests-library/WorkspaceHandlingTests.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
*
|
|
2
|
+
/** *******************************************************************
|
|
3
|
+
* copyright (c) 2019-2023 Red Hat, Inc.
|
|
4
4
|
*
|
|
5
5
|
* This program and the accompanying materials are made
|
|
6
6
|
* available under the terms of the Eclipse Public License 2.0
|
|
@@ -26,8 +26,7 @@ const inversify_1 = require("inversify");
|
|
|
26
26
|
const inversify_types_1 = require("../configs/inversify.types");
|
|
27
27
|
const DriverHelper_1 = require("./DriverHelper");
|
|
28
28
|
const Logger_1 = require("./Logger");
|
|
29
|
-
const
|
|
30
|
-
const ChromeDriverConstants_1 = require("../constants/ChromeDriverConstants");
|
|
29
|
+
const CHROME_DRIVER_CONSTANTS_1 = require("../constants/CHROME_DRIVER_CONSTANTS");
|
|
31
30
|
let BrowserTabsUtil = class BrowserTabsUtil {
|
|
32
31
|
constructor(driverHelper) {
|
|
33
32
|
this.driverHelper = driverHelper;
|
|
@@ -46,12 +45,7 @@ let BrowserTabsUtil = class BrowserTabsUtil {
|
|
|
46
45
|
}
|
|
47
46
|
async navigateTo(url) {
|
|
48
47
|
Logger_1.Logger.debug(`${url}`);
|
|
49
|
-
await this.driverHelper.
|
|
50
|
-
}
|
|
51
|
-
async navigateAndWaitToUrl(url, timeout = TimeoutConstants_1.TimeoutConstants.TS_SELENIUM_WAIT_FOR_URL) {
|
|
52
|
-
Logger_1.Logger.trace(`${url}`);
|
|
53
|
-
await this.navigateTo(url);
|
|
54
|
-
await this.waitURL(url, timeout);
|
|
48
|
+
await this.driverHelper.navigateToUrl(url);
|
|
55
49
|
}
|
|
56
50
|
async waitAndSwitchToAnotherWindow(currentWindowHandle, timeout) {
|
|
57
51
|
Logger_1.Logger.debug();
|
|
@@ -71,22 +65,28 @@ let BrowserTabsUtil = class BrowserTabsUtil {
|
|
|
71
65
|
await (await this.driverHelper.getDriver()).navigate().refresh();
|
|
72
66
|
}
|
|
73
67
|
async getCurrentUrl() {
|
|
68
|
+
Logger_1.Logger.trace();
|
|
74
69
|
return await this.driverHelper.getDriver().getCurrentUrl();
|
|
75
70
|
}
|
|
76
71
|
async waitURL(expectedUrl, timeout) {
|
|
77
72
|
Logger_1.Logger.trace(`${expectedUrl}`);
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
73
|
+
try {
|
|
74
|
+
await this.driverHelper.getDriver().wait(async () => {
|
|
75
|
+
const currentUrl = await this.driverHelper.getDriver().getCurrentUrl();
|
|
76
|
+
const urlEquals = currentUrl === expectedUrl;
|
|
77
|
+
if (urlEquals) {
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
}, timeout);
|
|
81
|
+
}
|
|
82
|
+
catch (e) {
|
|
83
|
+
throw e;
|
|
84
|
+
}
|
|
85
85
|
}
|
|
86
86
|
async maximize() {
|
|
87
87
|
Logger_1.Logger.trace();
|
|
88
|
-
if (
|
|
89
|
-
Logger_1.Logger.debug(
|
|
88
|
+
if (CHROME_DRIVER_CONSTANTS_1.CHROME_DRIVER_CONSTANTS.TS_SELENIUM_LAUNCH_FULLSCREEN) {
|
|
89
|
+
Logger_1.Logger.debug('TS_SELENIUM_LAUNCH_FULLSCREEN is set to true, maximizing window.');
|
|
90
90
|
await this.driverHelper.getDriver().manage().window().maximize();
|
|
91
91
|
}
|
|
92
92
|
}
|
|
@@ -103,8 +103,8 @@ let BrowserTabsUtil = class BrowserTabsUtil {
|
|
|
103
103
|
}
|
|
104
104
|
};
|
|
105
105
|
BrowserTabsUtil = __decorate([
|
|
106
|
-
inversify_1.injectable(),
|
|
107
|
-
__param(0, inversify_1.inject(inversify_types_1.CLASSES.DriverHelper)),
|
|
106
|
+
(0, inversify_1.injectable)(),
|
|
107
|
+
__param(0, (0, inversify_1.inject)(inversify_types_1.CLASSES.DriverHelper)),
|
|
108
108
|
__metadata("design:paramtypes", [DriverHelper_1.DriverHelper])
|
|
109
109
|
], BrowserTabsUtil);
|
|
110
110
|
exports.BrowserTabsUtil = BrowserTabsUtil;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserTabsUtil.js","sourceRoot":"","sources":["../../utils/BrowserTabsUtil.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;;;;;;;;;;;;;;AAExE,yCAA+C;AAC/C,gEAAqD;AACrD,iDAA8C;AAC9C,qCAAkC;AAClC,
|
|
1
|
+
{"version":3,"file":"BrowserTabsUtil.js","sourceRoot":"","sources":["../../utils/BrowserTabsUtil.ts"],"names":[],"mappings":"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"}
|