@eclipse-che/che-e2e 7.122.0-next-4d9831f → 7.123.0-next
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/configs/inversify.config.ts +2 -0
- package/configs/inversify.types.ts +2 -1
- package/index.ts +6 -5
- package/package.json +1 -1
- package/pageobjects/dashboard/workspace-details/WorkspaceDetails.ts +10 -0
- package/pageobjects/ide/RestartWorkspaceDialog.ts +74 -0
- package/specs/restart-tests/RestartFromLocalDevfile.spec.ts +351 -0
- package/dist/configs/inversify.config.js +0 -121
- package/dist/configs/inversify.config.js.map +0 -1
- package/dist/configs/inversify.types.js +0 -73
- package/dist/configs/inversify.types.js.map +0 -1
- package/dist/configs/mocharc.js +0 -42
- package/dist/configs/mocharc.js.map +0 -1
- package/dist/constants/API_TEST_CONSTANTS.js +0 -60
- package/dist/constants/API_TEST_CONSTANTS.js.map +0 -1
- package/dist/constants/BASE_TEST_CONSTANTS.js +0 -109
- package/dist/constants/BASE_TEST_CONSTANTS.js.map +0 -1
- package/dist/constants/CHROME_DRIVER_CONSTANTS.js +0 -40
- package/dist/constants/CHROME_DRIVER_CONSTANTS.js.map +0 -1
- package/dist/constants/EDITOR_CONSTANTS.js +0 -114
- package/dist/constants/EDITOR_CONSTANTS.js.map +0 -1
- package/dist/constants/FACTORY_TEST_CONSTANTS.js +0 -87
- package/dist/constants/FACTORY_TEST_CONSTANTS.js.map +0 -1
- package/dist/constants/MOCHA_CONSTANTS.js +0 -24
- package/dist/constants/MOCHA_CONSTANTS.js.map +0 -1
- package/dist/constants/MONACO_CONSTANTS.js +0 -25
- package/dist/constants/MONACO_CONSTANTS.js.map +0 -1
- package/dist/constants/OAUTH_CONSTANTS.js +0 -53
- package/dist/constants/OAUTH_CONSTANTS.js.map +0 -1
- package/dist/constants/PLUGIN_TEST_CONSTANTS.js +0 -19
- package/dist/constants/PLUGIN_TEST_CONSTANTS.js.map +0 -1
- package/dist/constants/REPORTER_CONSTANTS.js +0 -123
- package/dist/constants/REPORTER_CONSTANTS.js.map +0 -1
- package/dist/constants/TIMEOUT_CONSTANTS.js +0 -101
- package/dist/constants/TIMEOUT_CONSTANTS.js.map +0 -1
- package/dist/driver/ChromeDriver.js +0 -77
- package/dist/driver/ChromeDriver.js.map +0 -1
- package/dist/driver/IDriver.js +0 -3
- package/dist/driver/IDriver.js.map +0 -1
- package/dist/index.js +0 -98
- package/dist/index.js.map +0 -1
- package/dist/pageobjects/dashboard/CreateWorkspace.js +0 -181
- package/dist/pageobjects/dashboard/CreateWorkspace.js.map +0 -1
- package/dist/pageobjects/dashboard/Dashboard.js +0 -208
- package/dist/pageobjects/dashboard/Dashboard.js.map +0 -1
- package/dist/pageobjects/dashboard/TrustAuthorPopup.js +0 -61
- package/dist/pageobjects/dashboard/TrustAuthorPopup.js.map +0 -1
- package/dist/pageobjects/dashboard/UserPreferences.js +0 -268
- package/dist/pageobjects/dashboard/UserPreferences.js.map +0 -1
- package/dist/pageobjects/dashboard/Workspaces.js +0 -242
- package/dist/pageobjects/dashboard/Workspaces.js.map +0 -1
- package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js +0 -186
- package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js.map +0 -1
- package/dist/pageobjects/git-providers/OauthPage.js +0 -218
- package/dist/pageobjects/git-providers/OauthPage.js.map +0 -1
- package/dist/pageobjects/ide/AiCodeSignInDialog.js +0 -55
- package/dist/pageobjects/ide/AiCodeSignInDialog.js.map +0 -1
- package/dist/pageobjects/ide/CheCodeLocatorLoader.js +0 -108
- package/dist/pageobjects/ide/CheCodeLocatorLoader.js.map +0 -1
- package/dist/pageobjects/ide/CommandPalette.js +0 -117
- package/dist/pageobjects/ide/CommandPalette.js.map +0 -1
- package/dist/pageobjects/ide/ExplorerView.js +0 -108
- package/dist/pageobjects/ide/ExplorerView.js.map +0 -1
- package/dist/pageobjects/ide/ExtensionsView.js +0 -162
- package/dist/pageobjects/ide/ExtensionsView.js.map +0 -1
- package/dist/pageobjects/ide/GitHubExtensionDialog.js +0 -66
- package/dist/pageobjects/ide/GitHubExtensionDialog.js.map +0 -1
- package/dist/pageobjects/ide/NotificationHandler.js +0 -83
- package/dist/pageobjects/ide/NotificationHandler.js.map +0 -1
- package/dist/pageobjects/ide/RestrictedModeButton.js +0 -57
- package/dist/pageobjects/ide/RestrictedModeButton.js.map +0 -1
- package/dist/pageobjects/ide/SourceControlView.js +0 -52
- package/dist/pageobjects/ide/SourceControlView.js.map +0 -1
- package/dist/pageobjects/ide/ViewsMoreActionsButton.js +0 -73
- package/dist/pageobjects/ide/ViewsMoreActionsButton.js.map +0 -1
- package/dist/pageobjects/login/interfaces/ICheLoginPage.js +0 -12
- package/dist/pageobjects/login/interfaces/ICheLoginPage.js.map +0 -1
- package/dist/pageobjects/login/interfaces/IOcpLoginPage.js +0 -12
- package/dist/pageobjects/login/interfaces/IOcpLoginPage.js.map +0 -1
- package/dist/pageobjects/login/kubernetes/DexLoginPage.js +0 -69
- package/dist/pageobjects/login/kubernetes/DexLoginPage.js.map +0 -1
- package/dist/pageobjects/login/kubernetes/KubernetesLoginPage.js +0 -50
- package/dist/pageobjects/login/kubernetes/KubernetesLoginPage.js.map +0 -1
- package/dist/pageobjects/login/openshift/OcpLoginPage.js +0 -88
- package/dist/pageobjects/login/openshift/OcpLoginPage.js.map +0 -1
- package/dist/pageobjects/login/openshift/OcpRedHatLoginPage.js +0 -73
- package/dist/pageobjects/login/openshift/OcpRedHatLoginPage.js.map +0 -1
- package/dist/pageobjects/login/openshift/OcpUserLoginPage.js +0 -53
- package/dist/pageobjects/login/openshift/OcpUserLoginPage.js.map +0 -1
- package/dist/pageobjects/login/openshift/RedHatLoginPage.js +0 -85
- package/dist/pageobjects/login/openshift/RedHatLoginPage.js.map +0 -1
- package/dist/pageobjects/login/openshift/RegularUserOcpCheLoginPage.js +0 -65
- package/dist/pageobjects/login/openshift/RegularUserOcpCheLoginPage.js.map +0 -1
- package/dist/pageobjects/openshift/OcpApplicationPage.js +0 -60
- package/dist/pageobjects/openshift/OcpApplicationPage.js.map +0 -1
- package/dist/pageobjects/openshift/OcpImportFromGitPage.js +0 -92
- package/dist/pageobjects/openshift/OcpImportFromGitPage.js.map +0 -1
- package/dist/pageobjects/openshift/OcpMainPage.js +0 -140
- package/dist/pageobjects/openshift/OcpMainPage.js.map +0 -1
- package/dist/pageobjects/webterminal/WebTerminalPage.js +0 -182
- package/dist/pageobjects/webterminal/WebTerminalPage.js.map +0 -1
- package/dist/specs/MochaHooks.js +0 -142
- package/dist/specs/MochaHooks.js.map +0 -1
- package/dist/specs/SmokeTest.spec.js +0 -58
- package/dist/specs/SmokeTest.spec.js.map +0 -1
- package/dist/specs/api/AnsibleDevFileAPI.spec.js +0 -263
- package/dist/specs/api/AnsibleDevFileAPI.spec.js.map +0 -1
- package/dist/specs/api/BuildPushRunPodmanContainerAPI.spec.js +0 -147
- package/dist/specs/api/BuildPushRunPodmanContainerAPI.spec.js.map +0 -1
- package/dist/specs/api/ContainerOverridesAPI.spec.js +0 -40
- package/dist/specs/api/ContainerOverridesAPI.spec.js.map +0 -1
- package/dist/specs/api/CppDevFileAPI.spec.js +0 -87
- package/dist/specs/api/CppDevFileAPI.spec.js.map +0 -1
- package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js +0 -99
- package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js.map +0 -1
- package/dist/specs/api/DotnetDevFileAPI.spec.js +0 -89
- package/dist/specs/api/DotnetDevFileAPI.spec.js.map +0 -1
- package/dist/specs/api/EmptyWorkspaceAPI.spec.js +0 -60
- package/dist/specs/api/EmptyWorkspaceAPI.spec.js.map +0 -1
- package/dist/specs/api/GoDevFileAPI.spec.js +0 -82
- package/dist/specs/api/GoDevFileAPI.spec.js.map +0 -1
- package/dist/specs/api/InbuiltApplicationDevWorkspacesAPI.spec.js +0 -97
- package/dist/specs/api/InbuiltApplicationDevWorkspacesAPI.spec.js.map +0 -1
- package/dist/specs/api/JBossEapDevFileAPI.spec.js +0 -127
- package/dist/specs/api/JBossEapDevFileAPI.spec.js.map +0 -1
- package/dist/specs/api/LombokDevFileAPI.spec.js +0 -81
- package/dist/specs/api/LombokDevFileAPI.spec.js.map +0 -1
- package/dist/specs/api/NodeJSMongoDBDevFileAPI.spec.js +0 -81
- package/dist/specs/api/NodeJSMongoDBDevFileAPI.spec.js.map +0 -1
- package/dist/specs/api/NodeJsExpressDevFileAPI.spec.js +0 -130
- package/dist/specs/api/NodeJsExpressDevFileAPI.spec.js.map +0 -1
- package/dist/specs/api/PhpDevFileAPI.spec.js +0 -71
- package/dist/specs/api/PhpDevFileAPI.spec.js.map +0 -1
- package/dist/specs/api/PodOverridesAPI.spec.js +0 -46
- package/dist/specs/api/PodOverridesAPI.spec.js.map +0 -1
- package/dist/specs/api/PythonDevFileAPI.spec.js +0 -71
- package/dist/specs/api/PythonDevFileAPI.spec.js.map +0 -1
- package/dist/specs/api/QuarkusDevFileAPI.spec.js +0 -97
- package/dist/specs/api/QuarkusDevFileAPI.spec.js.map +0 -1
- package/dist/specs/dashboard-samples/Documentation.spec.js +0 -118
- package/dist/specs/dashboard-samples/Documentation.spec.js.map +0 -1
- package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js +0 -60
- package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js.map +0 -1
- package/dist/specs/dashboard-samples/Quarkus.spec.js +0 -64
- package/dist/specs/dashboard-samples/Quarkus.spec.js.map +0 -1
- package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js +0 -345
- package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js.map +0 -1
- package/dist/specs/dashboard-samples/StartWorkspaceUsingDesktopEditors.spec.js +0 -171
- package/dist/specs/dashboard-samples/StartWorkspaceUsingDesktopEditors.spec.js.map +0 -1
- package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js +0 -155
- package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js.map +0 -1
- package/dist/specs/factory/Factory.spec.js +0 -183
- package/dist/specs/factory/Factory.spec.js.map +0 -1
- package/dist/specs/factory/FactoryWithGitRepoOptions.spec.js +0 -63
- package/dist/specs/factory/FactoryWithGitRepoOptions.spec.js.map +0 -1
- package/dist/specs/factory/NoSetupRepoFactory.spec.js +0 -212
- package/dist/specs/factory/NoSetupRepoFactory.spec.js.map +0 -1
- package/dist/specs/factory/RefusedOAuthFactory.spec.js +0 -239
- package/dist/specs/factory/RefusedOAuthFactory.spec.js.map +0 -1
- package/dist/specs/factory/SshUrlNoOauthPatFactory.spec.js +0 -202
- package/dist/specs/factory/SshUrlNoOauthPatFactory.spec.js.map +0 -1
- package/dist/specs/miscellaneous/CreateWorkspaceWithExistedName.spec.js +0 -77
- package/dist/specs/miscellaneous/CreateWorkspaceWithExistedName.spec.js.map +0 -1
- package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromEmptyWorkspaceSample.spec.js +0 -106
- package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromEmptyWorkspaceSample.spec.js.map +0 -1
- package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromGitUrl.spec.js +0 -113
- package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromGitUrl.spec.js.map +0 -1
- package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromSample.spec.js +0 -116
- package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromSample.spec.js.map +0 -1
- package/dist/specs/miscellaneous/CustomOpenVSXRegistry.spec.js +0 -205
- package/dist/specs/miscellaneous/CustomOpenVSXRegistry.spec.js.map +0 -1
- package/dist/specs/miscellaneous/ExtensionActivationTest.spec.js +0 -129
- package/dist/specs/miscellaneous/ExtensionActivationTest.spec.js.map +0 -1
- package/dist/specs/miscellaneous/KubedockPodmanPersistUserHomeTest.spec.js +0 -121
- package/dist/specs/miscellaneous/KubedockPodmanPersistUserHomeTest.spec.js.map +0 -1
- package/dist/specs/miscellaneous/KubedockPodmanTest.spec.js +0 -103
- package/dist/specs/miscellaneous/KubedockPodmanTest.spec.js.map +0 -1
- package/dist/specs/miscellaneous/PredefinedNamespace.spec.js +0 -111
- package/dist/specs/miscellaneous/PredefinedNamespace.spec.js.map +0 -1
- package/dist/specs/miscellaneous/RenameWorkspace.spec.js +0 -116
- package/dist/specs/miscellaneous/RenameWorkspace.spec.js.map +0 -1
- package/dist/specs/miscellaneous/RevokeOauth.spec.js +0 -29
- package/dist/specs/miscellaneous/RevokeOauth.spec.js.map +0 -1
- package/dist/specs/miscellaneous/UserPreferencesTest.spec.js +0 -26
- package/dist/specs/miscellaneous/UserPreferencesTest.spec.js.map +0 -1
- package/dist/specs/miscellaneous/UserSecretsInWorkspace.spec.js +0 -78
- package/dist/specs/miscellaneous/UserSecretsInWorkspace.spec.js.map +0 -1
- package/dist/specs/miscellaneous/VsixInstallationDisableTest.spec.js +0 -196
- package/dist/specs/miscellaneous/VsixInstallationDisableTest.spec.js.map +0 -1
- package/dist/specs/miscellaneous/WorkspaceBackupRestore.spec.js +0 -208
- package/dist/specs/miscellaneous/WorkspaceBackupRestore.spec.js.map +0 -1
- package/dist/specs/miscellaneous/WorkspaceIdleTimeout.spec.js +0 -84
- package/dist/specs/miscellaneous/WorkspaceIdleTimeout.spec.js.map +0 -1
- package/dist/specs/miscellaneous/WorkspaceRunTimeout.spec.js +0 -84
- package/dist/specs/miscellaneous/WorkspaceRunTimeout.spec.js.map +0 -1
- package/dist/specs/miscellaneous/WorkspaceWithParent.spec.js +0 -101
- package/dist/specs/miscellaneous/WorkspaceWithParent.spec.js.map +0 -1
- package/dist/specs/web-terminal/WebTerminalTest.spec.js +0 -47
- package/dist/specs/web-terminal/WebTerminalTest.spec.js.map +0 -1
- package/dist/specs/web-terminal/WebTerminalUnderAdmin.spec.js +0 -82
- package/dist/specs/web-terminal/WebTerminalUnderAdmin.spec.js.map +0 -1
- package/dist/specs/web-terminal/WebTerminalUnderRegularUser.spec.js +0 -78
- package/dist/specs/web-terminal/WebTerminalUnderRegularUser.spec.js.map +0 -1
- package/dist/suites/devfile-acceptance-test-suite/DynamicallyGeneratingAPITest.suite.js +0 -13
- package/dist/suites/devfile-acceptance-test-suite/DynamicallyGeneratingAPITest.suite.js.map +0 -1
- package/dist/suites/disconnected-ocp/APITest.suite.js +0 -14
- package/dist/suites/disconnected-ocp/APITest.suite.js.map +0 -1
- package/dist/suites/disconnected-ocp/DynamicallyGeneratingAPITest.suite.js +0 -13
- package/dist/suites/disconnected-ocp/DynamicallyGeneratingAPITest.suite.js.map +0 -1
- package/dist/suites/disconnected-ocp/UITest.suite.js +0 -19
- package/dist/suites/disconnected-ocp/UITest.suite.js.map +0 -1
- package/dist/suites/online-ocp/APITest.suite.js +0 -15
- package/dist/suites/online-ocp/APITest.suite.js.map +0 -1
- package/dist/suites/online-ocp/DynamicallyGeneratingAPITest.suite.js +0 -13
- package/dist/suites/online-ocp/DynamicallyGeneratingAPITest.suite.js.map +0 -1
- package/dist/suites/online-ocp/UITest.suite.js +0 -23
- package/dist/suites/online-ocp/UITest.suite.js.map +0 -1
- package/dist/tests-library/LoginTests.js +0 -76
- package/dist/tests-library/LoginTests.js.map +0 -1
- package/dist/tests-library/ProjectAndFileTests.js +0 -230
- package/dist/tests-library/ProjectAndFileTests.js.map +0 -1
- package/dist/tests-library/WorkspaceHandlingTests.js +0 -219
- package/dist/tests-library/WorkspaceHandlingTests.js.map +0 -1
- package/dist/utils/BrowserTabsUtil.js +0 -124
- package/dist/utils/BrowserTabsUtil.js.map +0 -1
- package/dist/utils/CheReporter.js +0 -238
- package/dist/utils/CheReporter.js.map +0 -1
- package/dist/utils/DevWorkspaceConfigurationHelper.js +0 -145
- package/dist/utils/DevWorkspaceConfigurationHelper.js.map +0 -1
- package/dist/utils/DevfilesHelper.js +0 -177
- package/dist/utils/DevfilesHelper.js.map +0 -1
- package/dist/utils/DriverHelper.js +0 -609
- package/dist/utils/DriverHelper.js.map +0 -1
- package/dist/utils/IContextParams.js +0 -12
- package/dist/utils/IContextParams.js.map +0 -1
- package/dist/utils/IKubernetesCommandLineToolsExecutor.js +0 -3
- package/dist/utils/IKubernetesCommandLineToolsExecutor.js.map +0 -1
- package/dist/utils/KubernetesCommandLineToolsExecutor.js +0 -338
- package/dist/utils/KubernetesCommandLineToolsExecutor.js.map +0 -1
- package/dist/utils/Logger.js +0 -146
- package/dist/utils/Logger.js.map +0 -1
- package/dist/utils/ScreenCatcher.js +0 -114
- package/dist/utils/ScreenCatcher.js.map +0 -1
- package/dist/utils/ShellExecutor.js +0 -47
- package/dist/utils/ShellExecutor.js.map +0 -1
- package/dist/utils/StringUtil.js +0 -107
- package/dist/utils/StringUtil.js.map +0 -1
- package/dist/utils/request-handlers/CheApiRequestHandler.js +0 -128
- package/dist/utils/request-handlers/CheApiRequestHandler.js.map +0 -1
- package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js +0 -55
- package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js.map +0 -1
- package/dist/utils/request-handlers/headers/IAuthorizationHeaderHandler.js +0 -12
- package/dist/utils/request-handlers/headers/IAuthorizationHeaderHandler.js.map +0 -1
- package/dist/utils/workspace/ApiUrlResolver.js +0 -117
- package/dist/utils/workspace/ApiUrlResolver.js.map +0 -1
- package/dist/utils/workspace/ITestWorkspaceUtil.js +0 -12
- package/dist/utils/workspace/ITestWorkspaceUtil.js.map +0 -1
- package/dist/utils/workspace/TestWorkspaceUtil.js +0 -202
- package/dist/utils/workspace/TestWorkspaceUtil.js.map +0 -1
- package/dist/utils/workspace/WorkspaceStatus.js +0 -19
- package/dist/utils/workspace/WorkspaceStatus.js.map +0 -1
|
@@ -63,6 +63,7 @@ import { NotificationHandler } from '../pageobjects/ide/NotificationHandler';
|
|
|
63
63
|
import { SourceControlView } from '../pageobjects/ide/SourceControlView';
|
|
64
64
|
import { GitHubExtensionDialog } from '../pageobjects/ide/GitHubExtensionDialog';
|
|
65
65
|
import { AiCodeSignInDialog } from '../pageobjects/ide/AiCodeSignInDialog';
|
|
66
|
+
import { RestartWorkspaceDialog } from '../pageobjects/ide/RestartWorkspaceDialog';
|
|
66
67
|
|
|
67
68
|
const e2eContainer: Container = new Container({ defaultScope: 'Transient', skipBaseClassChecks: true });
|
|
68
69
|
|
|
@@ -111,6 +112,7 @@ e2eContainer.bind<NotificationHandler>(CLASSES.NotificationHandler).to(Notificat
|
|
|
111
112
|
e2eContainer.bind<SourceControlView>(CLASSES.SourceControlView).to(SourceControlView);
|
|
112
113
|
e2eContainer.bind<GitHubExtensionDialog>(CLASSES.GitHubExtensionDialog).to(GitHubExtensionDialog);
|
|
113
114
|
e2eContainer.bind<AiCodeSignInDialog>(CLASSES.AiCodeSignInDialog).to(AiCodeSignInDialog);
|
|
115
|
+
e2eContainer.bind<RestartWorkspaceDialog>(CLASSES.RestartWorkspaceDialog).to(RestartWorkspaceDialog);
|
|
114
116
|
|
|
115
117
|
if (BASE_TEST_CONSTANTS.TS_PLATFORM === Platform.OPENSHIFT) {
|
|
116
118
|
if (OAUTH_CONSTANTS.TS_SELENIUM_VALUE_OPENSHIFT_OAUTH) {
|
|
@@ -60,7 +60,8 @@ const CLASSES: any = {
|
|
|
60
60
|
NotificationHandler: 'NotificationHandler',
|
|
61
61
|
SourceControlView: 'SourceControlView',
|
|
62
62
|
GitHubExtensionDialog: 'GitHubExtensionDialog',
|
|
63
|
-
AiCodeSignInDialog: 'AiCodeSignInDialog'
|
|
63
|
+
AiCodeSignInDialog: 'AiCodeSignInDialog',
|
|
64
|
+
RestartWorkspaceDialog: 'RestartWorkspaceDialog'
|
|
64
65
|
};
|
|
65
66
|
|
|
66
67
|
const EXTERNAL_CLASSES: any = {
|
package/index.ts
CHANGED
|
@@ -5,19 +5,19 @@ export * from './configs/mocharc';
|
|
|
5
5
|
export * from './driver/ChromeDriver';
|
|
6
6
|
export * from './driver/IDriver';
|
|
7
7
|
export * from './utils/BrowserTabsUtil';
|
|
8
|
-
export * from './utils/DevWorkspaceConfigurationHelper';
|
|
9
8
|
export * from './utils/DevfilesHelper';
|
|
9
|
+
export * from './utils/DevWorkspaceConfigurationHelper';
|
|
10
10
|
export * from './utils/DriverHelper';
|
|
11
11
|
export * from './utils/IContextParams';
|
|
12
12
|
export * from './utils/IKubernetesCommandLineToolsExecutor';
|
|
13
13
|
export * from './utils/KubernetesCommandLineToolsExecutor';
|
|
14
14
|
export * from './utils/Logger';
|
|
15
|
-
export * from './utils/ScreenCatcher';
|
|
16
|
-
export * from './utils/ShellExecutor';
|
|
17
|
-
export * from './utils/StringUtil';
|
|
18
15
|
export * from './utils/request-handlers/CheApiRequestHandler';
|
|
19
16
|
export * from './utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler';
|
|
20
17
|
export * from './utils/request-handlers/headers/IAuthorizationHeaderHandler';
|
|
18
|
+
export * from './utils/ScreenCatcher';
|
|
19
|
+
export * from './utils/ShellExecutor';
|
|
20
|
+
export * from './utils/StringUtil';
|
|
21
21
|
export * from './utils/workspace/ApiUrlResolver';
|
|
22
22
|
export * from './utils/workspace/ITestWorkspaceUtil';
|
|
23
23
|
export * from './utils/workspace/TestWorkspaceUtil';
|
|
@@ -26,8 +26,8 @@ export * from './pageobjects/dashboard/CreateWorkspace';
|
|
|
26
26
|
export * from './pageobjects/dashboard/Dashboard';
|
|
27
27
|
export * from './pageobjects/dashboard/TrustAuthorPopup';
|
|
28
28
|
export * from './pageobjects/dashboard/UserPreferences';
|
|
29
|
-
export * from './pageobjects/dashboard/Workspaces';
|
|
30
29
|
export * from './pageobjects/dashboard/workspace-details/WorkspaceDetails';
|
|
30
|
+
export * from './pageobjects/dashboard/Workspaces';
|
|
31
31
|
export * from './pageobjects/git-providers/OauthPage';
|
|
32
32
|
export * from './pageobjects/ide/AiCodeSignInDialog';
|
|
33
33
|
export * from './pageobjects/ide/CheCodeLocatorLoader';
|
|
@@ -36,6 +36,7 @@ export * from './pageobjects/ide/ExplorerView';
|
|
|
36
36
|
export * from './pageobjects/ide/ExtensionsView';
|
|
37
37
|
export * from './pageobjects/ide/GitHubExtensionDialog';
|
|
38
38
|
export * from './pageobjects/ide/NotificationHandler';
|
|
39
|
+
export * from './pageobjects/ide/RestartWorkspaceDialog';
|
|
39
40
|
export * from './pageobjects/ide/RestrictedModeButton';
|
|
40
41
|
export * from './pageobjects/ide/SourceControlView';
|
|
41
42
|
export * from './pageobjects/ide/ViewsMoreActionsButton';
|
package/package.json
CHANGED
|
@@ -26,6 +26,10 @@ export class WorkspaceDetails {
|
|
|
26
26
|
private static readonly ENABLED_SAVE_BUTTON: By = By.css('button[name="save-button"][aria-disabled="false"]');
|
|
27
27
|
private static readonly WORKSPACE_DETAILS_LOADER: By = By.css('workspace-details-overview md-progress-linear');
|
|
28
28
|
private static readonly STORAGE_TYPE_INFO_BUTTON: By = By.css('span[aria-label="More info for storage type"]');
|
|
29
|
+
private static readonly STORAGE_TYPE_VALUE: By = By.xpath(
|
|
30
|
+
'//span[@aria-label="More info for storage type"]/ancestor::div[contains(@class, "pf-v6-c-form__group")]' +
|
|
31
|
+
'//div[contains(@class, "pf-v6-c-form__group-control")]/span'
|
|
32
|
+
);
|
|
29
33
|
private static readonly CLOSE_STORAGE_TYPE_INFO_BUTTON: By = By.xpath('//button[@aria-label="Close"]');
|
|
30
34
|
private static readonly STORAGE_TYPE_DOC_LINK: By = By.xpath('//div/p/a');
|
|
31
35
|
private static readonly DEVFILE_DOC_LINK: By = By.xpath('//a[text()="Devfile Documentation"]');
|
|
@@ -126,6 +130,12 @@ export class WorkspaceDetails {
|
|
|
126
130
|
await this.clickOnTab(tabTitle, timeout);
|
|
127
131
|
}
|
|
128
132
|
|
|
133
|
+
async getStorageTypeValue(timeout: number = TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT): Promise<string> {
|
|
134
|
+
Logger.debug();
|
|
135
|
+
|
|
136
|
+
return await this.driverHelper.waitAndGetText(WorkspaceDetails.STORAGE_TYPE_VALUE, timeout);
|
|
137
|
+
}
|
|
138
|
+
|
|
129
139
|
async clickStorageTypeInfo(): Promise<void> {
|
|
130
140
|
Logger.debug();
|
|
131
141
|
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/** *******************************************************************
|
|
2
|
+
* copyright (c) 2026 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 { inject, injectable } from 'inversify';
|
|
11
|
+
import { CLASSES } from '../../configs/inversify.types';
|
|
12
|
+
import { By, Key, WebElement } from 'selenium-webdriver';
|
|
13
|
+
import { DriverHelper } from '../../utils/DriverHelper';
|
|
14
|
+
import { Logger } from '../../utils/Logger';
|
|
15
|
+
import { TIMEOUT_CONSTANTS } from '../../constants/TIMEOUT_CONSTANTS';
|
|
16
|
+
|
|
17
|
+
@injectable()
|
|
18
|
+
export class RestartWorkspaceDialog {
|
|
19
|
+
private static readonly RESTART_BUTTON: By = By.xpath('//div[@class="dialog-buttons"]//a[text()="Restart"]');
|
|
20
|
+
private static readonly RESTART_WORKSPACE_BUTTON: By = By.xpath('//div[@class="dialog-buttons"]//a[text()="Restart your workspace"]');
|
|
21
|
+
private static readonly RESTART_WITH_DEFAULT_DEVFILE_BUTTON: By = By.xpath('//span[text()="Restart with default devfile"]');
|
|
22
|
+
private static readonly ERROR_DIALOG_TEXT: By = By.xpath('//*[@class="dialog-message-text"]');
|
|
23
|
+
private static readonly ERROR_DIALOG_DETAIL: By = By.xpath('//*[@class="dialog-message-detail"]');
|
|
24
|
+
|
|
25
|
+
constructor(
|
|
26
|
+
@inject(CLASSES.DriverHelper)
|
|
27
|
+
private readonly driverHelper: DriverHelper
|
|
28
|
+
) {}
|
|
29
|
+
|
|
30
|
+
async restartFromLocalDevfile(projectName: string): Promise<void> {
|
|
31
|
+
Logger.debug();
|
|
32
|
+
|
|
33
|
+
await this.driverHelper.getDriver().actions().keyDown(Key.CONTROL).sendKeys('p').keyUp(Key.CONTROL).perform();
|
|
34
|
+
await this.driverHelper.wait(TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING);
|
|
35
|
+
|
|
36
|
+
await this.driverHelper.getDriver().actions().sendKeys('>Dev Spaces: Restart Workspace from Local Devfile').perform();
|
|
37
|
+
await this.driverHelper.wait(TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING);
|
|
38
|
+
await this.driverHelper.getDriver().actions().sendKeys(Key.ENTER).perform();
|
|
39
|
+
await this.driverHelper.wait(TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING);
|
|
40
|
+
|
|
41
|
+
await this.driverHelper.getDriver().actions().sendKeys(`/projects/${projectName}/devfile.yaml`).perform();
|
|
42
|
+
await this.driverHelper.wait(TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING);
|
|
43
|
+
await this.driverHelper.getDriver().actions().sendKeys(Key.ENTER).perform();
|
|
44
|
+
await this.driverHelper.wait(TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING);
|
|
45
|
+
|
|
46
|
+
await this.driverHelper.waitAndClick(RestartWorkspaceDialog.RESTART_BUTTON);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
async confirmRestartWorkspace(timeout: number = TIMEOUT_CONSTANTS.TS_COMMON_PLUGIN_TEST_TIMEOUT): Promise<void> {
|
|
50
|
+
Logger.debug();
|
|
51
|
+
|
|
52
|
+
await this.driverHelper.waitAndClick(RestartWorkspaceDialog.RESTART_WORKSPACE_BUTTON, timeout);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
async clickRestartWithDefaultDevfile(timeout: number = TIMEOUT_CONSTANTS.TS_SELENIUM_START_WORKSPACE_TIMEOUT): Promise<void> {
|
|
56
|
+
Logger.debug();
|
|
57
|
+
|
|
58
|
+
await this.driverHelper.waitAndClick(RestartWorkspaceDialog.RESTART_WITH_DEFAULT_DEVFILE_BUTTON, timeout);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
async getErrorDialogText(timeout: number = TIMEOUT_CONSTANTS.TS_COMMON_PLUGIN_TEST_TIMEOUT): Promise<string> {
|
|
62
|
+
Logger.debug();
|
|
63
|
+
|
|
64
|
+
const element: WebElement = await this.driverHelper.waitVisibility(RestartWorkspaceDialog.ERROR_DIALOG_TEXT, timeout);
|
|
65
|
+
return element.getText();
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
async getErrorDetailText(timeout: number = TIMEOUT_CONSTANTS.TS_COMMON_PLUGIN_TEST_TIMEOUT): Promise<string> {
|
|
69
|
+
Logger.debug();
|
|
70
|
+
|
|
71
|
+
const element: WebElement = await this.driverHelper.waitVisibility(RestartWorkspaceDialog.ERROR_DIALOG_DETAIL, timeout);
|
|
72
|
+
return element.getText();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
/** *******************************************************************
|
|
2
|
+
* copyright (c) 2026 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
|
+
|
|
11
|
+
import { ContainerTerminal, KubernetesCommandLineToolsExecutor } from '../../utils/KubernetesCommandLineToolsExecutor';
|
|
12
|
+
import { expect } from 'chai';
|
|
13
|
+
import { ShellString } from 'shelljs';
|
|
14
|
+
import { BASE_TEST_CONSTANTS } from '../../constants/BASE_TEST_CONSTANTS';
|
|
15
|
+
import { TIMEOUT_CONSTANTS } from '../../constants/TIMEOUT_CONSTANTS';
|
|
16
|
+
import { e2eContainer } from '../../configs/inversify.config';
|
|
17
|
+
import { CLASSES } from '../../configs/inversify.types';
|
|
18
|
+
import { ShellExecutor } from '../../utils/ShellExecutor';
|
|
19
|
+
import { Logger } from '../../utils/Logger';
|
|
20
|
+
import { LoginTests } from '../../tests-library/LoginTests';
|
|
21
|
+
import { WorkspaceHandlingTests } from '../../tests-library/WorkspaceHandlingTests';
|
|
22
|
+
import { Dashboard } from '../../pageobjects/dashboard/Dashboard';
|
|
23
|
+
import { Workspaces } from '../../pageobjects/dashboard/Workspaces';
|
|
24
|
+
import { WorkspaceDetails } from '../../pageobjects/dashboard/workspace-details/WorkspaceDetails';
|
|
25
|
+
import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil';
|
|
26
|
+
import { DriverHelper } from '../../utils/DriverHelper';
|
|
27
|
+
import { ProjectAndFileTests } from '../../tests-library/ProjectAndFileTests';
|
|
28
|
+
import { RestartWorkspaceDialog } from '../../pageobjects/ide/RestartWorkspaceDialog';
|
|
29
|
+
import { By } from 'selenium-webdriver';
|
|
30
|
+
import { registerRunningWorkspace } from '../MochaHooks';
|
|
31
|
+
|
|
32
|
+
suite(`Test case with empty workspace (per-user storage) ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function (): void {
|
|
33
|
+
const loginTests: LoginTests = e2eContainer.get(CLASSES.LoginTests);
|
|
34
|
+
const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests);
|
|
35
|
+
const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard);
|
|
36
|
+
const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil);
|
|
37
|
+
const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper);
|
|
38
|
+
const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests);
|
|
39
|
+
const containerTerminal: ContainerTerminal = e2eContainer.get(CLASSES.ContainerTerminal);
|
|
40
|
+
const kubernetesCommandLineToolsExecutor: KubernetesCommandLineToolsExecutor = e2eContainer.get(
|
|
41
|
+
CLASSES.KubernetesCommandLineToolsExecutor
|
|
42
|
+
);
|
|
43
|
+
const shellExecutor: ShellExecutor = e2eContainer.get(CLASSES.ShellExecutor);
|
|
44
|
+
const restartWorkspaceDialog: RestartWorkspaceDialog = e2eContainer.get(CLASSES.RestartWorkspaceDialog);
|
|
45
|
+
const testFileName: string = 'test-new-file.txt';
|
|
46
|
+
const testFileContent: string = 'test file content for restart verification';
|
|
47
|
+
const gitRepository: string = BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()
|
|
48
|
+
? 'https://gh.crw-qe.com/test-automation-only/devfile-with-typo'
|
|
49
|
+
: 'https://github.com/dmytro-ndp/devfile-with-typo';
|
|
50
|
+
const projectName: string = 'devfile-with-typo';
|
|
51
|
+
let currentTabHandle: string = 'undefined';
|
|
52
|
+
const editorXpath: string = '//*[@id="editor-selector-card-che-incubator/che-code/latest"]';
|
|
53
|
+
const xPathToWaitFor: string = '//*[@id="workbench.parts.sidebar"]';
|
|
54
|
+
const cheClusterName: string = 'devspaces';
|
|
55
|
+
let originalStorageStrategy: string = '';
|
|
56
|
+
|
|
57
|
+
suiteSetup('Login into Che and set per-user storage strategy', async function (): Promise<void> {
|
|
58
|
+
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
59
|
+
shellExecutor.executeCommand('oc project openshift-devspaces');
|
|
60
|
+
|
|
61
|
+
originalStorageStrategy = shellExecutor
|
|
62
|
+
.executeCommand(`oc get checluster/${cheClusterName} -o "jsonpath={.spec.devEnvironments.storage.pvcStrategy}"`)
|
|
63
|
+
.stdout.trim();
|
|
64
|
+
|
|
65
|
+
if (originalStorageStrategy !== 'per-user') {
|
|
66
|
+
const patchResult: ShellString = shellExecutor.executeCommand(
|
|
67
|
+
`oc patch checluster ${cheClusterName} --type=merge ` +
|
|
68
|
+
'-p \'{"spec":{"devEnvironments":{"storage":{"pvcStrategy":"per-user"}}}}\''
|
|
69
|
+
);
|
|
70
|
+
expect(patchResult.code).to.equal(0, 'Failed to patch CheCluster to set per-user storage strategy');
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
await loginTests.loginIntoChe();
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
function clearCurrentTabHandle(): void {
|
|
77
|
+
currentTabHandle = 'undefined';
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
test('Create Empty workspace', async function (): Promise<void> {
|
|
81
|
+
await dashboard.openDashboard();
|
|
82
|
+
currentTabHandle = await browserTabsUtil.getCurrentWindowHandle();
|
|
83
|
+
await dashboard.clickCreateWorkspaceButton();
|
|
84
|
+
await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndSample(editorXpath, 'Empty Workspace', xPathToWaitFor);
|
|
85
|
+
registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName());
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
test('Setup workspace context for API operations', function (): void {
|
|
89
|
+
kubernetesCommandLineToolsExecutor.workspaceName = WorkspaceHandlingTests.getWorkspaceName();
|
|
90
|
+
kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
test('Clone devfile-with-typo repository', function (): void {
|
|
94
|
+
const cloneOutput: ShellString = containerTerminal.gitClone(gitRepository);
|
|
95
|
+
expect(cloneOutput.stdout + cloneOutput.stderr).includes('Cloning');
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
test('Accept the project as a trusted one', async function (): Promise<void> {
|
|
99
|
+
await projectAndFileTests.performTrustAuthorDialog();
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
test('Verify cloned project exists', function (): void {
|
|
103
|
+
expect(containerTerminal.ls().stdout).includes(projectName);
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
test('Create new file in project root', function (): void {
|
|
107
|
+
const output: ShellString = containerTerminal.execInContainerCommand(
|
|
108
|
+
`echo "${testFileContent}" > /projects/${projectName}/${testFileName}`
|
|
109
|
+
);
|
|
110
|
+
expect(output.code).to.equal(0);
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
test('Restart workspace from local devfile with bad image', async function (): Promise<void> {
|
|
114
|
+
await restartWorkspaceDialog.restartFromLocalDevfile(projectName);
|
|
115
|
+
Logger.info('Waiting for "Restart Workspace" confirmation popup');
|
|
116
|
+
await restartWorkspaceDialog.confirmRestartWorkspace();
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
test('Wait for workspace start failure and restart', async function (): Promise<void> {
|
|
120
|
+
Logger.info('Waiting for workspace to enter Failed phase and restart with default devfile');
|
|
121
|
+
await restartWorkspaceDialog.clickRestartWithDefaultDevfile();
|
|
122
|
+
await driverHelper.waitVisibility(By.xpath(xPathToWaitFor), TIMEOUT_CONSTANTS.TS_IDE_START_TIMEOUT);
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
test('Re-initialize workspace context after restart', function (): void {
|
|
126
|
+
kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
test('Verify project exists with cloned files after restart', function (): void {
|
|
130
|
+
expect(containerTerminal.ls().stdout).includes(projectName);
|
|
131
|
+
expect(containerTerminal.ls(`/projects/${projectName}`).stdout).includes('devfile.yaml');
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
test('Verify new file is present in project root after restart', function (): void {
|
|
135
|
+
const output: ShellString = containerTerminal.execInContainerCommand(`cat /projects/${projectName}/${testFileName}`);
|
|
136
|
+
expect(output.stdout.trim()).to.equal(testFileContent);
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
test('Verify devfile schema validation error on invalid env declaration', async function (): Promise<void> {
|
|
140
|
+
Logger.info('Appending invalid env declaration to devfile.yaml');
|
|
141
|
+
const appendOutput: ShellString = containerTerminal.execInContainerCommand(
|
|
142
|
+
`echo " env:" >> /projects/${projectName}/devfile.yaml && ` +
|
|
143
|
+
`echo " - name: test-env" >> /projects/${projectName}/devfile.yaml && ` +
|
|
144
|
+
`echo " value: true" >> /projects/${projectName}/devfile.yaml`
|
|
145
|
+
);
|
|
146
|
+
expect(appendOutput.code).to.equal(0, 'Failed to append invalid env content to devfile.yaml');
|
|
147
|
+
|
|
148
|
+
Logger.info('Restart from local devfile');
|
|
149
|
+
await restartWorkspaceDialog.restartFromLocalDevfile(projectName);
|
|
150
|
+
|
|
151
|
+
Logger.info('Check error popup');
|
|
152
|
+
const dialogText: string = await restartWorkspaceDialog.getErrorDialogText();
|
|
153
|
+
Logger.info(`Error dialog title text: ${dialogText}`);
|
|
154
|
+
|
|
155
|
+
const detailText: string = await restartWorkspaceDialog.getErrorDetailText();
|
|
156
|
+
Logger.info(`Error dialog detail text: ${detailText}`);
|
|
157
|
+
|
|
158
|
+
expect(detailText).to.equal(
|
|
159
|
+
'Devfile schema validation failed. Error: 0: instance.components[0] is not allowed to have the additional property "env"'
|
|
160
|
+
);
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
suiteTeardown('Delete DevWorkspace', async function (): Promise<void> {
|
|
164
|
+
Logger.debug('Delete DevWorkspace. After each test.');
|
|
165
|
+
if (currentTabHandle !== 'undefined') {
|
|
166
|
+
await browserTabsUtil.switchToWindow(currentTabHandle);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
await dashboard.openDashboard();
|
|
170
|
+
await browserTabsUtil.closeAllTabsExceptCurrent();
|
|
171
|
+
|
|
172
|
+
if (WorkspaceHandlingTests.getWorkspaceName() !== 'undefined') {
|
|
173
|
+
Logger.debug('Workspace name is defined. Deleting workspace...');
|
|
174
|
+
await dashboard.deleteStoppedWorkspaceByUI(WorkspaceHandlingTests.getWorkspaceName());
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
WorkspaceHandlingTests.clearWorkspaceName();
|
|
178
|
+
clearCurrentTabHandle();
|
|
179
|
+
registerRunningWorkspace('');
|
|
180
|
+
|
|
181
|
+
if (originalStorageStrategy !== '' && originalStorageStrategy !== 'per-user') {
|
|
182
|
+
const restoreResult: ShellString = shellExecutor.executeCommand(
|
|
183
|
+
`oc patch checluster ${cheClusterName} --type=merge ` +
|
|
184
|
+
`-p '{"spec":{"devEnvironments":{"storage":{"pvcStrategy":"${originalStorageStrategy}"}}}}'`
|
|
185
|
+
);
|
|
186
|
+
expect(restoreResult.code).to.equal(0, 'Failed to restore CheCluster storage strategy');
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
});
|
|
190
|
+
|
|
191
|
+
suite(`Test case with pvc-fail workspace (bad image restart) ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function (): void {
|
|
192
|
+
const loginTests: LoginTests = e2eContainer.get(CLASSES.LoginTests);
|
|
193
|
+
const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests);
|
|
194
|
+
const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard);
|
|
195
|
+
const workspaces: Workspaces = e2eContainer.get(CLASSES.Workspaces);
|
|
196
|
+
const workspaceDetails: WorkspaceDetails = e2eContainer.get(CLASSES.WorkspaceDetails);
|
|
197
|
+
const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil);
|
|
198
|
+
const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper);
|
|
199
|
+
const containerTerminal: ContainerTerminal = e2eContainer.get(CLASSES.ContainerTerminal);
|
|
200
|
+
const kubernetesCommandLineToolsExecutor: KubernetesCommandLineToolsExecutor = e2eContainer.get(
|
|
201
|
+
CLASSES.KubernetesCommandLineToolsExecutor
|
|
202
|
+
);
|
|
203
|
+
const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests);
|
|
204
|
+
const shellExecutor: ShellExecutor = e2eContainer.get(CLASSES.ShellExecutor);
|
|
205
|
+
const restartWorkspaceDialog: RestartWorkspaceDialog = e2eContainer.get(CLASSES.RestartWorkspaceDialog);
|
|
206
|
+
const testFileName: string = 'test-new-file.txt';
|
|
207
|
+
const testFileContent: string = 'test file content for pvc-fail restart verification';
|
|
208
|
+
const gitRepository: string = 'https://github.com/cgruver/test-workspace/tree/pvc-fail';
|
|
209
|
+
const projectName: string = 'test-workspace';
|
|
210
|
+
let currentTabHandle: string = 'undefined';
|
|
211
|
+
const xPathToWaitFor: string = '//*[@id="workbench.parts.sidebar"]';
|
|
212
|
+
const editorXpath: string = '//*[@id="editor-selector-card-che-incubator/che-code/latest"]';
|
|
213
|
+
const cheClusterName: string = 'devspaces';
|
|
214
|
+
let originalStorageStrategy: string = '';
|
|
215
|
+
|
|
216
|
+
suiteSetup('Skip suite on disconnected clusters', function (): void {
|
|
217
|
+
if (BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()) {
|
|
218
|
+
Logger.info('Test cluster is disconnected. Skipping pvc-fail workspace suite.');
|
|
219
|
+
this.skip();
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
suiteSetup('Login into Che and set per-workspace storage strategy', async function (): Promise<void> {
|
|
224
|
+
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
225
|
+
shellExecutor.executeCommand('oc project openshift-devspaces');
|
|
226
|
+
|
|
227
|
+
originalStorageStrategy = shellExecutor
|
|
228
|
+
.executeCommand(`oc get checluster/${cheClusterName} -o "jsonpath={.spec.devEnvironments.storage.pvcStrategy}"`)
|
|
229
|
+
.stdout.trim();
|
|
230
|
+
|
|
231
|
+
if (originalStorageStrategy !== 'per-workspace') {
|
|
232
|
+
const patchResult: ShellString = shellExecutor.executeCommand(
|
|
233
|
+
`oc patch checluster ${cheClusterName} --type=merge ` +
|
|
234
|
+
'-p \'{"spec":{"devEnvironments":{"storage":{"pvcStrategy":"per-workspace"}}}}\''
|
|
235
|
+
);
|
|
236
|
+
expect(patchResult.code).to.equal(0, 'Failed to patch CheCluster to set per-workspace storage strategy');
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
await loginTests.loginIntoChe();
|
|
240
|
+
});
|
|
241
|
+
|
|
242
|
+
function clearCurrentTabHandle(): void {
|
|
243
|
+
currentTabHandle = 'undefined';
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
test('Create workspace from test-workspace pvc-fail branch', async function (): Promise<void> {
|
|
247
|
+
await dashboard.openDashboard();
|
|
248
|
+
currentTabHandle = await browserTabsUtil.getCurrentWindowHandle();
|
|
249
|
+
await dashboard.clickCreateWorkspaceButton();
|
|
250
|
+
await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndGitUrl(editorXpath, gitRepository, xPathToWaitFor);
|
|
251
|
+
registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName());
|
|
252
|
+
});
|
|
253
|
+
|
|
254
|
+
test('Accept the project as a trusted one', async function (): Promise<void> {
|
|
255
|
+
await projectAndFileTests.performTrustAuthorDialog();
|
|
256
|
+
});
|
|
257
|
+
|
|
258
|
+
test('Setup workspace context for API operations', function (): void {
|
|
259
|
+
kubernetesCommandLineToolsExecutor.workspaceName = WorkspaceHandlingTests.getWorkspaceName();
|
|
260
|
+
kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
|
|
261
|
+
});
|
|
262
|
+
|
|
263
|
+
test('Create new file in project folder', function (): void {
|
|
264
|
+
const output: ShellString = containerTerminal.execInContainerCommand(
|
|
265
|
+
`echo "${testFileContent}" > /projects/${projectName}/${testFileName}`
|
|
266
|
+
);
|
|
267
|
+
expect(output.code).to.equal(0);
|
|
268
|
+
});
|
|
269
|
+
|
|
270
|
+
test('Modify devfile to point to bad image location', function (): void {
|
|
271
|
+
Logger.info('Replacing ":latest" with ":badimage" in devfile.yaml using sed');
|
|
272
|
+
const output: ShellString = containerTerminal.execInContainerCommand(
|
|
273
|
+
`sed -i 's/:latest/:badimage/g' /projects/${projectName}/devfile.yaml`
|
|
274
|
+
);
|
|
275
|
+
expect(output.code).to.equal(0, 'Failed to replace :latest with :badimage in devfile.yaml');
|
|
276
|
+
|
|
277
|
+
const verifyOutput: ShellString = containerTerminal.execInContainerCommand(`cat /projects/${projectName}/devfile.yaml`);
|
|
278
|
+
expect(verifyOutput.stdout).to.include(':badimage');
|
|
279
|
+
expect(verifyOutput.stdout).to.not.include(':latest');
|
|
280
|
+
});
|
|
281
|
+
|
|
282
|
+
test('Restart workspace from local devfile with bad image', async function (): Promise<void> {
|
|
283
|
+
await restartWorkspaceDialog.restartFromLocalDevfile(projectName);
|
|
284
|
+
Logger.info('Waiting for "Restart Workspace" confirmation popup');
|
|
285
|
+
await restartWorkspaceDialog.confirmRestartWorkspace();
|
|
286
|
+
});
|
|
287
|
+
|
|
288
|
+
test('Wait for workspace start failure and restart with default devfile', async function (): Promise<void> {
|
|
289
|
+
Logger.info('Waiting for workspace to enter Failed phase and restart with default devfile');
|
|
290
|
+
await restartWorkspaceDialog.clickRestartWithDefaultDevfile();
|
|
291
|
+
await driverHelper.waitVisibility(By.xpath(xPathToWaitFor), TIMEOUT_CONSTANTS.TS_IDE_START_TIMEOUT);
|
|
292
|
+
});
|
|
293
|
+
|
|
294
|
+
test('Re-initialize workspace context after restart', function (): void {
|
|
295
|
+
kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
|
|
296
|
+
});
|
|
297
|
+
|
|
298
|
+
test('Verify project exists after restart with default devfile', function (): void {
|
|
299
|
+
expect(containerTerminal.ls().stdout).includes(projectName);
|
|
300
|
+
expect(containerTerminal.ls(`/projects/${projectName}`).stdout).includes('devfile.yaml');
|
|
301
|
+
});
|
|
302
|
+
|
|
303
|
+
test('Verify new file is present after restart with default devfile', function (): void {
|
|
304
|
+
const output: ShellString = containerTerminal.execInContainerCommand(`cat /projects/${projectName}/${testFileName}`);
|
|
305
|
+
expect(output.stdout.trim()).to.equal(testFileContent);
|
|
306
|
+
});
|
|
307
|
+
|
|
308
|
+
test('Verify storage type is per-workspace in workspace details', async function (): Promise<void> {
|
|
309
|
+
const workspaceName: string = WorkspaceHandlingTests.getWorkspaceName();
|
|
310
|
+
|
|
311
|
+
Logger.info('Opening Workspaces page');
|
|
312
|
+
await dashboard.openDashboard();
|
|
313
|
+
await dashboard.clickWorkspacesButton();
|
|
314
|
+
await workspaces.waitPage();
|
|
315
|
+
|
|
316
|
+
Logger.info(`Opening workspace details for: ${workspaceName}`);
|
|
317
|
+
await workspaces.clickWorkspaceListItemLink(workspaceName);
|
|
318
|
+
await workspaceDetails.waitWorkspaceTitle(workspaceName);
|
|
319
|
+
|
|
320
|
+
Logger.info('Verifying storage type is per-workspace on Overview tab');
|
|
321
|
+
const storageTypeValue: string = await workspaceDetails.getStorageTypeValue();
|
|
322
|
+
expect(storageTypeValue).to.equal('per-workspace');
|
|
323
|
+
});
|
|
324
|
+
|
|
325
|
+
suiteTeardown('Delete DevWorkspace', async function (): Promise<void> {
|
|
326
|
+
Logger.debug('Delete DevWorkspace. After each test.');
|
|
327
|
+
if (currentTabHandle !== 'undefined') {
|
|
328
|
+
await browserTabsUtil.switchToWindow(currentTabHandle);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
await dashboard.openDashboard();
|
|
332
|
+
await browserTabsUtil.closeAllTabsExceptCurrent();
|
|
333
|
+
|
|
334
|
+
if (WorkspaceHandlingTests.getWorkspaceName() !== 'undefined') {
|
|
335
|
+
Logger.debug('Workspace name is defined. Deleting workspace...');
|
|
336
|
+
await dashboard.deleteStoppedWorkspaceByUI(WorkspaceHandlingTests.getWorkspaceName());
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
WorkspaceHandlingTests.clearWorkspaceName();
|
|
340
|
+
clearCurrentTabHandle();
|
|
341
|
+
registerRunningWorkspace('');
|
|
342
|
+
|
|
343
|
+
if (originalStorageStrategy !== '' && originalStorageStrategy !== 'per-workspace') {
|
|
344
|
+
const restoreResult: ShellString = shellExecutor.executeCommand(
|
|
345
|
+
`oc patch checluster ${cheClusterName} --type=merge ` +
|
|
346
|
+
`-p '{"spec":{"devEnvironments":{"storage":{"pvcStrategy":"${originalStorageStrategy}"}}}}'`
|
|
347
|
+
);
|
|
348
|
+
expect(restoreResult.code).to.equal(0, 'Failed to restore CheCluster storage strategy');
|
|
349
|
+
}
|
|
350
|
+
});
|
|
351
|
+
});
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/** *******************************************************************
|
|
3
|
-
* copyright (c) 2019-2023 Red Hat, Inc.
|
|
4
|
-
*
|
|
5
|
-
* This program and the accompanying materials are made
|
|
6
|
-
* available under the terms of the Eclipse Public License 2.0
|
|
7
|
-
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
8
|
-
*
|
|
9
|
-
* SPDX-License-Identifier: EPL-2.0
|
|
10
|
-
**********************************************************************/
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.e2eContainer = void 0;
|
|
13
|
-
require("reflect-metadata");
|
|
14
|
-
const inversify_1 = require("inversify");
|
|
15
|
-
const ChromeDriver_1 = require("../driver/ChromeDriver");
|
|
16
|
-
const inversify_types_1 = require("./inversify.types");
|
|
17
|
-
const TestWorkspaceUtil_1 = require("../utils/workspace/TestWorkspaceUtil");
|
|
18
|
-
const OcpUserLoginPage_1 = require("../pageobjects/login/openshift/OcpUserLoginPage");
|
|
19
|
-
const RegularUserOcpCheLoginPage_1 = require("../pageobjects/login/openshift/RegularUserOcpCheLoginPage");
|
|
20
|
-
const DriverHelper_1 = require("../utils/DriverHelper");
|
|
21
|
-
const Dashboard_1 = require("../pageobjects/dashboard/Dashboard");
|
|
22
|
-
const Workspaces_1 = require("../pageobjects/dashboard/Workspaces");
|
|
23
|
-
const WorkspaceDetails_1 = require("../pageobjects/dashboard/workspace-details/WorkspaceDetails");
|
|
24
|
-
const ScreenCatcher_1 = require("../utils/ScreenCatcher");
|
|
25
|
-
const OcpLoginPage_1 = require("../pageobjects/login/openshift/OcpLoginPage");
|
|
26
|
-
const CheMultiuserAuthorizationHeaderHandler_1 = require("../utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler");
|
|
27
|
-
const CheApiRequestHandler_1 = require("../utils/request-handlers/CheApiRequestHandler");
|
|
28
|
-
const CreateWorkspace_1 = require("../pageobjects/dashboard/CreateWorkspace");
|
|
29
|
-
const BrowserTabsUtil_1 = require("../utils/BrowserTabsUtil");
|
|
30
|
-
const WorkspaceHandlingTests_1 = require("../tests-library/WorkspaceHandlingTests");
|
|
31
|
-
const ApiUrlResolver_1 = require("../utils/workspace/ApiUrlResolver");
|
|
32
|
-
const ProjectAndFileTests_1 = require("../tests-library/ProjectAndFileTests");
|
|
33
|
-
const LoginTests_1 = require("../tests-library/LoginTests");
|
|
34
|
-
const RedHatLoginPage_1 = require("../pageobjects/login/openshift/RedHatLoginPage");
|
|
35
|
-
const OcpRedHatLoginPage_1 = require("../pageobjects/login/openshift/OcpRedHatLoginPage");
|
|
36
|
-
const OcpMainPage_1 = require("../pageobjects/openshift/OcpMainPage");
|
|
37
|
-
const OcpImportFromGitPage_1 = require("../pageobjects/openshift/OcpImportFromGitPage");
|
|
38
|
-
const OcpApplicationPage_1 = require("../pageobjects/openshift/OcpApplicationPage");
|
|
39
|
-
const StringUtil_1 = require("../utils/StringUtil");
|
|
40
|
-
const KubernetesLoginPage_1 = require("../pageobjects/login/kubernetes/KubernetesLoginPage");
|
|
41
|
-
const DexLoginPage_1 = require("../pageobjects/login/kubernetes/DexLoginPage");
|
|
42
|
-
const OAUTH_CONSTANTS_1 = require("../constants/OAUTH_CONSTANTS");
|
|
43
|
-
const BASE_TEST_CONSTANTS_1 = require("../constants/BASE_TEST_CONSTANTS");
|
|
44
|
-
const CheCodeLocatorLoader_1 = require("../pageobjects/ide/CheCodeLocatorLoader");
|
|
45
|
-
const loader_1 = require("monaco-page-objects/out/locators/loader");
|
|
46
|
-
const OauthPage_1 = require("../pageobjects/git-providers/OauthPage");
|
|
47
|
-
const DevfilesHelper_1 = require("../utils/DevfilesHelper");
|
|
48
|
-
const main_1 = require("@eclipse-che/che-devworkspace-generator/lib/main");
|
|
49
|
-
const KubernetesCommandLineToolsExecutor_1 = require("../utils/KubernetesCommandLineToolsExecutor");
|
|
50
|
-
const ShellExecutor_1 = require("../utils/ShellExecutor");
|
|
51
|
-
const UserPreferences_1 = require("../pageobjects/dashboard/UserPreferences");
|
|
52
|
-
const WebTerminalPage_1 = require("../pageobjects/webterminal/WebTerminalPage");
|
|
53
|
-
const TrustAuthorPopup_1 = require("../pageobjects/dashboard/TrustAuthorPopup");
|
|
54
|
-
const ViewsMoreActionsButton_1 = require("../pageobjects/ide/ViewsMoreActionsButton");
|
|
55
|
-
const RestrictedModeButton_1 = require("../pageobjects/ide/RestrictedModeButton");
|
|
56
|
-
const CommandPalette_1 = require("../pageobjects/ide/CommandPalette");
|
|
57
|
-
const ExtensionsView_1 = require("../pageobjects/ide/ExtensionsView");
|
|
58
|
-
const ExplorerView_1 = require("../pageobjects/ide/ExplorerView");
|
|
59
|
-
const NotificationHandler_1 = require("../pageobjects/ide/NotificationHandler");
|
|
60
|
-
const SourceControlView_1 = require("../pageobjects/ide/SourceControlView");
|
|
61
|
-
const GitHubExtensionDialog_1 = require("../pageobjects/ide/GitHubExtensionDialog");
|
|
62
|
-
const AiCodeSignInDialog_1 = require("../pageobjects/ide/AiCodeSignInDialog");
|
|
63
|
-
const e2eContainer = new inversify_1.Container({ defaultScope: 'Transient', skipBaseClassChecks: true });
|
|
64
|
-
exports.e2eContainer = e2eContainer;
|
|
65
|
-
e2eContainer.bind(inversify_types_1.TYPES.Driver).to(ChromeDriver_1.ChromeDriver).inSingletonScope();
|
|
66
|
-
e2eContainer.bind(inversify_types_1.TYPES.WorkspaceUtil).to(TestWorkspaceUtil_1.TestWorkspaceUtil);
|
|
67
|
-
e2eContainer.bind(inversify_types_1.TYPES.OcpLogin).to(OcpUserLoginPage_1.OcpUserLoginPage);
|
|
68
|
-
e2eContainer.bind(inversify_types_1.TYPES.IAuthorizationHeaderHandler).to(CheMultiuserAuthorizationHeaderHandler_1.CheMultiuserAuthorizationHeaderHandler);
|
|
69
|
-
e2eContainer.bind(inversify_types_1.CLASSES.BrowserTabsUtil).to(BrowserTabsUtil_1.BrowserTabsUtil);
|
|
70
|
-
e2eContainer.bind(inversify_types_1.CLASSES.DriverHelper).to(DriverHelper_1.DriverHelper);
|
|
71
|
-
e2eContainer.bind(inversify_types_1.CLASSES.Dashboard).to(Dashboard_1.Dashboard);
|
|
72
|
-
e2eContainer.bind(inversify_types_1.CLASSES.Workspaces).to(Workspaces_1.Workspaces);
|
|
73
|
-
e2eContainer.bind(inversify_types_1.CLASSES.WorkspaceDetails).to(WorkspaceDetails_1.WorkspaceDetails);
|
|
74
|
-
e2eContainer.bind(inversify_types_1.CLASSES.ScreenCatcher).to(ScreenCatcher_1.ScreenCatcher);
|
|
75
|
-
e2eContainer.bind(inversify_types_1.CLASSES.OcpLoginPage).to(OcpLoginPage_1.OcpLoginPage);
|
|
76
|
-
e2eContainer.bind(inversify_types_1.CLASSES.DexLoginPage).to(DexLoginPage_1.DexLoginPage);
|
|
77
|
-
e2eContainer.bind(inversify_types_1.CLASSES.CheCodeLocatorLoader).to(CheCodeLocatorLoader_1.CheCodeLocatorLoader);
|
|
78
|
-
e2eContainer.bind(inversify_types_1.CLASSES.LocatorLoader).to(loader_1.LocatorLoader);
|
|
79
|
-
e2eContainer.bind(inversify_types_1.CLASSES.OauthPage).to(OauthPage_1.OauthPage);
|
|
80
|
-
e2eContainer.bind(inversify_types_1.CLASSES.OcpMainPage).to(OcpMainPage_1.OcpMainPage);
|
|
81
|
-
e2eContainer.bind(inversify_types_1.CLASSES.OcpImportFromGitPage).to(OcpImportFromGitPage_1.OcpImportFromGitPage);
|
|
82
|
-
e2eContainer.bind(inversify_types_1.CLASSES.OcpApplicationPage).to(OcpApplicationPage_1.OcpApplicationPage);
|
|
83
|
-
e2eContainer.bind(inversify_types_1.CLASSES.CheApiRequestHandler).to(CheApiRequestHandler_1.CheApiRequestHandler);
|
|
84
|
-
e2eContainer.bind(inversify_types_1.CLASSES.CreateWorkspace).to(CreateWorkspace_1.CreateWorkspace);
|
|
85
|
-
e2eContainer.bind(inversify_types_1.CLASSES.ProjectAndFileTests).to(ProjectAndFileTests_1.ProjectAndFileTests);
|
|
86
|
-
e2eContainer.bind(inversify_types_1.CLASSES.LoginTests).to(LoginTests_1.LoginTests);
|
|
87
|
-
e2eContainer.bind(inversify_types_1.CLASSES.StringUtil).to(StringUtil_1.StringUtil);
|
|
88
|
-
e2eContainer.bind(inversify_types_1.CLASSES.ApiUrlResolver).to(ApiUrlResolver_1.ApiUrlResolver);
|
|
89
|
-
e2eContainer.bind(inversify_types_1.CLASSES.WorkspaceHandlingTests).to(WorkspaceHandlingTests_1.WorkspaceHandlingTests);
|
|
90
|
-
e2eContainer.bind(inversify_types_1.CLASSES.RedHatLoginPage).to(RedHatLoginPage_1.RedHatLoginPage);
|
|
91
|
-
e2eContainer.bind(inversify_types_1.CLASSES.DevfilesRegistryHelper).to(DevfilesHelper_1.DevfilesHelper);
|
|
92
|
-
e2eContainer.bind(inversify_types_1.CLASSES.KubernetesCommandLineToolsExecutor).to(KubernetesCommandLineToolsExecutor_1.KubernetesCommandLineToolsExecutor);
|
|
93
|
-
e2eContainer.bind(inversify_types_1.CLASSES.ShellExecutor).to(ShellExecutor_1.ShellExecutor);
|
|
94
|
-
e2eContainer.bind(inversify_types_1.CLASSES.ContainerTerminal).to(KubernetesCommandLineToolsExecutor_1.ContainerTerminal);
|
|
95
|
-
e2eContainer.bind(inversify_types_1.CLASSES.WebTerminalPage).to(WebTerminalPage_1.WebTerminalPage);
|
|
96
|
-
e2eContainer.bind(inversify_types_1.CLASSES.UserPreferences).to(UserPreferences_1.UserPreferences);
|
|
97
|
-
e2eContainer.bind(inversify_types_1.EXTERNAL_CLASSES.Generator).to(main_1.Main);
|
|
98
|
-
e2eContainer.bind(inversify_types_1.EXTERNAL_CLASSES.LocatorLoader).to(loader_1.LocatorLoader);
|
|
99
|
-
e2eContainer.bind(inversify_types_1.EXTERNAL_CLASSES.LocatorLoader).to(loader_1.LocatorLoader);
|
|
100
|
-
e2eContainer.bind(inversify_types_1.CLASSES.TrustAuthorPopup).to(TrustAuthorPopup_1.TrustAuthorPopup);
|
|
101
|
-
e2eContainer.bind(inversify_types_1.CLASSES.ViewsMoreActionsButton).to(ViewsMoreActionsButton_1.ViewsMoreActionsButton);
|
|
102
|
-
e2eContainer.bind(inversify_types_1.CLASSES.RestrictedModeButton).to(RestrictedModeButton_1.RestrictedModeButton);
|
|
103
|
-
e2eContainer.bind(inversify_types_1.CLASSES.CommandPalette).to(CommandPalette_1.CommandPalette);
|
|
104
|
-
e2eContainer.bind(inversify_types_1.CLASSES.ExtensionsView).to(ExtensionsView_1.ExtensionsView);
|
|
105
|
-
e2eContainer.bind(inversify_types_1.CLASSES.ExplorerView).to(ExplorerView_1.ExplorerView);
|
|
106
|
-
e2eContainer.bind(inversify_types_1.CLASSES.NotificationHandler).to(NotificationHandler_1.NotificationHandler);
|
|
107
|
-
e2eContainer.bind(inversify_types_1.CLASSES.SourceControlView).to(SourceControlView_1.SourceControlView);
|
|
108
|
-
e2eContainer.bind(inversify_types_1.CLASSES.GitHubExtensionDialog).to(GitHubExtensionDialog_1.GitHubExtensionDialog);
|
|
109
|
-
e2eContainer.bind(inversify_types_1.CLASSES.AiCodeSignInDialog).to(AiCodeSignInDialog_1.AiCodeSignInDialog);
|
|
110
|
-
if (BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TS_PLATFORM === BASE_TEST_CONSTANTS_1.Platform.OPENSHIFT) {
|
|
111
|
-
if (OAUTH_CONSTANTS_1.OAUTH_CONSTANTS.TS_SELENIUM_VALUE_OPENSHIFT_OAUTH) {
|
|
112
|
-
e2eContainer.bind(inversify_types_1.TYPES.CheLogin).to(RegularUserOcpCheLoginPage_1.RegularUserOcpCheLoginPage);
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
e2eContainer.bind(inversify_types_1.TYPES.CheLogin).to(OcpRedHatLoginPage_1.OcpRedHatLoginPage);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
e2eContainer.bind(inversify_types_1.TYPES.CheLogin).to(KubernetesLoginPage_1.KubernetesLoginPage);
|
|
120
|
-
}
|
|
121
|
-
//# sourceMappingURL=inversify.config.js.map
|