@eclipse-che/che-e2e 7.123.0-next → 7.123.0-next-6b3e5e1
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/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 +109 -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 +181 -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 +268 -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 +345 -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/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 +230 -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 +117 -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 +202 -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
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** *******************************************************************
|
|
3
|
+
* copyright (c) 2025 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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const BASE_TEST_CONSTANTS_1 = require("../../constants/BASE_TEST_CONSTANTS");
|
|
16
|
+
const inversify_config_1 = require("../../configs/inversify.config");
|
|
17
|
+
const inversify_types_1 = require("../../configs/inversify.types");
|
|
18
|
+
const DevWorkspaceConfigurationHelper_1 = require("../../utils/DevWorkspaceConfigurationHelper");
|
|
19
|
+
const chai_1 = require("chai");
|
|
20
|
+
const API_TEST_CONSTANTS_1 = require("../../constants/API_TEST_CONSTANTS");
|
|
21
|
+
const yaml_1 = __importDefault(require("yaml"));
|
|
22
|
+
const Logger_1 = require("../../utils/Logger");
|
|
23
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
24
|
+
suite('Ansible devfile API test', function () {
|
|
25
|
+
const devfilesRegistryHelper = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.DevfilesRegistryHelper);
|
|
26
|
+
const kubernetesCommandLineToolsExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.KubernetesCommandLineToolsExecutor);
|
|
27
|
+
const devfileID = 'ansible';
|
|
28
|
+
const serviceNameToPortForward = BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TESTING_APPLICATION_NAME() + '-dashboard';
|
|
29
|
+
// namespace where the application is deployed to port-forward the service
|
|
30
|
+
const applicationNamespace = 'openshift-' + BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TESTING_APPLICATION_NAME();
|
|
31
|
+
const containerTerminal = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ContainerTerminal);
|
|
32
|
+
let devWorkspaceConfigurationHelper;
|
|
33
|
+
let devfileContext;
|
|
34
|
+
let devfileContent = '';
|
|
35
|
+
let devfileName = '';
|
|
36
|
+
suiteSetup(`Prepare login ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
|
|
37
|
+
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
38
|
+
});
|
|
39
|
+
test(`Create ${devfileID} workspace`, async function () {
|
|
40
|
+
const randomPref = crypto_1.default.randomBytes(4).toString('hex');
|
|
41
|
+
kubernetesCommandLineToolsExecutor.namespace = API_TEST_CONSTANTS_1.API_TEST_CONSTANTS.TS_API_TEST_NAMESPACE;
|
|
42
|
+
devfileContent = devfilesRegistryHelper.getDevfileContent(devfileID);
|
|
43
|
+
const editorDevfileContent = devfilesRegistryHelper.obtainCheDevFileEditorFromCheConfigMap('editors-definitions');
|
|
44
|
+
devfileName = yaml_1.default.parse(devfileContent).metadata.name;
|
|
45
|
+
const uniqueName = yaml_1.default.parse(devfileContent).metadata.name + randomPref;
|
|
46
|
+
kubernetesCommandLineToolsExecutor.workspaceName = uniqueName;
|
|
47
|
+
devWorkspaceConfigurationHelper = new DevWorkspaceConfigurationHelper_1.DevWorkspaceConfigurationHelper({
|
|
48
|
+
editorContent: editorDevfileContent,
|
|
49
|
+
devfileContent: devfileContent
|
|
50
|
+
});
|
|
51
|
+
devfileContext = await devWorkspaceConfigurationHelper.generateDevfileContext();
|
|
52
|
+
if (devfileContext.devWorkspace.metadata) {
|
|
53
|
+
devfileContext.devWorkspace.metadata.name = uniqueName;
|
|
54
|
+
}
|
|
55
|
+
const devWorkspaceConfigurationYamlString = devWorkspaceConfigurationHelper.getDevWorkspaceConfigurationYamlAsString(devfileContext);
|
|
56
|
+
const output = kubernetesCommandLineToolsExecutor.applyAndWaitDevWorkspace(devWorkspaceConfigurationYamlString);
|
|
57
|
+
(0, chai_1.expect)(output.stdout).contains('condition met');
|
|
58
|
+
Logger_1.Logger.info('Inject kubeconfig to workspace');
|
|
59
|
+
kubernetesCommandLineToolsExecutor.startTcpPortForward(serviceNameToPortForward, applicationNamespace);
|
|
60
|
+
const devworkspaceId = kubernetesCommandLineToolsExecutor.getDevWorkspaceId();
|
|
61
|
+
kubernetesCommandLineToolsExecutor.injectKubeConfig(devworkspaceId);
|
|
62
|
+
});
|
|
63
|
+
test('Check "molecule-create" command', function () {
|
|
64
|
+
const containerName = yaml_1.default.parse(devfileContent).commands[0].exec.component;
|
|
65
|
+
const workdir = yaml_1.default.parse(devfileContent).commands[0].exec.workingDir;
|
|
66
|
+
const commandLine = yaml_1.default.parse(devfileContent).commands[0].exec.commandLine;
|
|
67
|
+
Logger_1.Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
|
|
68
|
+
Logger_1.Logger.info(`commandLine from exec section of DevWorkspace file: ${commandLine}`);
|
|
69
|
+
const safeCommandLine = commandLine.replace('/source\s+\$HOME\/\.bashrc/', '[ -f "$HOME/.bashrc" ] && . "$HOME/.bashrc" || true');
|
|
70
|
+
let runCommandInBash;
|
|
71
|
+
if (workdir) {
|
|
72
|
+
runCommandInBash = `cd ${workdir} && ${safeCommandLine}`;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
runCommandInBash = `${safeCommandLine}`;
|
|
76
|
+
}
|
|
77
|
+
const output = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
|
|
78
|
+
(0, chai_1.expect)(output.code).eqls(0);
|
|
79
|
+
// molecule may write its rich formatted output (box-drawing, ANSI codes) to stderr rather than stdout (CRW-12595)
|
|
80
|
+
const combinedOutput = (output.stdout + output.stderr).trim();
|
|
81
|
+
const recapBlocks = combinedOutput.split(/PLAY RECAP/g).slice(1);
|
|
82
|
+
recapBlocks.forEach((block) => {
|
|
83
|
+
(0, chai_1.expect)(block).match(/failed\s*=\s*0/);
|
|
84
|
+
});
|
|
85
|
+
(0, chai_1.expect)(combinedOutput).to.include('was installed successfully');
|
|
86
|
+
(0, chai_1.expect)(combinedOutput).to.not.match(/failed\s*=\s*[1-9]\d*/);
|
|
87
|
+
});
|
|
88
|
+
test('Check "molecule-list" command', function () {
|
|
89
|
+
const containerName = yaml_1.default.parse(devfileContent).commands[1].exec.component;
|
|
90
|
+
const workdir = yaml_1.default.parse(devfileContent).commands[1].exec.workingDir;
|
|
91
|
+
const commandLine = yaml_1.default.parse(devfileContent).commands[1].exec.commandLine;
|
|
92
|
+
Logger_1.Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
|
|
93
|
+
Logger_1.Logger.info(`commandLine from exec section of DevWorkspace file: ${commandLine}`);
|
|
94
|
+
const safeCommandLine = commandLine.replace('/source\s+\$HOME\/\.bashrc/', '[ -f "$HOME/.bashrc" ] && . "$HOME/.bashrc" || true');
|
|
95
|
+
let runCommandInBash;
|
|
96
|
+
if (workdir) {
|
|
97
|
+
runCommandInBash = `cd ${workdir} && ${safeCommandLine}`;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
runCommandInBash = `${safeCommandLine}`;
|
|
101
|
+
}
|
|
102
|
+
const output = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
|
|
103
|
+
(0, chai_1.expect)(output.code).eqls(0);
|
|
104
|
+
// molecule may write its rich formatted output (box-drawing, ANSI codes) to stderr rather than stdout
|
|
105
|
+
const outputText = (output.stdout + output.stderr).trim();
|
|
106
|
+
(0, chai_1.expect)(outputText).to.include('molecule');
|
|
107
|
+
(0, chai_1.expect)(outputText).to.include('ansible');
|
|
108
|
+
(0, chai_1.expect)(outputText).to.include('default');
|
|
109
|
+
(0, chai_1.expect)(outputText).to.include('true');
|
|
110
|
+
});
|
|
111
|
+
test('Check "molecule-converge" command', function () {
|
|
112
|
+
const containerName = yaml_1.default.parse(devfileContent).commands[2].exec.component;
|
|
113
|
+
const workdir = yaml_1.default.parse(devfileContent).commands[2].exec.workingDir;
|
|
114
|
+
const commandLine = yaml_1.default.parse(devfileContent).commands[2].exec.commandLine;
|
|
115
|
+
Logger_1.Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
|
|
116
|
+
Logger_1.Logger.info(`commandLine from exec section of DevWorkspace file: ${commandLine}`);
|
|
117
|
+
const safeCommandLine = commandLine.replace('/source\s+\$HOME\/\.bashrc/', '[ -f "$HOME/.bashrc" ] && . "$HOME/.bashrc" || true');
|
|
118
|
+
let runCommandInBash;
|
|
119
|
+
if (workdir) {
|
|
120
|
+
runCommandInBash = `cd ${workdir} && ${safeCommandLine}`;
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
runCommandInBash = `${safeCommandLine}`;
|
|
124
|
+
}
|
|
125
|
+
const output = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
|
|
126
|
+
(0, chai_1.expect)(output.code).eqls(0);
|
|
127
|
+
// molecule may write its rich formatted output (box-drawing, ANSI codes) to stderr rather than stdout
|
|
128
|
+
const combinedOutput = (output.stdout + output.stderr).trim();
|
|
129
|
+
const recapBlocks = combinedOutput.split(/PLAY RECAP/g).slice(1);
|
|
130
|
+
recapBlocks.forEach((block) => {
|
|
131
|
+
(0, chai_1.expect)(block).match(/failed\s*=\s*0/);
|
|
132
|
+
});
|
|
133
|
+
(0, chai_1.expect)(combinedOutput).to.include('PLAY [Converge]');
|
|
134
|
+
(0, chai_1.expect)(combinedOutput).to.not.match(/failed\s*=\s*[1-9]\d*/);
|
|
135
|
+
});
|
|
136
|
+
test('Check "molecule-verify" command', function () {
|
|
137
|
+
const containerName = yaml_1.default.parse(devfileContent).commands[3].exec.component;
|
|
138
|
+
const workdir = yaml_1.default.parse(devfileContent).commands[3].exec.workingDir;
|
|
139
|
+
const commandLine = yaml_1.default.parse(devfileContent).commands[3].exec.commandLine;
|
|
140
|
+
Logger_1.Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
|
|
141
|
+
Logger_1.Logger.info(`commandLine from exec section of DevWorkspace file: ${commandLine}`);
|
|
142
|
+
const safeCommandLine = commandLine.replace('/source\s+\$HOME\/\.bashrc/', '[ -f "$HOME/.bashrc" ] && . "$HOME/.bashrc" || true');
|
|
143
|
+
let runCommandInBash;
|
|
144
|
+
if (workdir) {
|
|
145
|
+
runCommandInBash = `cd ${workdir} && ${safeCommandLine}`;
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
runCommandInBash = `${safeCommandLine}`;
|
|
149
|
+
}
|
|
150
|
+
const output = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
|
|
151
|
+
(0, chai_1.expect)(output.code).eqls(0);
|
|
152
|
+
// molecule may write its rich formatted output (box-drawing, ANSI codes) to stderr rather than stdout
|
|
153
|
+
const combinedOutput = (output.stdout + output.stderr).trim();
|
|
154
|
+
const recapBlocks = combinedOutput.split(/PLAY RECAP/g).slice(1);
|
|
155
|
+
recapBlocks.forEach((block) => {
|
|
156
|
+
(0, chai_1.expect)(block).match(/failed\s*=\s*0/);
|
|
157
|
+
});
|
|
158
|
+
(0, chai_1.expect)(combinedOutput).to.include('PLAY [Verify]');
|
|
159
|
+
(0, chai_1.expect)(combinedOutput).to.not.match(/failed\s*=\s*[1-9]\d*/);
|
|
160
|
+
});
|
|
161
|
+
test('Check "molecule-destroy" command', function () {
|
|
162
|
+
const containerName = yaml_1.default.parse(devfileContent).commands[4].exec.component;
|
|
163
|
+
const workdir = yaml_1.default.parse(devfileContent).commands[4].exec.workingDir;
|
|
164
|
+
const commandLine = yaml_1.default.parse(devfileContent).commands[4].exec.commandLine;
|
|
165
|
+
Logger_1.Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
|
|
166
|
+
Logger_1.Logger.info(`commandLine from exec section of DevWorkspace file: ${commandLine}`);
|
|
167
|
+
const safeCommandLine = commandLine.replace('/source\s+\$HOME\/\.bashrc/', '[ -f "$HOME/.bashrc" ] && . "$HOME/.bashrc" || true');
|
|
168
|
+
let runCommandInBash;
|
|
169
|
+
if (workdir) {
|
|
170
|
+
runCommandInBash = `cd ${workdir} && ${safeCommandLine}`;
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
runCommandInBash = `${safeCommandLine}`;
|
|
174
|
+
}
|
|
175
|
+
const output = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
|
|
176
|
+
(0, chai_1.expect)(output.code).eqls(0);
|
|
177
|
+
// molecule may write its rich formatted output (box-drawing, ANSI codes) to stderr rather than stdout
|
|
178
|
+
const combinedOutput = (output.stdout + output.stderr).trim();
|
|
179
|
+
const recapBlocks = combinedOutput.split(/PLAY RECAP/g).slice(1);
|
|
180
|
+
recapBlocks.forEach((block) => {
|
|
181
|
+
(0, chai_1.expect)(block).match(/failed\s*=\s*0/);
|
|
182
|
+
});
|
|
183
|
+
(0, chai_1.expect)(combinedOutput).to.include('PLAY [Destroy]');
|
|
184
|
+
(0, chai_1.expect)(combinedOutput).to.not.match(/failed\s*=\s*[1-9]\d*/);
|
|
185
|
+
});
|
|
186
|
+
test('Check "molecule-test" command', function () {
|
|
187
|
+
const containerName = yaml_1.default.parse(devfileContent).commands[5].exec.component;
|
|
188
|
+
const workdir = yaml_1.default.parse(devfileContent).commands[5].exec.workingDir;
|
|
189
|
+
const commandLine = yaml_1.default.parse(devfileContent).commands[5].exec.commandLine;
|
|
190
|
+
Logger_1.Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
|
|
191
|
+
Logger_1.Logger.info(`commandLine from exec section of DevWorkspace file: ${commandLine}`);
|
|
192
|
+
const safeCommandLine = commandLine.replace('/source\s+\$HOME\/\.bashrc/', '[ -f "$HOME/.bashrc" ] && . "$HOME/.bashrc" || true');
|
|
193
|
+
let runCommandInBash;
|
|
194
|
+
if (workdir) {
|
|
195
|
+
runCommandInBash = `cd ${workdir} && ${safeCommandLine}`;
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
runCommandInBash = `${safeCommandLine}`;
|
|
199
|
+
}
|
|
200
|
+
const output = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
|
|
201
|
+
(0, chai_1.expect)(output.code).eqls(0);
|
|
202
|
+
// molecule may write its rich formatted output (box-drawing, ANSI codes) to stderr rather than stdout
|
|
203
|
+
const combinedOutput = (output.stdout + output.stderr).trim();
|
|
204
|
+
const recapBlocks = combinedOutput.split(/PLAY RECAP/g).slice(1);
|
|
205
|
+
recapBlocks.forEach((block) => {
|
|
206
|
+
(0, chai_1.expect)(block).match(/failed\s*=\s*0/);
|
|
207
|
+
});
|
|
208
|
+
(0, chai_1.expect)(combinedOutput).to.include('PLAY [Create]');
|
|
209
|
+
(0, chai_1.expect)(combinedOutput).to.include('PLAY [Converge]');
|
|
210
|
+
(0, chai_1.expect)(combinedOutput).to.include('PLAY [Verify]');
|
|
211
|
+
(0, chai_1.expect)(combinedOutput).to.not.match(/failed\s*=\s*[1-9]\d*/);
|
|
212
|
+
});
|
|
213
|
+
test('Check "ansible-navigator" command', function () {
|
|
214
|
+
const containerName = yaml_1.default.parse(devfileContent).commands[6].exec.component;
|
|
215
|
+
const workdir = yaml_1.default.parse(devfileContent).commands[6].exec.workingDir;
|
|
216
|
+
const rawCommandLines = yaml_1.default.parse(devfileContent).commands[6].exec.commandLine;
|
|
217
|
+
Logger_1.Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
|
|
218
|
+
Logger_1.Logger.info(`commandLine from exec section of DevWorkspace file: \n${rawCommandLines}`);
|
|
219
|
+
const modifiedLines = rawCommandLines
|
|
220
|
+
.trim()
|
|
221
|
+
.split('\n')
|
|
222
|
+
.map((line) => {
|
|
223
|
+
const trimmed = line.trim();
|
|
224
|
+
if (trimmed.startsWith('if [ ! -d') || trimmed === 'fi') {
|
|
225
|
+
return ''; // remove conditional checks
|
|
226
|
+
}
|
|
227
|
+
if (trimmed.startsWith('ansible-navigator')) {
|
|
228
|
+
// '--help' with '--mode stdout' disables interactive mode and ensures stable, testable output from ansible-navigator
|
|
229
|
+
const safeCommandLine = trimmed + ' --help --mode stdout';
|
|
230
|
+
return safeCommandLine;
|
|
231
|
+
}
|
|
232
|
+
return trimmed;
|
|
233
|
+
})
|
|
234
|
+
.filter(Boolean);
|
|
235
|
+
const modifiedScript = modifiedLines.join(' && ');
|
|
236
|
+
const patchedCommandLine = `bash -c \"${modifiedScript}\"`;
|
|
237
|
+
let runCommandInBash;
|
|
238
|
+
if (workdir) {
|
|
239
|
+
runCommandInBash = `cd ${workdir} && ${patchedCommandLine}`;
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
runCommandInBash = `${patchedCommandLine}`;
|
|
243
|
+
}
|
|
244
|
+
const output = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
|
|
245
|
+
(0, chai_1.expect)(output.code).eqls(0);
|
|
246
|
+
// ansible-navigator may write output to stderr depending on terminal detection
|
|
247
|
+
const outputText = (output.stdout + output.stderr).trim();
|
|
248
|
+
(0, chai_1.expect)(outputText).to.include('ansible-navigator');
|
|
249
|
+
(0, chai_1.expect)(outputText).to.include('collections');
|
|
250
|
+
(0, chai_1.expect)(outputText).to.include('config');
|
|
251
|
+
(0, chai_1.expect)(outputText).to.include('settings');
|
|
252
|
+
(0, chai_1.expect)(outputText).to.include('welcome');
|
|
253
|
+
});
|
|
254
|
+
test('Check removing molecule pod afer deleting workspace', function () {
|
|
255
|
+
kubernetesCommandLineToolsExecutor.deleteDevWorkspace(devfileName);
|
|
256
|
+
kubernetesCommandLineToolsExecutor.waitRemovingPod('molecule');
|
|
257
|
+
});
|
|
258
|
+
suiteTeardown('Delete DevWorkspace', function () {
|
|
259
|
+
kubernetesCommandLineToolsExecutor.stopTcpPortForward();
|
|
260
|
+
kubernetesCommandLineToolsExecutor.deleteDevWorkspace(devfileName);
|
|
261
|
+
});
|
|
262
|
+
});
|
|
263
|
+
//# sourceMappingURL=AnsibleDevFileAPI.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnsibleDevFileAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/AnsibleDevFileAPI.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/** *******************************************************************
|
|
4
|
+
* copyright (c) 2025 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
|
+
**********************************************************************/
|
|
12
|
+
const chai_1 = require("chai");
|
|
13
|
+
const inversify_config_1 = require("../../configs/inversify.config");
|
|
14
|
+
const inversify_types_1 = require("../../configs/inversify.types");
|
|
15
|
+
const BASE_TEST_CONSTANTS_1 = require("../../constants/BASE_TEST_CONSTANTS");
|
|
16
|
+
const WorkspaceHandlingTests_1 = require("../../tests-library/WorkspaceHandlingTests");
|
|
17
|
+
const MochaHooks_1 = require("../MochaHooks");
|
|
18
|
+
const FACTORY_TEST_CONSTANTS_1 = require("../../constants/FACTORY_TEST_CONSTANTS");
|
|
19
|
+
suite(`Test podman build container functionality ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
|
|
20
|
+
const projectAndFileTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ProjectAndFileTests);
|
|
21
|
+
const workspaceHandlingTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.WorkspaceHandlingTests);
|
|
22
|
+
const loginTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.LoginTests);
|
|
23
|
+
const browserTabsUtil = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.BrowserTabsUtil);
|
|
24
|
+
const testWorkspaceUtil = inversify_config_1.e2eContainer.get(inversify_types_1.TYPES.WorkspaceUtil);
|
|
25
|
+
const dashboard = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.Dashboard);
|
|
26
|
+
const shellExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ShellExecutor);
|
|
27
|
+
let kubernetesCommandLineToolsExecutor;
|
|
28
|
+
let workspaceName = '';
|
|
29
|
+
let originalBuildCapabilitiesSetting = '';
|
|
30
|
+
let devSpacesNamespace = '';
|
|
31
|
+
let cheClusterName = '';
|
|
32
|
+
/**
|
|
33
|
+
* test requires the following files to be present in the workspace root:
|
|
34
|
+
* - A Dockerfile named Dockerfile.${ARCH} with content:
|
|
35
|
+
* FROM scratch
|
|
36
|
+
* COPY hello /hello
|
|
37
|
+
* CMD ["/hello"]
|
|
38
|
+
* - A compiled 'hello' binary, that prints "Hello from Kubedock!" to output.
|
|
39
|
+
*
|
|
40
|
+
* Used to build and run a container in a pod for verifying Podman functionality.
|
|
41
|
+
*/
|
|
42
|
+
const buildPushScript = `
|
|
43
|
+
export ARCH=$(uname -m)
|
|
44
|
+
export DATE=$(date +"%m%d%y")
|
|
45
|
+
export USER=$(oc whoami)
|
|
46
|
+
export TKN=$(oc whoami -t)
|
|
47
|
+
export REG="image-registry.openshift-image-registry.svc:5000"
|
|
48
|
+
export PROJECT=$(oc project -q)
|
|
49
|
+
export IMG="\${REG}/\${PROJECT}/hello:\${DATE}"
|
|
50
|
+
cd $PROJECT_SOURCE
|
|
51
|
+
|
|
52
|
+
podman login --tls-verify=false --username "\${USER}" --password "\${TKN}" "\${REG}"
|
|
53
|
+
podman build -t "\${IMG}" -f Dockerfile.\${ARCH} .
|
|
54
|
+
podman push --tls-verify=false "\${IMG}"
|
|
55
|
+
`;
|
|
56
|
+
const runTestScript = `
|
|
57
|
+
export DATE=$(date +"%m%d%y")
|
|
58
|
+
export REG="image-registry.openshift-image-registry.svc:5000"
|
|
59
|
+
export PROJECT=$(oc project -q)
|
|
60
|
+
export IMG="\${REG}/\${PROJECT}/hello:\${DATE}"
|
|
61
|
+
|
|
62
|
+
oc delete pod test-hello-pod --ignore-not-found
|
|
63
|
+
oc run test-hello-pod --restart=Never --image="\${IMG}"
|
|
64
|
+
|
|
65
|
+
if ! oc wait --for=jsonpath='{.status.phase}'=Succeeded pod/test-hello-pod --timeout=60s; then
|
|
66
|
+
PHASE=$(oc get pod test-hello-pod -o jsonpath='{.status.phase}')
|
|
67
|
+
if [[ "$PHASE" == "Failed" ]]; then
|
|
68
|
+
oc describe pod test-hello-pod
|
|
69
|
+
exit 1
|
|
70
|
+
fi
|
|
71
|
+
fi
|
|
72
|
+
|
|
73
|
+
oc logs test-hello-pod
|
|
74
|
+
`;
|
|
75
|
+
const factoryUrl = BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()
|
|
76
|
+
? FACTORY_TEST_CONSTANTS_1.FACTORY_TEST_CONSTANTS.TS_SELENIUM_AIRGAP_FACTORY_GIT_REPO_URL ||
|
|
77
|
+
'https://gh.crw-qe.com/test-automation-only/dockerfile-hello-world'
|
|
78
|
+
: FACTORY_TEST_CONSTANTS_1.FACTORY_TEST_CONSTANTS.TS_SELENIUM_FACTORY_GIT_REPO_URL || 'https://github.com/crw-qe/dockerfile-hello-world';
|
|
79
|
+
suiteSetup('Setup DevSpaces with container build capabilities enabled', function () {
|
|
80
|
+
kubernetesCommandLineToolsExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.KubernetesCommandLineToolsExecutor);
|
|
81
|
+
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
82
|
+
// get the namespace where DevSpaces is installed
|
|
83
|
+
const getDevSpacesNamespaceCommand = 'oc get checluster --all-namespaces -o jsonpath="{.items[0].metadata.namespace}"';
|
|
84
|
+
devSpacesNamespace = shellExecutor.executeCommand(getDevSpacesNamespaceCommand).stdout.trim();
|
|
85
|
+
// get the name of the CheCluster
|
|
86
|
+
const getCheClusterNameCommand = `oc get checluster -n ${devSpacesNamespace} -o jsonpath='{.items[0].metadata.name}'`;
|
|
87
|
+
cheClusterName = shellExecutor.executeCommand(getCheClusterNameCommand).stdout.trim();
|
|
88
|
+
// get the original value of disableContainerBuildCapabilities
|
|
89
|
+
const getOriginalSettingCommand = `oc get checluster/${cheClusterName} -n ${devSpacesNamespace} -o jsonpath='{.spec.devEnvironments.disableContainerBuildCapabilities}'`;
|
|
90
|
+
originalBuildCapabilitiesSetting = shellExecutor.executeCommand(getOriginalSettingCommand).stdout.trim();
|
|
91
|
+
// patch the CheCluster to enable container build capabilities
|
|
92
|
+
const patchCommand = `oc patch checluster/${cheClusterName} -n ${devSpacesNamespace} --type=merge -p '{"spec":{"devEnvironments":{"disableContainerBuildCapabilities":false}}}'`;
|
|
93
|
+
const patchResult = shellExecutor.executeCommand(patchCommand);
|
|
94
|
+
(0, chai_1.expect)(patchResult.code).to.equal(0, 'Failed to patch CheCluster to enable container build capabilities');
|
|
95
|
+
});
|
|
96
|
+
suiteSetup('Login into DevSpaces', async function () {
|
|
97
|
+
await loginTests.loginIntoChe();
|
|
98
|
+
});
|
|
99
|
+
test(`Create and open new workspace from: ${factoryUrl}`, async function () {
|
|
100
|
+
await workspaceHandlingTests.createAndOpenWorkspaceFromGitRepository(factoryUrl);
|
|
101
|
+
await workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
|
|
102
|
+
workspaceName = WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName();
|
|
103
|
+
(0, chai_1.expect)(workspaceName, 'Workspace name was not detected').not.empty;
|
|
104
|
+
(0, MochaHooks_1.registerRunningWorkspace)(workspaceName);
|
|
105
|
+
});
|
|
106
|
+
test('Wait for workspace readiness', async function () {
|
|
107
|
+
await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
|
|
108
|
+
});
|
|
109
|
+
test('Check the project files were imported', async function () {
|
|
110
|
+
const projectSection = await projectAndFileTests.getProjectViewSession();
|
|
111
|
+
(0, chai_1.expect)(await projectAndFileTests.getProjectTreeItem(projectSection, 'Dockerfile.x86_64'), 'Dockerfile not found in the project tree').not.undefined;
|
|
112
|
+
await projectAndFileTests.performTrustDialogs();
|
|
113
|
+
});
|
|
114
|
+
test('Build and push container image from workspace', function () {
|
|
115
|
+
kubernetesCommandLineToolsExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.KubernetesCommandLineToolsExecutor);
|
|
116
|
+
kubernetesCommandLineToolsExecutor.workspaceName = workspaceName;
|
|
117
|
+
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
118
|
+
kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
|
|
119
|
+
kubernetesCommandLineToolsExecutor.execInContainerCommand(buildPushScript);
|
|
120
|
+
});
|
|
121
|
+
test('Verify container image can be used in a pod', function () {
|
|
122
|
+
const runTestScriptOutput = kubernetesCommandLineToolsExecutor.execInContainerCommand(runTestScript);
|
|
123
|
+
(0, chai_1.expect)(runTestScriptOutput.stdout).to.include('Hello from Kubedock!', 'Expected "Hello from Kubedock!" message not found in logs');
|
|
124
|
+
});
|
|
125
|
+
suiteTeardown('Open dashboard and close all other tabs', async function () {
|
|
126
|
+
await dashboard.openDashboard();
|
|
127
|
+
await browserTabsUtil.closeAllTabsExceptCurrent();
|
|
128
|
+
});
|
|
129
|
+
suiteTeardown('Stop and delete the workspace by API', async function () {
|
|
130
|
+
await testWorkspaceUtil.stopAndDeleteWorkspaceByName(workspaceName);
|
|
131
|
+
});
|
|
132
|
+
suiteTeardown('Unregister running workspace', function () {
|
|
133
|
+
(0, MochaHooks_1.registerRunningWorkspace)('');
|
|
134
|
+
});
|
|
135
|
+
suiteTeardown('Restore DevSpaces container build capabilities setting', function () {
|
|
136
|
+
kubernetesCommandLineToolsExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.KubernetesCommandLineToolsExecutor);
|
|
137
|
+
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
138
|
+
// default to false if value wasn't found
|
|
139
|
+
const validSetting = ['true', 'false'].includes(originalBuildCapabilitiesSetting)
|
|
140
|
+
? originalBuildCapabilitiesSetting
|
|
141
|
+
: 'false';
|
|
142
|
+
const restorePatchCommand = `oc patch checluster/${cheClusterName} -n ${devSpacesNamespace} --type=merge -p '{"spec":{"devEnvironments":{"disableContainerBuildCapabilities":${validSetting}}}}'`;
|
|
143
|
+
const restorePatchResult = shellExecutor.executeCommand(restorePatchCommand);
|
|
144
|
+
(0, chai_1.expect)(restorePatchResult.code).to.equal(0, 'Failed to restore CheCluster container build capabilities setting');
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
//# sourceMappingURL=BuildPushRunPodmanContainerAPI.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildPushRunPodmanContainerAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/BuildPushRunPodmanContainerAPI.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const fs_1 = __importDefault(require("fs"));
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const yaml_1 = __importDefault(require("yaml"));
|
|
9
|
+
const chai_1 = require("chai");
|
|
10
|
+
const inversify_config_1 = require("../../configs/inversify.config");
|
|
11
|
+
const inversify_types_1 = require("../../configs/inversify.types");
|
|
12
|
+
const BASE_TEST_CONSTANTS_1 = require("../../constants/BASE_TEST_CONSTANTS");
|
|
13
|
+
suite(`Test defining container overrides via attribute ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
|
|
14
|
+
const pathToSampleFile = path_1.default.resolve('resources/container-overrides.yaml');
|
|
15
|
+
const workspaceName = yaml_1.default.parse(fs_1.default.readFileSync(pathToSampleFile, 'utf8')).metadata.name;
|
|
16
|
+
const kubernetesCommandLineToolsExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.KubernetesCommandLineToolsExecutor);
|
|
17
|
+
kubernetesCommandLineToolsExecutor.workspaceName = workspaceName;
|
|
18
|
+
const shellExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ShellExecutor);
|
|
19
|
+
suiteSetup('Login into OC client', function () {
|
|
20
|
+
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
21
|
+
});
|
|
22
|
+
suiteTeardown('Delete DevWorkspace', function () {
|
|
23
|
+
kubernetesCommandLineToolsExecutor.deleteDevWorkspace();
|
|
24
|
+
});
|
|
25
|
+
test('Apply container-overrides sample as DevWorkspace with OC client', function () {
|
|
26
|
+
kubernetesCommandLineToolsExecutor.applyYamlConfigurationAsFile(pathToSampleFile);
|
|
27
|
+
shellExecutor.wait(5);
|
|
28
|
+
});
|
|
29
|
+
test('Check that fields are overridden in the Deployment for DevWorkspace', function () {
|
|
30
|
+
const devWorkspaceFullYamlOutput = yaml_1.default.parse(kubernetesCommandLineToolsExecutor.getDevWorkspaceYamlConfiguration());
|
|
31
|
+
(0, chai_1.expect)(devWorkspaceFullYamlOutput.spec.template.components[0].attributes['container-overrides']).eqls({
|
|
32
|
+
resources: {
|
|
33
|
+
limits: {
|
|
34
|
+
'nvidia.com/gpu': '1'
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=ContainerOverridesAPI.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContainerOverridesAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/ContainerOverridesAPI.spec.ts"],"names":[],"mappings":";;;;;AAUA,4CAAoB;AACpB,gDAAwB;AACxB,gDAAwB;AACxB,+BAA8B;AAE9B,qEAA8D;AAC9D,mEAAwD;AACxD,6EAA0E;AAE1E,KAAK,CAAC,mDAAmD,yCAAmB,CAAC,gBAAgB,EAAE,EAAE;IAChG,MAAM,gBAAgB,GAAW,cAAI,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;IACpF,MAAM,aAAa,GAAW,cAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IAClG,MAAM,kCAAkC,GAAuC,+BAAY,CAAC,GAAG,CAC9F,yBAAO,CAAC,kCAAkC,CAC1C,CAAC;IACF,kCAAkC,CAAC,aAAa,GAAG,aAAa,CAAC;IACjE,MAAM,aAAa,GAAkB,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,aAAa,CAAC,CAAC;IAE7E,UAAU,CAAC,sBAAsB,EAAE;QAClC,kCAAkC,CAAC,UAAU,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,qBAAqB,EAAE;QACpC,kCAAkC,CAAC,kBAAkB,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iEAAiE,EAAE;QACvE,kCAAkC,CAAC,4BAA4B,CAAC,gBAAgB,CAAC,CAAC;QAClF,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qEAAqE,EAAE;QAC3E,MAAM,0BAA0B,GAAQ,cAAI,CAAC,KAAK,CAAC,kCAAkC,CAAC,gCAAgC,EAAE,CAAC,CAAC;QAC1H,IAAA,aAAM,EAAC,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC;YACrG,SAAS,EAAE;gBACV,MAAM,EAAE;oBACP,gBAAgB,EAAE,GAAG;iBACrB;aACD;SACD,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** *******************************************************************
|
|
3
|
+
* copyright (c) 2024 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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const BASE_TEST_CONSTANTS_1 = require("../../constants/BASE_TEST_CONSTANTS");
|
|
16
|
+
const inversify_config_1 = require("../../configs/inversify.config");
|
|
17
|
+
const inversify_types_1 = require("../../configs/inversify.types");
|
|
18
|
+
const DevWorkspaceConfigurationHelper_1 = require("../../utils/DevWorkspaceConfigurationHelper");
|
|
19
|
+
const chai_1 = require("chai");
|
|
20
|
+
const API_TEST_CONSTANTS_1 = require("../../constants/API_TEST_CONSTANTS");
|
|
21
|
+
const yaml_1 = __importDefault(require("yaml"));
|
|
22
|
+
const Logger_1 = require("../../utils/Logger");
|
|
23
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
24
|
+
suite('Cpp devfile API test', function () {
|
|
25
|
+
const devfilesRegistryHelper = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.DevfilesRegistryHelper);
|
|
26
|
+
const kubernetesCommandLineToolsExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.KubernetesCommandLineToolsExecutor);
|
|
27
|
+
const devfileID = 'cpp';
|
|
28
|
+
const containerTerminal = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ContainerTerminal);
|
|
29
|
+
let devWorkspaceConfigurationHelper;
|
|
30
|
+
let devfileContext;
|
|
31
|
+
let devfileContent = '';
|
|
32
|
+
let devfileName = '';
|
|
33
|
+
const workDirPath = 'c-plus-plus/strings';
|
|
34
|
+
const fileName = 'knuth_morris_pratt.cpp';
|
|
35
|
+
const tasksJsonPath = 'c-plus-plus/.vscode/tasks.json';
|
|
36
|
+
suiteSetup(`Prepare login ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
|
|
37
|
+
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
38
|
+
});
|
|
39
|
+
test(`Create ${devfileID} workspace`, async function () {
|
|
40
|
+
const randomPref = crypto_1.default.randomBytes(4).toString('hex');
|
|
41
|
+
kubernetesCommandLineToolsExecutor.namespace = API_TEST_CONSTANTS_1.API_TEST_CONSTANTS.TS_API_TEST_NAMESPACE;
|
|
42
|
+
devfileContent = devfilesRegistryHelper.getDevfileContent(devfileID);
|
|
43
|
+
const editorDevfileContent = devfilesRegistryHelper.obtainCheDevFileEditorFromCheConfigMap('editors-definitions');
|
|
44
|
+
devfileName = yaml_1.default.parse(devfileContent).metadata.name;
|
|
45
|
+
const uniqueName = yaml_1.default.parse(devfileContent).metadata.name + randomPref;
|
|
46
|
+
kubernetesCommandLineToolsExecutor.workspaceName = uniqueName;
|
|
47
|
+
devWorkspaceConfigurationHelper = new DevWorkspaceConfigurationHelper_1.DevWorkspaceConfigurationHelper({
|
|
48
|
+
editorContent: editorDevfileContent,
|
|
49
|
+
devfileContent: devfileContent
|
|
50
|
+
});
|
|
51
|
+
devfileContext = await devWorkspaceConfigurationHelper.generateDevfileContext();
|
|
52
|
+
if (devfileContext.devWorkspace.metadata) {
|
|
53
|
+
devfileContext.devWorkspace.metadata.name = uniqueName;
|
|
54
|
+
}
|
|
55
|
+
const devWorkspaceConfigurationYamlString = devWorkspaceConfigurationHelper.getDevWorkspaceConfigurationYamlAsString(devfileContext);
|
|
56
|
+
const output = kubernetesCommandLineToolsExecutor.applyAndWaitDevWorkspace(devWorkspaceConfigurationYamlString);
|
|
57
|
+
(0, chai_1.expect)(output.stdout).contains('condition met');
|
|
58
|
+
});
|
|
59
|
+
test('Check commands', function () {
|
|
60
|
+
let output;
|
|
61
|
+
const toolsComponent = yaml_1.default.parse(devfileContent).components.find((component) => component.name === 'tools');
|
|
62
|
+
const containerName = toolsComponent ? toolsComponent.name : 'Component not found';
|
|
63
|
+
Logger_1.Logger.info(`container from components section of Devfile:: ${containerName}`);
|
|
64
|
+
const tasksJsonContent = containerTerminal.execInContainerCommand(`cat ${tasksJsonPath}`, containerName).stdout;
|
|
65
|
+
const parsedJson = yaml_1.default.parse(tasksJsonContent);
|
|
66
|
+
Logger_1.Logger.info('"Check \'build current algorithm\' command"');
|
|
67
|
+
const buildTaskCommand = parsedJson.tasks[0].command;
|
|
68
|
+
const buildCommand = buildTaskCommand.replaceAll('${file}', fileName).replaceAll(/'/g, '"');
|
|
69
|
+
Logger_1.Logger.info(`commandLine from tasks.json file of project: ${buildCommand}`);
|
|
70
|
+
const runCommandInBash = `cd ${workDirPath} && ${buildCommand}`;
|
|
71
|
+
output = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
|
|
72
|
+
(0, chai_1.expect)(output.code).eqls(0);
|
|
73
|
+
(0, chai_1.expect)(output.stdout.trim()).contains('Build complete');
|
|
74
|
+
Logger_1.Logger.info('"Check \'run current algorithm\' command"');
|
|
75
|
+
const runTaskCommand = parsedJson.tasks[1].command;
|
|
76
|
+
const runCommand = runTaskCommand.replaceAll('${file}', fileName).replaceAll(/'/g, '"');
|
|
77
|
+
Logger_1.Logger.info(`commandLine from tasks.json file of project: ${runCommand}`);
|
|
78
|
+
const runCommandInBash2 = `cd ${workDirPath} && ${runCommand}`;
|
|
79
|
+
output = containerTerminal.execInContainerCommand(runCommandInBash2, containerName);
|
|
80
|
+
(0, chai_1.expect)(output.code).eqls(0);
|
|
81
|
+
(0, chai_1.expect)(output.stdout.trim()).contains('Found');
|
|
82
|
+
});
|
|
83
|
+
suiteTeardown('Delete workspace', function () {
|
|
84
|
+
kubernetesCommandLineToolsExecutor.deleteDevWorkspace(devfileName);
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
//# sourceMappingURL=CppDevFileAPI.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CppDevFileAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/CppDevFileAPI.spec.ts"],"names":[],"mappings":"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"}
|