@eclipse-che/che-e2e 7.124.0-next → 7.124.0-next-6307b25
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/constants/BASE_TEST_CONSTANTS.ts +6 -0
- package/dist/configs/inversify.config.js +123 -0
- package/dist/configs/inversify.config.js.map +1 -0
- package/dist/configs/inversify.types.js +74 -0
- package/dist/configs/inversify.types.js.map +1 -0
- package/dist/configs/mocharc.js +42 -0
- package/dist/configs/mocharc.js.map +1 -0
- package/dist/constants/API_TEST_CONSTANTS.js +60 -0
- package/dist/constants/API_TEST_CONSTANTS.js.map +1 -0
- package/dist/constants/BASE_TEST_CONSTANTS.js +113 -0
- package/dist/constants/BASE_TEST_CONSTANTS.js.map +1 -0
- package/dist/constants/CHROME_DRIVER_CONSTANTS.js +40 -0
- package/dist/constants/CHROME_DRIVER_CONSTANTS.js.map +1 -0
- package/dist/constants/EDITOR_CONSTANTS.js +114 -0
- package/dist/constants/EDITOR_CONSTANTS.js.map +1 -0
- package/dist/constants/FACTORY_TEST_CONSTANTS.js +87 -0
- package/dist/constants/FACTORY_TEST_CONSTANTS.js.map +1 -0
- package/dist/constants/MOCHA_CONSTANTS.js +24 -0
- package/dist/constants/MOCHA_CONSTANTS.js.map +1 -0
- package/dist/constants/MONACO_CONSTANTS.js +25 -0
- package/dist/constants/MONACO_CONSTANTS.js.map +1 -0
- package/dist/constants/OAUTH_CONSTANTS.js +53 -0
- package/dist/constants/OAUTH_CONSTANTS.js.map +1 -0
- package/dist/constants/PLUGIN_TEST_CONSTANTS.js +19 -0
- package/dist/constants/PLUGIN_TEST_CONSTANTS.js.map +1 -0
- package/dist/constants/REPORTER_CONSTANTS.js +123 -0
- package/dist/constants/REPORTER_CONSTANTS.js.map +1 -0
- package/dist/constants/TIMEOUT_CONSTANTS.js +101 -0
- package/dist/constants/TIMEOUT_CONSTANTS.js.map +1 -0
- package/dist/driver/ChromeDriver.js +77 -0
- package/dist/driver/ChromeDriver.js.map +1 -0
- package/dist/driver/IDriver.js +3 -0
- package/dist/driver/IDriver.js.map +1 -0
- package/dist/index.js +99 -0
- package/dist/index.js.map +1 -0
- package/dist/pageobjects/dashboard/CreateWorkspace.js +214 -0
- package/dist/pageobjects/dashboard/CreateWorkspace.js.map +1 -0
- package/dist/pageobjects/dashboard/Dashboard.js +208 -0
- package/dist/pageobjects/dashboard/Dashboard.js.map +1 -0
- package/dist/pageobjects/dashboard/TrustAuthorPopup.js +61 -0
- package/dist/pageobjects/dashboard/TrustAuthorPopup.js.map +1 -0
- package/dist/pageobjects/dashboard/UserPreferences.js +341 -0
- package/dist/pageobjects/dashboard/UserPreferences.js.map +1 -0
- package/dist/pageobjects/dashboard/Workspaces.js +242 -0
- package/dist/pageobjects/dashboard/Workspaces.js.map +1 -0
- package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js +192 -0
- package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js.map +1 -0
- package/dist/pageobjects/git-providers/OauthPage.js +218 -0
- package/dist/pageobjects/git-providers/OauthPage.js.map +1 -0
- package/dist/pageobjects/ide/AiCodeSignInDialog.js +55 -0
- package/dist/pageobjects/ide/AiCodeSignInDialog.js.map +1 -0
- package/dist/pageobjects/ide/CheCodeLocatorLoader.js +108 -0
- package/dist/pageobjects/ide/CheCodeLocatorLoader.js.map +1 -0
- package/dist/pageobjects/ide/CommandPalette.js +117 -0
- package/dist/pageobjects/ide/CommandPalette.js.map +1 -0
- package/dist/pageobjects/ide/ExplorerView.js +108 -0
- package/dist/pageobjects/ide/ExplorerView.js.map +1 -0
- package/dist/pageobjects/ide/ExtensionsView.js +162 -0
- package/dist/pageobjects/ide/ExtensionsView.js.map +1 -0
- package/dist/pageobjects/ide/GitHubExtensionDialog.js +66 -0
- package/dist/pageobjects/ide/GitHubExtensionDialog.js.map +1 -0
- package/dist/pageobjects/ide/NotificationHandler.js +83 -0
- package/dist/pageobjects/ide/NotificationHandler.js.map +1 -0
- package/dist/pageobjects/ide/RestartWorkspaceDialog.js +80 -0
- package/dist/pageobjects/ide/RestartWorkspaceDialog.js.map +1 -0
- package/dist/pageobjects/ide/RestrictedModeButton.js +57 -0
- package/dist/pageobjects/ide/RestrictedModeButton.js.map +1 -0
- package/dist/pageobjects/ide/SourceControlView.js +52 -0
- package/dist/pageobjects/ide/SourceControlView.js.map +1 -0
- package/dist/pageobjects/ide/ViewsMoreActionsButton.js +73 -0
- package/dist/pageobjects/ide/ViewsMoreActionsButton.js.map +1 -0
- package/dist/pageobjects/login/interfaces/ICheLoginPage.js +12 -0
- package/dist/pageobjects/login/interfaces/ICheLoginPage.js.map +1 -0
- package/dist/pageobjects/login/interfaces/IOcpLoginPage.js +12 -0
- package/dist/pageobjects/login/interfaces/IOcpLoginPage.js.map +1 -0
- package/dist/pageobjects/login/kubernetes/DexLoginPage.js +69 -0
- package/dist/pageobjects/login/kubernetes/DexLoginPage.js.map +1 -0
- package/dist/pageobjects/login/kubernetes/KubernetesLoginPage.js +50 -0
- package/dist/pageobjects/login/kubernetes/KubernetesLoginPage.js.map +1 -0
- package/dist/pageobjects/login/openshift/OcpLoginPage.js +88 -0
- package/dist/pageobjects/login/openshift/OcpLoginPage.js.map +1 -0
- package/dist/pageobjects/login/openshift/OcpRedHatLoginPage.js +73 -0
- package/dist/pageobjects/login/openshift/OcpRedHatLoginPage.js.map +1 -0
- package/dist/pageobjects/login/openshift/OcpUserLoginPage.js +53 -0
- package/dist/pageobjects/login/openshift/OcpUserLoginPage.js.map +1 -0
- package/dist/pageobjects/login/openshift/RedHatLoginPage.js +85 -0
- package/dist/pageobjects/login/openshift/RedHatLoginPage.js.map +1 -0
- package/dist/pageobjects/login/openshift/RegularUserOcpCheLoginPage.js +65 -0
- package/dist/pageobjects/login/openshift/RegularUserOcpCheLoginPage.js.map +1 -0
- package/dist/pageobjects/openshift/OcpApplicationPage.js +60 -0
- package/dist/pageobjects/openshift/OcpApplicationPage.js.map +1 -0
- package/dist/pageobjects/openshift/OcpImportFromGitPage.js +92 -0
- package/dist/pageobjects/openshift/OcpImportFromGitPage.js.map +1 -0
- package/dist/pageobjects/openshift/OcpMainPage.js +140 -0
- package/dist/pageobjects/openshift/OcpMainPage.js.map +1 -0
- package/dist/pageobjects/webterminal/WebTerminalPage.js +182 -0
- package/dist/pageobjects/webterminal/WebTerminalPage.js.map +1 -0
- package/dist/specs/MochaHooks.js +142 -0
- package/dist/specs/MochaHooks.js.map +1 -0
- package/dist/specs/SmokeTest.spec.js +58 -0
- package/dist/specs/SmokeTest.spec.js.map +1 -0
- package/dist/specs/api/AnsibleDevFileAPI.spec.js +263 -0
- package/dist/specs/api/AnsibleDevFileAPI.spec.js.map +1 -0
- package/dist/specs/api/BuildPushRunPodmanContainerAPI.spec.js +147 -0
- package/dist/specs/api/BuildPushRunPodmanContainerAPI.spec.js.map +1 -0
- package/dist/specs/api/ContainerOverridesAPI.spec.js +40 -0
- package/dist/specs/api/ContainerOverridesAPI.spec.js.map +1 -0
- package/dist/specs/api/CppDevFileAPI.spec.js +87 -0
- package/dist/specs/api/CppDevFileAPI.spec.js.map +1 -0
- package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js +99 -0
- package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js.map +1 -0
- package/dist/specs/api/DotnetDevFileAPI.spec.js +89 -0
- package/dist/specs/api/DotnetDevFileAPI.spec.js.map +1 -0
- package/dist/specs/api/EmptyWorkspaceAPI.spec.js +60 -0
- package/dist/specs/api/EmptyWorkspaceAPI.spec.js.map +1 -0
- package/dist/specs/api/GoDevFileAPI.spec.js +82 -0
- package/dist/specs/api/GoDevFileAPI.spec.js.map +1 -0
- package/dist/specs/api/InbuiltApplicationDevWorkspacesAPI.spec.js +97 -0
- package/dist/specs/api/InbuiltApplicationDevWorkspacesAPI.spec.js.map +1 -0
- package/dist/specs/api/JBossEapDevFileAPI.spec.js +127 -0
- package/dist/specs/api/JBossEapDevFileAPI.spec.js.map +1 -0
- package/dist/specs/api/LombokDevFileAPI.spec.js +81 -0
- package/dist/specs/api/LombokDevFileAPI.spec.js.map +1 -0
- package/dist/specs/api/NodeJSMongoDBDevFileAPI.spec.js +81 -0
- package/dist/specs/api/NodeJSMongoDBDevFileAPI.spec.js.map +1 -0
- package/dist/specs/api/NodeJsExpressDevFileAPI.spec.js +130 -0
- package/dist/specs/api/NodeJsExpressDevFileAPI.spec.js.map +1 -0
- package/dist/specs/api/PhpDevFileAPI.spec.js +71 -0
- package/dist/specs/api/PhpDevFileAPI.spec.js.map +1 -0
- package/dist/specs/api/PodOverridesAPI.spec.js +46 -0
- package/dist/specs/api/PodOverridesAPI.spec.js.map +1 -0
- package/dist/specs/api/PythonDevFileAPI.spec.js +71 -0
- package/dist/specs/api/PythonDevFileAPI.spec.js.map +1 -0
- package/dist/specs/api/QuarkusDevFileAPI.spec.js +97 -0
- package/dist/specs/api/QuarkusDevFileAPI.spec.js.map +1 -0
- package/dist/specs/dashboard-samples/Documentation.spec.js +118 -0
- package/dist/specs/dashboard-samples/Documentation.spec.js.map +1 -0
- package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js +60 -0
- package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js.map +1 -0
- package/dist/specs/dashboard-samples/Quarkus.spec.js +64 -0
- package/dist/specs/dashboard-samples/Quarkus.spec.js.map +1 -0
- package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js +361 -0
- package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js.map +1 -0
- package/dist/specs/dashboard-samples/StartWorkspaceUsingDesktopEditors.spec.js +171 -0
- package/dist/specs/dashboard-samples/StartWorkspaceUsingDesktopEditors.spec.js.map +1 -0
- package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js +155 -0
- package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js.map +1 -0
- package/dist/specs/factory/Factory.spec.js +183 -0
- package/dist/specs/factory/Factory.spec.js.map +1 -0
- package/dist/specs/factory/FactoryWithGitRepoOptions.spec.js +63 -0
- package/dist/specs/factory/FactoryWithGitRepoOptions.spec.js.map +1 -0
- package/dist/specs/factory/NoSetupRepoFactory.spec.js +212 -0
- package/dist/specs/factory/NoSetupRepoFactory.spec.js.map +1 -0
- package/dist/specs/factory/RefusedOAuthFactory.spec.js +239 -0
- package/dist/specs/factory/RefusedOAuthFactory.spec.js.map +1 -0
- package/dist/specs/factory/SshUrlNoOauthPatFactory.spec.js +202 -0
- package/dist/specs/factory/SshUrlNoOauthPatFactory.spec.js.map +1 -0
- package/dist/specs/miscellaneous/CreateWorkspaceWithExistedName.spec.js +77 -0
- package/dist/specs/miscellaneous/CreateWorkspaceWithExistedName.spec.js.map +1 -0
- package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromEmptyWorkspaceSample.spec.js +106 -0
- package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromEmptyWorkspaceSample.spec.js.map +1 -0
- package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromGitUrl.spec.js +113 -0
- package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromGitUrl.spec.js.map +1 -0
- package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromSample.spec.js +116 -0
- package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromSample.spec.js.map +1 -0
- package/dist/specs/miscellaneous/CustomOpenVSXRegistry.spec.js +205 -0
- package/dist/specs/miscellaneous/CustomOpenVSXRegistry.spec.js.map +1 -0
- package/dist/specs/miscellaneous/ExtensionActivationTest.spec.js +129 -0
- package/dist/specs/miscellaneous/ExtensionActivationTest.spec.js.map +1 -0
- package/dist/specs/miscellaneous/KubedockPodmanPersistUserHomeTest.spec.js +121 -0
- package/dist/specs/miscellaneous/KubedockPodmanPersistUserHomeTest.spec.js.map +1 -0
- package/dist/specs/miscellaneous/KubedockPodmanTest.spec.js +103 -0
- package/dist/specs/miscellaneous/KubedockPodmanTest.spec.js.map +1 -0
- package/dist/specs/miscellaneous/OpenCodeProviderSmokeTest.spec.js +138 -0
- package/dist/specs/miscellaneous/OpenCodeProviderSmokeTest.spec.js.map +1 -0
- package/dist/specs/miscellaneous/PredefinedNamespace.spec.js +111 -0
- package/dist/specs/miscellaneous/PredefinedNamespace.spec.js.map +1 -0
- package/dist/specs/miscellaneous/RenameWorkspace.spec.js +116 -0
- package/dist/specs/miscellaneous/RenameWorkspace.spec.js.map +1 -0
- package/dist/specs/miscellaneous/RevokeOauth.spec.js +29 -0
- package/dist/specs/miscellaneous/RevokeOauth.spec.js.map +1 -0
- package/dist/specs/miscellaneous/UserPreferencesTest.spec.js +26 -0
- package/dist/specs/miscellaneous/UserPreferencesTest.spec.js.map +1 -0
- package/dist/specs/miscellaneous/UserSecretsInWorkspace.spec.js +78 -0
- package/dist/specs/miscellaneous/UserSecretsInWorkspace.spec.js.map +1 -0
- package/dist/specs/miscellaneous/VsixInstallationDisableTest.spec.js +196 -0
- package/dist/specs/miscellaneous/VsixInstallationDisableTest.spec.js.map +1 -0
- package/dist/specs/miscellaneous/WorkspaceBackupRestore.spec.js +208 -0
- package/dist/specs/miscellaneous/WorkspaceBackupRestore.spec.js.map +1 -0
- package/dist/specs/miscellaneous/WorkspaceIdleTimeout.spec.js +84 -0
- package/dist/specs/miscellaneous/WorkspaceIdleTimeout.spec.js.map +1 -0
- package/dist/specs/miscellaneous/WorkspaceRunTimeout.spec.js +84 -0
- package/dist/specs/miscellaneous/WorkspaceRunTimeout.spec.js.map +1 -0
- package/dist/specs/miscellaneous/WorkspaceWithParent.spec.js +101 -0
- package/dist/specs/miscellaneous/WorkspaceWithParent.spec.js.map +1 -0
- package/dist/specs/restart-tests/RestartFromLocalDevfile.spec.js +266 -0
- package/dist/specs/restart-tests/RestartFromLocalDevfile.spec.js.map +1 -0
- package/dist/specs/web-terminal/WebTerminalTest.spec.js +47 -0
- package/dist/specs/web-terminal/WebTerminalTest.spec.js.map +1 -0
- package/dist/specs/web-terminal/WebTerminalUnderAdmin.spec.js +82 -0
- package/dist/specs/web-terminal/WebTerminalUnderAdmin.spec.js.map +1 -0
- package/dist/specs/web-terminal/WebTerminalUnderRegularUser.spec.js +78 -0
- package/dist/specs/web-terminal/WebTerminalUnderRegularUser.spec.js.map +1 -0
- package/dist/suites/devfile-acceptance-test-suite/DynamicallyGeneratingAPITest.suite.js +13 -0
- package/dist/suites/devfile-acceptance-test-suite/DynamicallyGeneratingAPITest.suite.js.map +1 -0
- package/dist/suites/disconnected-ocp/APITest.suite.js +14 -0
- package/dist/suites/disconnected-ocp/APITest.suite.js.map +1 -0
- package/dist/suites/disconnected-ocp/DynamicallyGeneratingAPITest.suite.js +13 -0
- package/dist/suites/disconnected-ocp/DynamicallyGeneratingAPITest.suite.js.map +1 -0
- package/dist/suites/disconnected-ocp/UITest.suite.js +19 -0
- package/dist/suites/disconnected-ocp/UITest.suite.js.map +1 -0
- package/dist/suites/online-ocp/APITest.suite.js +15 -0
- package/dist/suites/online-ocp/APITest.suite.js.map +1 -0
- package/dist/suites/online-ocp/DynamicallyGeneratingAPITest.suite.js +13 -0
- package/dist/suites/online-ocp/DynamicallyGeneratingAPITest.suite.js.map +1 -0
- package/dist/suites/online-ocp/UITest.suite.js +23 -0
- package/dist/suites/online-ocp/UITest.suite.js.map +1 -0
- package/dist/tests-library/LoginTests.js +76 -0
- package/dist/tests-library/LoginTests.js.map +1 -0
- package/dist/tests-library/ProjectAndFileTests.js +278 -0
- package/dist/tests-library/ProjectAndFileTests.js.map +1 -0
- package/dist/tests-library/WorkspaceHandlingTests.js +219 -0
- package/dist/tests-library/WorkspaceHandlingTests.js.map +1 -0
- package/dist/utils/BrowserTabsUtil.js +124 -0
- package/dist/utils/BrowserTabsUtil.js.map +1 -0
- package/dist/utils/CheReporter.js +238 -0
- package/dist/utils/CheReporter.js.map +1 -0
- package/dist/utils/DevWorkspaceConfigurationHelper.js +145 -0
- package/dist/utils/DevWorkspaceConfigurationHelper.js.map +1 -0
- package/dist/utils/DevfilesHelper.js +177 -0
- package/dist/utils/DevfilesHelper.js.map +1 -0
- package/dist/utils/DriverHelper.js +609 -0
- package/dist/utils/DriverHelper.js.map +1 -0
- 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 +338 -0
- package/dist/utils/KubernetesCommandLineToolsExecutor.js.map +1 -0
- package/dist/utils/Logger.js +146 -0
- package/dist/utils/Logger.js.map +1 -0
- package/dist/utils/ScreenCatcher.js +114 -0
- package/dist/utils/ScreenCatcher.js.map +1 -0
- package/dist/utils/ShellExecutor.js +47 -0
- package/dist/utils/ShellExecutor.js.map +1 -0
- package/dist/utils/StringUtil.js +107 -0
- package/dist/utils/StringUtil.js.map +1 -0
- package/dist/utils/request-handlers/CheApiRequestHandler.js +128 -0
- package/dist/utils/request-handlers/CheApiRequestHandler.js.map +1 -0
- package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js +55 -0
- package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js.map +1 -0
- package/dist/utils/request-handlers/headers/IAuthorizationHeaderHandler.js +12 -0
- package/dist/utils/request-handlers/headers/IAuthorizationHeaderHandler.js.map +1 -0
- package/dist/utils/workspace/ApiUrlResolver.js +123 -0
- package/dist/utils/workspace/ApiUrlResolver.js.map +1 -0
- package/dist/utils/workspace/ITestWorkspaceUtil.js +12 -0
- package/dist/utils/workspace/ITestWorkspaceUtil.js.map +1 -0
- package/dist/utils/workspace/TestWorkspaceUtil.js +212 -0
- package/dist/utils/workspace/TestWorkspaceUtil.js.map +1 -0
- package/dist/utils/workspace/WorkspaceStatus.js +19 -0
- package/dist/utils/workspace/WorkspaceStatus.js.map +1 -0
- package/index.ts +5 -5
- package/package.json +1 -1
- package/pageobjects/dashboard/CreateWorkspace.ts +50 -0
- package/pageobjects/dashboard/UserPreferences.ts +106 -0
- package/specs/miscellaneous/OpenCodeProviderSmokeTest.spec.ts +175 -0
|
@@ -0,0 +1,175 @@
|
|
|
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 { e2eContainer } from '../../configs/inversify.config';
|
|
11
|
+
import { CLASSES, TYPES } from '../../configs/inversify.types';
|
|
12
|
+
import { WorkspaceHandlingTests } from '../../tests-library/WorkspaceHandlingTests';
|
|
13
|
+
import { ProjectAndFileTests } from '../../tests-library/ProjectAndFileTests';
|
|
14
|
+
import { LoginTests } from '../../tests-library/LoginTests';
|
|
15
|
+
import { registerRunningWorkspace } from '../MochaHooks';
|
|
16
|
+
import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil';
|
|
17
|
+
import { BASE_TEST_CONSTANTS } from '../../constants/BASE_TEST_CONSTANTS';
|
|
18
|
+
|
|
19
|
+
import { UserPreferences } from '../../pageobjects/dashboard/UserPreferences';
|
|
20
|
+
import { CreateWorkspace } from '../../pageobjects/dashboard/CreateWorkspace';
|
|
21
|
+
import { Dashboard } from '../../pageobjects/dashboard/Dashboard';
|
|
22
|
+
import { ITestWorkspaceUtil } from '../../utils/workspace/ITestWorkspaceUtil';
|
|
23
|
+
import { KubernetesCommandLineToolsExecutor, ContainerTerminal } from '../../utils/KubernetesCommandLineToolsExecutor';
|
|
24
|
+
import { ShellString } from 'shelljs';
|
|
25
|
+
import { expect } from 'chai';
|
|
26
|
+
import { Logger } from '../../utils/Logger';
|
|
27
|
+
|
|
28
|
+
const stackName: string = 'Empty Workspace';
|
|
29
|
+
|
|
30
|
+
suite(`OpenCode Provider Smoke Test ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function (): void {
|
|
31
|
+
const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests);
|
|
32
|
+
const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests);
|
|
33
|
+
const loginTests: LoginTests = e2eContainer.get(CLASSES.LoginTests);
|
|
34
|
+
const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil);
|
|
35
|
+
const userPreferences: UserPreferences = e2eContainer.get(CLASSES.UserPreferences);
|
|
36
|
+
const createWorkspace: CreateWorkspace = e2eContainer.get(CLASSES.CreateWorkspace);
|
|
37
|
+
const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard);
|
|
38
|
+
const testWorkspaceUtil: ITestWorkspaceUtil = e2eContainer.get(TYPES.WorkspaceUtil);
|
|
39
|
+
const kubernetesCommandLineToolsExecutor: KubernetesCommandLineToolsExecutor = e2eContainer.get(
|
|
40
|
+
CLASSES.KubernetesCommandLineToolsExecutor
|
|
41
|
+
);
|
|
42
|
+
const containerTerminal: ContainerTerminal = e2eContainer.get(CLASSES.ContainerTerminal);
|
|
43
|
+
|
|
44
|
+
const providerName: string = 'OpenCode';
|
|
45
|
+
const providerId: string = 'opencodeai/opencode';
|
|
46
|
+
const apiKey: string = BASE_TEST_CONSTANTS.TS_AI_PROVIDER_API_KEY;
|
|
47
|
+
const envVarName: string = 'OPENAI_API_KEY';
|
|
48
|
+
const openAiModel: string = 'gpt-4o-mini';
|
|
49
|
+
|
|
50
|
+
async function deleteAiProviderKeys(): Promise<void> {
|
|
51
|
+
Logger.debug('Deleting AI Provider keys if they are present');
|
|
52
|
+
await userPreferences.openUserPreferencesPage();
|
|
53
|
+
await userPreferences.openAiProviderKeysTab();
|
|
54
|
+
await userPreferences.deleteAiProviderKeys(providerName);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
suiteSetup('Login', async function (): Promise<void> {
|
|
58
|
+
await loginTests.loginIntoChe();
|
|
59
|
+
await deleteAiProviderKeys();
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
suite('Add AI Provider API key', function (): void {
|
|
63
|
+
test('Navigate to AI Provider Keys tab', async function (): Promise<void> {
|
|
64
|
+
await userPreferences.openUserPreferencesPage();
|
|
65
|
+
await userPreferences.waitAiProviderKeysTab();
|
|
66
|
+
await userPreferences.openAiProviderKeysTab();
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
test(`Add ${providerName} API key`, async function (): Promise<void> {
|
|
70
|
+
await userPreferences.addAiProviderKey(providerName, apiKey);
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
test(`Verify ${providerName} key is present in the list`, async function (): Promise<void> {
|
|
74
|
+
await userPreferences.waitAiProviderKeyPresent(providerId);
|
|
75
|
+
|
|
76
|
+
const actualEnvVarName: string = await userPreferences.getAiProviderEnvVarName(providerId);
|
|
77
|
+
expect(actualEnvVarName).to.equal(envVarName);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
suite('Verify AI Provider on Create Workspace page', function (): void {
|
|
82
|
+
test('Navigate to Create Workspace page', async function (): Promise<void> {
|
|
83
|
+
await dashboard.clickCreateWorkspaceButton();
|
|
84
|
+
await createWorkspace.waitPage();
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
test('Verify AI Provider section is visible', async function (): Promise<void> {
|
|
88
|
+
await createWorkspace.waitAiProviderSectionVisible();
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
test('Expand "Choose an AI Provider" section', async function (): Promise<void> {
|
|
92
|
+
await createWorkspace.expandChooseAiProviderSection();
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
test(`Verify ${providerName} provider card is visible`, async function (): Promise<void> {
|
|
96
|
+
await createWorkspace.waitAiProviderCardVisible(providerId);
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
test('Verify "Key configured" badge is displayed', async function (): Promise<void> {
|
|
100
|
+
const isBadgeVisible: boolean = await createWorkspace.isAiProviderKeyConfiguredBadgeVisible();
|
|
101
|
+
expect(isBadgeVisible, '"Key configured" badge should be visible').to.be.true;
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
suite('Create workspace and verify AI tool', function (): void {
|
|
106
|
+
test(`Create and open ${stackName}`, async function (): Promise<void> {
|
|
107
|
+
await workspaceHandlingTests.createAndOpenWorkspace(stackName);
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
test('Obtain workspace name from workspace loader page', async function (): Promise<void> {
|
|
111
|
+
await workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
test('Register running workspace', function (): void {
|
|
115
|
+
registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName());
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
test('Wait workspace readiness', async function (): Promise<void> {
|
|
119
|
+
await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
test('Connect to workspace container', function (): void {
|
|
123
|
+
kubernetesCommandLineToolsExecutor.workspaceName = WorkspaceHandlingTests.getWorkspaceName();
|
|
124
|
+
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
125
|
+
kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
test('Verify opencode binary is available in workspace', function (): void {
|
|
129
|
+
const output: ShellString = containerTerminal.execInContainerCommand('which opencode || ls /injected-tools/opencode');
|
|
130
|
+
expect(output.code, 'opencode binary should be present in the workspace').to.equal(0);
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
test(`Verify ${envVarName} environment variable is set`, function (): void {
|
|
134
|
+
const output: ShellString = containerTerminal.execInContainerCommand(`printenv ${envVarName}`);
|
|
135
|
+
expect(output.stdout.trim(), `${envVarName} environment variable should be set`).to.not.be.empty;
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
test('Verify opencode starts and reports version', function (): void {
|
|
139
|
+
const output: ShellString = containerTerminal.execInContainerCommandWithTimeout('opencode --version 2>&1', undefined, '15');
|
|
140
|
+
expect(output.code, 'opencode --version should exit with code 0').to.equal(0);
|
|
141
|
+
expect(output.stdout, 'opencode should return version info').to.not.be.empty;
|
|
142
|
+
expect(output.stdout.toLowerCase(), 'opencode --version should not contain errors').to.not.contain('error');
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
test('Verify API key reaches OpenAI and returns insufficient_quota', function (): void {
|
|
146
|
+
// call OpenAI API directly via curl to verify the injected API key works end-to-end.
|
|
147
|
+
// the key is valid but has no credits, so OpenAI returns "insufficient_quota" error.
|
|
148
|
+
// we use curl instead of "opencode run" because opencode's plugin initialization
|
|
149
|
+
// hangs in workspace containers that cannot reach the npm registry.
|
|
150
|
+
const curlCommand: string =
|
|
151
|
+
'curl -s -m 15 https://api.openai.com/v1/chat/completions ' +
|
|
152
|
+
'-H "Authorization: Bearer $OPENAI_API_KEY" ' +
|
|
153
|
+
'-H "Content-Type: application/json" ' +
|
|
154
|
+
`-d "{\\"model\\":\\"${openAiModel}\\",\\"messages\\":[{\\"role\\":\\"user\\",\\"content\\":\\"Say hello\\"}]}"`;
|
|
155
|
+
|
|
156
|
+
const output: ShellString = containerTerminal.execInContainerCommand(curlCommand);
|
|
157
|
+
const response: string = output.stdout + output.stderr;
|
|
158
|
+
Logger.info(`OpenAI API response: ${response}`);
|
|
159
|
+
expect(response, 'OpenAI API should return insufficient_quota for a key with no credits').to.contain('insufficient_quota');
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
suiteTeardown('Open dashboard and close all other tabs', async function (): Promise<void> {
|
|
164
|
+
await dashboard.openDashboard();
|
|
165
|
+
await browserTabsUtil.closeAllTabsExceptCurrent();
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
suiteTeardown('Stop and delete the workspace by API', async function (): Promise<void> {
|
|
169
|
+
await testWorkspaceUtil.stopAndDeleteWorkspaceByName(WorkspaceHandlingTests.getWorkspaceName());
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
suiteTeardown('Unregister running workspace', function (): void {
|
|
173
|
+
registerRunningWorkspace('');
|
|
174
|
+
});
|
|
175
|
+
});
|