@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.
Files changed (260) hide show
  1. package/dist/configs/inversify.config.js +123 -0
  2. package/dist/configs/inversify.config.js.map +1 -0
  3. package/dist/configs/inversify.types.js +74 -0
  4. package/dist/configs/inversify.types.js.map +1 -0
  5. package/dist/configs/mocharc.js +42 -0
  6. package/dist/configs/mocharc.js.map +1 -0
  7. package/dist/constants/API_TEST_CONSTANTS.js +60 -0
  8. package/dist/constants/API_TEST_CONSTANTS.js.map +1 -0
  9. package/dist/constants/BASE_TEST_CONSTANTS.js +109 -0
  10. package/dist/constants/BASE_TEST_CONSTANTS.js.map +1 -0
  11. package/dist/constants/CHROME_DRIVER_CONSTANTS.js +40 -0
  12. package/dist/constants/CHROME_DRIVER_CONSTANTS.js.map +1 -0
  13. package/dist/constants/EDITOR_CONSTANTS.js +114 -0
  14. package/dist/constants/EDITOR_CONSTANTS.js.map +1 -0
  15. package/dist/constants/FACTORY_TEST_CONSTANTS.js +87 -0
  16. package/dist/constants/FACTORY_TEST_CONSTANTS.js.map +1 -0
  17. package/dist/constants/MOCHA_CONSTANTS.js +24 -0
  18. package/dist/constants/MOCHA_CONSTANTS.js.map +1 -0
  19. package/dist/constants/MONACO_CONSTANTS.js +25 -0
  20. package/dist/constants/MONACO_CONSTANTS.js.map +1 -0
  21. package/dist/constants/OAUTH_CONSTANTS.js +53 -0
  22. package/dist/constants/OAUTH_CONSTANTS.js.map +1 -0
  23. package/dist/constants/PLUGIN_TEST_CONSTANTS.js +19 -0
  24. package/dist/constants/PLUGIN_TEST_CONSTANTS.js.map +1 -0
  25. package/dist/constants/REPORTER_CONSTANTS.js +123 -0
  26. package/dist/constants/REPORTER_CONSTANTS.js.map +1 -0
  27. package/dist/constants/TIMEOUT_CONSTANTS.js +101 -0
  28. package/dist/constants/TIMEOUT_CONSTANTS.js.map +1 -0
  29. package/dist/driver/ChromeDriver.js +77 -0
  30. package/dist/driver/ChromeDriver.js.map +1 -0
  31. package/dist/driver/IDriver.js +3 -0
  32. package/dist/driver/IDriver.js.map +1 -0
  33. package/dist/index.js +99 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/pageobjects/dashboard/CreateWorkspace.js +181 -0
  36. package/dist/pageobjects/dashboard/CreateWorkspace.js.map +1 -0
  37. package/dist/pageobjects/dashboard/Dashboard.js +208 -0
  38. package/dist/pageobjects/dashboard/Dashboard.js.map +1 -0
  39. package/dist/pageobjects/dashboard/TrustAuthorPopup.js +61 -0
  40. package/dist/pageobjects/dashboard/TrustAuthorPopup.js.map +1 -0
  41. package/dist/pageobjects/dashboard/UserPreferences.js +268 -0
  42. package/dist/pageobjects/dashboard/UserPreferences.js.map +1 -0
  43. package/dist/pageobjects/dashboard/Workspaces.js +242 -0
  44. package/dist/pageobjects/dashboard/Workspaces.js.map +1 -0
  45. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js +192 -0
  46. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js.map +1 -0
  47. package/dist/pageobjects/git-providers/OauthPage.js +218 -0
  48. package/dist/pageobjects/git-providers/OauthPage.js.map +1 -0
  49. package/dist/pageobjects/ide/AiCodeSignInDialog.js +55 -0
  50. package/dist/pageobjects/ide/AiCodeSignInDialog.js.map +1 -0
  51. package/dist/pageobjects/ide/CheCodeLocatorLoader.js +108 -0
  52. package/dist/pageobjects/ide/CheCodeLocatorLoader.js.map +1 -0
  53. package/dist/pageobjects/ide/CommandPalette.js +117 -0
  54. package/dist/pageobjects/ide/CommandPalette.js.map +1 -0
  55. package/dist/pageobjects/ide/ExplorerView.js +108 -0
  56. package/dist/pageobjects/ide/ExplorerView.js.map +1 -0
  57. package/dist/pageobjects/ide/ExtensionsView.js +162 -0
  58. package/dist/pageobjects/ide/ExtensionsView.js.map +1 -0
  59. package/dist/pageobjects/ide/GitHubExtensionDialog.js +66 -0
  60. package/dist/pageobjects/ide/GitHubExtensionDialog.js.map +1 -0
  61. package/dist/pageobjects/ide/NotificationHandler.js +83 -0
  62. package/dist/pageobjects/ide/NotificationHandler.js.map +1 -0
  63. package/dist/pageobjects/ide/RestartWorkspaceDialog.js +80 -0
  64. package/dist/pageobjects/ide/RestartWorkspaceDialog.js.map +1 -0
  65. package/dist/pageobjects/ide/RestrictedModeButton.js +57 -0
  66. package/dist/pageobjects/ide/RestrictedModeButton.js.map +1 -0
  67. package/dist/pageobjects/ide/SourceControlView.js +52 -0
  68. package/dist/pageobjects/ide/SourceControlView.js.map +1 -0
  69. package/dist/pageobjects/ide/ViewsMoreActionsButton.js +73 -0
  70. package/dist/pageobjects/ide/ViewsMoreActionsButton.js.map +1 -0
  71. package/dist/pageobjects/login/interfaces/ICheLoginPage.js +12 -0
  72. package/dist/pageobjects/login/interfaces/ICheLoginPage.js.map +1 -0
  73. package/dist/pageobjects/login/interfaces/IOcpLoginPage.js +12 -0
  74. package/dist/pageobjects/login/interfaces/IOcpLoginPage.js.map +1 -0
  75. package/dist/pageobjects/login/kubernetes/DexLoginPage.js +69 -0
  76. package/dist/pageobjects/login/kubernetes/DexLoginPage.js.map +1 -0
  77. package/dist/pageobjects/login/kubernetes/KubernetesLoginPage.js +50 -0
  78. package/dist/pageobjects/login/kubernetes/KubernetesLoginPage.js.map +1 -0
  79. package/dist/pageobjects/login/openshift/OcpLoginPage.js +88 -0
  80. package/dist/pageobjects/login/openshift/OcpLoginPage.js.map +1 -0
  81. package/dist/pageobjects/login/openshift/OcpRedHatLoginPage.js +73 -0
  82. package/dist/pageobjects/login/openshift/OcpRedHatLoginPage.js.map +1 -0
  83. package/dist/pageobjects/login/openshift/OcpUserLoginPage.js +53 -0
  84. package/dist/pageobjects/login/openshift/OcpUserLoginPage.js.map +1 -0
  85. package/dist/pageobjects/login/openshift/RedHatLoginPage.js +85 -0
  86. package/dist/pageobjects/login/openshift/RedHatLoginPage.js.map +1 -0
  87. package/dist/pageobjects/login/openshift/RegularUserOcpCheLoginPage.js +65 -0
  88. package/dist/pageobjects/login/openshift/RegularUserOcpCheLoginPage.js.map +1 -0
  89. package/dist/pageobjects/openshift/OcpApplicationPage.js +60 -0
  90. package/dist/pageobjects/openshift/OcpApplicationPage.js.map +1 -0
  91. package/dist/pageobjects/openshift/OcpImportFromGitPage.js +92 -0
  92. package/dist/pageobjects/openshift/OcpImportFromGitPage.js.map +1 -0
  93. package/dist/pageobjects/openshift/OcpMainPage.js +140 -0
  94. package/dist/pageobjects/openshift/OcpMainPage.js.map +1 -0
  95. package/dist/pageobjects/webterminal/WebTerminalPage.js +182 -0
  96. package/dist/pageobjects/webterminal/WebTerminalPage.js.map +1 -0
  97. package/dist/specs/MochaHooks.js +142 -0
  98. package/dist/specs/MochaHooks.js.map +1 -0
  99. package/dist/specs/SmokeTest.spec.js +58 -0
  100. package/dist/specs/SmokeTest.spec.js.map +1 -0
  101. package/dist/specs/api/AnsibleDevFileAPI.spec.js +263 -0
  102. package/dist/specs/api/AnsibleDevFileAPI.spec.js.map +1 -0
  103. package/dist/specs/api/BuildPushRunPodmanContainerAPI.spec.js +147 -0
  104. package/dist/specs/api/BuildPushRunPodmanContainerAPI.spec.js.map +1 -0
  105. package/dist/specs/api/ContainerOverridesAPI.spec.js +40 -0
  106. package/dist/specs/api/ContainerOverridesAPI.spec.js.map +1 -0
  107. package/dist/specs/api/CppDevFileAPI.spec.js +87 -0
  108. package/dist/specs/api/CppDevFileAPI.spec.js.map +1 -0
  109. package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js +99 -0
  110. package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js.map +1 -0
  111. package/dist/specs/api/DotnetDevFileAPI.spec.js +89 -0
  112. package/dist/specs/api/DotnetDevFileAPI.spec.js.map +1 -0
  113. package/dist/specs/api/EmptyWorkspaceAPI.spec.js +60 -0
  114. package/dist/specs/api/EmptyWorkspaceAPI.spec.js.map +1 -0
  115. package/dist/specs/api/GoDevFileAPI.spec.js +82 -0
  116. package/dist/specs/api/GoDevFileAPI.spec.js.map +1 -0
  117. package/dist/specs/api/InbuiltApplicationDevWorkspacesAPI.spec.js +97 -0
  118. package/dist/specs/api/InbuiltApplicationDevWorkspacesAPI.spec.js.map +1 -0
  119. package/dist/specs/api/JBossEapDevFileAPI.spec.js +127 -0
  120. package/dist/specs/api/JBossEapDevFileAPI.spec.js.map +1 -0
  121. package/dist/specs/api/LombokDevFileAPI.spec.js +81 -0
  122. package/dist/specs/api/LombokDevFileAPI.spec.js.map +1 -0
  123. package/dist/specs/api/NodeJSMongoDBDevFileAPI.spec.js +81 -0
  124. package/dist/specs/api/NodeJSMongoDBDevFileAPI.spec.js.map +1 -0
  125. package/dist/specs/api/NodeJsExpressDevFileAPI.spec.js +130 -0
  126. package/dist/specs/api/NodeJsExpressDevFileAPI.spec.js.map +1 -0
  127. package/dist/specs/api/PhpDevFileAPI.spec.js +71 -0
  128. package/dist/specs/api/PhpDevFileAPI.spec.js.map +1 -0
  129. package/dist/specs/api/PodOverridesAPI.spec.js +46 -0
  130. package/dist/specs/api/PodOverridesAPI.spec.js.map +1 -0
  131. package/dist/specs/api/PythonDevFileAPI.spec.js +71 -0
  132. package/dist/specs/api/PythonDevFileAPI.spec.js.map +1 -0
  133. package/dist/specs/api/QuarkusDevFileAPI.spec.js +97 -0
  134. package/dist/specs/api/QuarkusDevFileAPI.spec.js.map +1 -0
  135. package/dist/specs/dashboard-samples/Documentation.spec.js +118 -0
  136. package/dist/specs/dashboard-samples/Documentation.spec.js.map +1 -0
  137. package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js +60 -0
  138. package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js.map +1 -0
  139. package/dist/specs/dashboard-samples/Quarkus.spec.js +64 -0
  140. package/dist/specs/dashboard-samples/Quarkus.spec.js.map +1 -0
  141. package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js +345 -0
  142. package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js.map +1 -0
  143. package/dist/specs/dashboard-samples/StartWorkspaceUsingDesktopEditors.spec.js +171 -0
  144. package/dist/specs/dashboard-samples/StartWorkspaceUsingDesktopEditors.spec.js.map +1 -0
  145. package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js +155 -0
  146. package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js.map +1 -0
  147. package/dist/specs/factory/Factory.spec.js +183 -0
  148. package/dist/specs/factory/Factory.spec.js.map +1 -0
  149. package/dist/specs/factory/FactoryWithGitRepoOptions.spec.js +63 -0
  150. package/dist/specs/factory/FactoryWithGitRepoOptions.spec.js.map +1 -0
  151. package/dist/specs/factory/NoSetupRepoFactory.spec.js +212 -0
  152. package/dist/specs/factory/NoSetupRepoFactory.spec.js.map +1 -0
  153. package/dist/specs/factory/RefusedOAuthFactory.spec.js +239 -0
  154. package/dist/specs/factory/RefusedOAuthFactory.spec.js.map +1 -0
  155. package/dist/specs/factory/SshUrlNoOauthPatFactory.spec.js +202 -0
  156. package/dist/specs/factory/SshUrlNoOauthPatFactory.spec.js.map +1 -0
  157. package/dist/specs/miscellaneous/CreateWorkspaceWithExistedName.spec.js +77 -0
  158. package/dist/specs/miscellaneous/CreateWorkspaceWithExistedName.spec.js.map +1 -0
  159. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromEmptyWorkspaceSample.spec.js +106 -0
  160. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromEmptyWorkspaceSample.spec.js.map +1 -0
  161. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromGitUrl.spec.js +113 -0
  162. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromGitUrl.spec.js.map +1 -0
  163. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromSample.spec.js +116 -0
  164. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromSample.spec.js.map +1 -0
  165. package/dist/specs/miscellaneous/CustomOpenVSXRegistry.spec.js +205 -0
  166. package/dist/specs/miscellaneous/CustomOpenVSXRegistry.spec.js.map +1 -0
  167. package/dist/specs/miscellaneous/ExtensionActivationTest.spec.js +129 -0
  168. package/dist/specs/miscellaneous/ExtensionActivationTest.spec.js.map +1 -0
  169. package/dist/specs/miscellaneous/KubedockPodmanPersistUserHomeTest.spec.js +121 -0
  170. package/dist/specs/miscellaneous/KubedockPodmanPersistUserHomeTest.spec.js.map +1 -0
  171. package/dist/specs/miscellaneous/KubedockPodmanTest.spec.js +103 -0
  172. package/dist/specs/miscellaneous/KubedockPodmanTest.spec.js.map +1 -0
  173. package/dist/specs/miscellaneous/PredefinedNamespace.spec.js +111 -0
  174. package/dist/specs/miscellaneous/PredefinedNamespace.spec.js.map +1 -0
  175. package/dist/specs/miscellaneous/RenameWorkspace.spec.js +116 -0
  176. package/dist/specs/miscellaneous/RenameWorkspace.spec.js.map +1 -0
  177. package/dist/specs/miscellaneous/RevokeOauth.spec.js +29 -0
  178. package/dist/specs/miscellaneous/RevokeOauth.spec.js.map +1 -0
  179. package/dist/specs/miscellaneous/UserPreferencesTest.spec.js +26 -0
  180. package/dist/specs/miscellaneous/UserPreferencesTest.spec.js.map +1 -0
  181. package/dist/specs/miscellaneous/UserSecretsInWorkspace.spec.js +78 -0
  182. package/dist/specs/miscellaneous/UserSecretsInWorkspace.spec.js.map +1 -0
  183. package/dist/specs/miscellaneous/VsixInstallationDisableTest.spec.js +196 -0
  184. package/dist/specs/miscellaneous/VsixInstallationDisableTest.spec.js.map +1 -0
  185. package/dist/specs/miscellaneous/WorkspaceBackupRestore.spec.js +208 -0
  186. package/dist/specs/miscellaneous/WorkspaceBackupRestore.spec.js.map +1 -0
  187. package/dist/specs/miscellaneous/WorkspaceIdleTimeout.spec.js +84 -0
  188. package/dist/specs/miscellaneous/WorkspaceIdleTimeout.spec.js.map +1 -0
  189. package/dist/specs/miscellaneous/WorkspaceRunTimeout.spec.js +84 -0
  190. package/dist/specs/miscellaneous/WorkspaceRunTimeout.spec.js.map +1 -0
  191. package/dist/specs/miscellaneous/WorkspaceWithParent.spec.js +101 -0
  192. package/dist/specs/miscellaneous/WorkspaceWithParent.spec.js.map +1 -0
  193. package/dist/specs/restart-tests/RestartFromLocalDevfile.spec.js +266 -0
  194. package/dist/specs/restart-tests/RestartFromLocalDevfile.spec.js.map +1 -0
  195. package/dist/specs/web-terminal/WebTerminalTest.spec.js +47 -0
  196. package/dist/specs/web-terminal/WebTerminalTest.spec.js.map +1 -0
  197. package/dist/specs/web-terminal/WebTerminalUnderAdmin.spec.js +82 -0
  198. package/dist/specs/web-terminal/WebTerminalUnderAdmin.spec.js.map +1 -0
  199. package/dist/specs/web-terminal/WebTerminalUnderRegularUser.spec.js +78 -0
  200. package/dist/specs/web-terminal/WebTerminalUnderRegularUser.spec.js.map +1 -0
  201. package/dist/suites/devfile-acceptance-test-suite/DynamicallyGeneratingAPITest.suite.js +13 -0
  202. package/dist/suites/devfile-acceptance-test-suite/DynamicallyGeneratingAPITest.suite.js.map +1 -0
  203. package/dist/suites/disconnected-ocp/APITest.suite.js +14 -0
  204. package/dist/suites/disconnected-ocp/APITest.suite.js.map +1 -0
  205. package/dist/suites/disconnected-ocp/DynamicallyGeneratingAPITest.suite.js +13 -0
  206. package/dist/suites/disconnected-ocp/DynamicallyGeneratingAPITest.suite.js.map +1 -0
  207. package/dist/suites/disconnected-ocp/UITest.suite.js +19 -0
  208. package/dist/suites/disconnected-ocp/UITest.suite.js.map +1 -0
  209. package/dist/suites/online-ocp/APITest.suite.js +15 -0
  210. package/dist/suites/online-ocp/APITest.suite.js.map +1 -0
  211. package/dist/suites/online-ocp/DynamicallyGeneratingAPITest.suite.js +13 -0
  212. package/dist/suites/online-ocp/DynamicallyGeneratingAPITest.suite.js.map +1 -0
  213. package/dist/suites/online-ocp/UITest.suite.js +23 -0
  214. package/dist/suites/online-ocp/UITest.suite.js.map +1 -0
  215. package/dist/tests-library/LoginTests.js +76 -0
  216. package/dist/tests-library/LoginTests.js.map +1 -0
  217. package/dist/tests-library/ProjectAndFileTests.js +230 -0
  218. package/dist/tests-library/ProjectAndFileTests.js.map +1 -0
  219. package/dist/tests-library/WorkspaceHandlingTests.js +219 -0
  220. package/dist/tests-library/WorkspaceHandlingTests.js.map +1 -0
  221. package/dist/utils/BrowserTabsUtil.js +124 -0
  222. package/dist/utils/BrowserTabsUtil.js.map +1 -0
  223. package/dist/utils/CheReporter.js +238 -0
  224. package/dist/utils/CheReporter.js.map +1 -0
  225. package/dist/utils/DevWorkspaceConfigurationHelper.js +145 -0
  226. package/dist/utils/DevWorkspaceConfigurationHelper.js.map +1 -0
  227. package/dist/utils/DevfilesHelper.js +177 -0
  228. package/dist/utils/DevfilesHelper.js.map +1 -0
  229. package/dist/utils/DriverHelper.js +609 -0
  230. package/dist/utils/DriverHelper.js.map +1 -0
  231. package/dist/utils/IContextParams.js +12 -0
  232. package/dist/utils/IContextParams.js.map +1 -0
  233. package/dist/utils/IKubernetesCommandLineToolsExecutor.js +3 -0
  234. package/dist/utils/IKubernetesCommandLineToolsExecutor.js.map +1 -0
  235. package/dist/utils/KubernetesCommandLineToolsExecutor.js +338 -0
  236. package/dist/utils/KubernetesCommandLineToolsExecutor.js.map +1 -0
  237. package/dist/utils/Logger.js +146 -0
  238. package/dist/utils/Logger.js.map +1 -0
  239. package/dist/utils/ScreenCatcher.js +114 -0
  240. package/dist/utils/ScreenCatcher.js.map +1 -0
  241. package/dist/utils/ShellExecutor.js +47 -0
  242. package/dist/utils/ShellExecutor.js.map +1 -0
  243. package/dist/utils/StringUtil.js +107 -0
  244. package/dist/utils/StringUtil.js.map +1 -0
  245. package/dist/utils/request-handlers/CheApiRequestHandler.js +128 -0
  246. package/dist/utils/request-handlers/CheApiRequestHandler.js.map +1 -0
  247. package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js +55 -0
  248. package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js.map +1 -0
  249. package/dist/utils/request-handlers/headers/IAuthorizationHeaderHandler.js +12 -0
  250. package/dist/utils/request-handlers/headers/IAuthorizationHeaderHandler.js.map +1 -0
  251. package/dist/utils/workspace/ApiUrlResolver.js +117 -0
  252. package/dist/utils/workspace/ApiUrlResolver.js.map +1 -0
  253. package/dist/utils/workspace/ITestWorkspaceUtil.js +12 -0
  254. package/dist/utils/workspace/ITestWorkspaceUtil.js.map +1 -0
  255. package/dist/utils/workspace/TestWorkspaceUtil.js +202 -0
  256. package/dist/utils/workspace/TestWorkspaceUtil.js.map +1 -0
  257. package/dist/utils/workspace/WorkspaceStatus.js +19 -0
  258. package/dist/utils/workspace/WorkspaceStatus.js.map +1 -0
  259. package/index.ts +5 -5
  260. 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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"}