@eclipse-che/che-e2e 7.123.0-next-677aa96 → 7.124.0-next

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/index.ts +5 -5
  2. package/package.json +1 -1
  3. package/specs/dashboard-samples/RecommendedExtensions.spec.ts +25 -5
  4. package/tests-library/ProjectAndFileTests.ts +26 -0
  5. package/utils/workspace/ApiUrlResolver.ts +11 -1
  6. package/utils/workspace/TestWorkspaceUtil.ts +10 -3
  7. package/dist/configs/inversify.config.js +0 -123
  8. package/dist/configs/inversify.config.js.map +0 -1
  9. package/dist/configs/inversify.types.js +0 -74
  10. package/dist/configs/inversify.types.js.map +0 -1
  11. package/dist/configs/mocharc.js +0 -42
  12. package/dist/configs/mocharc.js.map +0 -1
  13. package/dist/constants/API_TEST_CONSTANTS.js +0 -60
  14. package/dist/constants/API_TEST_CONSTANTS.js.map +0 -1
  15. package/dist/constants/BASE_TEST_CONSTANTS.js +0 -109
  16. package/dist/constants/BASE_TEST_CONSTANTS.js.map +0 -1
  17. package/dist/constants/CHROME_DRIVER_CONSTANTS.js +0 -40
  18. package/dist/constants/CHROME_DRIVER_CONSTANTS.js.map +0 -1
  19. package/dist/constants/EDITOR_CONSTANTS.js +0 -114
  20. package/dist/constants/EDITOR_CONSTANTS.js.map +0 -1
  21. package/dist/constants/FACTORY_TEST_CONSTANTS.js +0 -87
  22. package/dist/constants/FACTORY_TEST_CONSTANTS.js.map +0 -1
  23. package/dist/constants/MOCHA_CONSTANTS.js +0 -24
  24. package/dist/constants/MOCHA_CONSTANTS.js.map +0 -1
  25. package/dist/constants/MONACO_CONSTANTS.js +0 -25
  26. package/dist/constants/MONACO_CONSTANTS.js.map +0 -1
  27. package/dist/constants/OAUTH_CONSTANTS.js +0 -53
  28. package/dist/constants/OAUTH_CONSTANTS.js.map +0 -1
  29. package/dist/constants/PLUGIN_TEST_CONSTANTS.js +0 -19
  30. package/dist/constants/PLUGIN_TEST_CONSTANTS.js.map +0 -1
  31. package/dist/constants/REPORTER_CONSTANTS.js +0 -123
  32. package/dist/constants/REPORTER_CONSTANTS.js.map +0 -1
  33. package/dist/constants/TIMEOUT_CONSTANTS.js +0 -101
  34. package/dist/constants/TIMEOUT_CONSTANTS.js.map +0 -1
  35. package/dist/driver/ChromeDriver.js +0 -77
  36. package/dist/driver/ChromeDriver.js.map +0 -1
  37. package/dist/driver/IDriver.js +0 -3
  38. package/dist/driver/IDriver.js.map +0 -1
  39. package/dist/index.js +0 -99
  40. package/dist/index.js.map +0 -1
  41. package/dist/pageobjects/dashboard/CreateWorkspace.js +0 -181
  42. package/dist/pageobjects/dashboard/CreateWorkspace.js.map +0 -1
  43. package/dist/pageobjects/dashboard/Dashboard.js +0 -208
  44. package/dist/pageobjects/dashboard/Dashboard.js.map +0 -1
  45. package/dist/pageobjects/dashboard/TrustAuthorPopup.js +0 -61
  46. package/dist/pageobjects/dashboard/TrustAuthorPopup.js.map +0 -1
  47. package/dist/pageobjects/dashboard/UserPreferences.js +0 -268
  48. package/dist/pageobjects/dashboard/UserPreferences.js.map +0 -1
  49. package/dist/pageobjects/dashboard/Workspaces.js +0 -242
  50. package/dist/pageobjects/dashboard/Workspaces.js.map +0 -1
  51. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js +0 -192
  52. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js.map +0 -1
  53. package/dist/pageobjects/git-providers/OauthPage.js +0 -218
  54. package/dist/pageobjects/git-providers/OauthPage.js.map +0 -1
  55. package/dist/pageobjects/ide/AiCodeSignInDialog.js +0 -55
  56. package/dist/pageobjects/ide/AiCodeSignInDialog.js.map +0 -1
  57. package/dist/pageobjects/ide/CheCodeLocatorLoader.js +0 -108
  58. package/dist/pageobjects/ide/CheCodeLocatorLoader.js.map +0 -1
  59. package/dist/pageobjects/ide/CommandPalette.js +0 -117
  60. package/dist/pageobjects/ide/CommandPalette.js.map +0 -1
  61. package/dist/pageobjects/ide/ExplorerView.js +0 -108
  62. package/dist/pageobjects/ide/ExplorerView.js.map +0 -1
  63. package/dist/pageobjects/ide/ExtensionsView.js +0 -162
  64. package/dist/pageobjects/ide/ExtensionsView.js.map +0 -1
  65. package/dist/pageobjects/ide/GitHubExtensionDialog.js +0 -66
  66. package/dist/pageobjects/ide/GitHubExtensionDialog.js.map +0 -1
  67. package/dist/pageobjects/ide/NotificationHandler.js +0 -83
  68. package/dist/pageobjects/ide/NotificationHandler.js.map +0 -1
  69. package/dist/pageobjects/ide/RestartWorkspaceDialog.js +0 -80
  70. package/dist/pageobjects/ide/RestartWorkspaceDialog.js.map +0 -1
  71. package/dist/pageobjects/ide/RestrictedModeButton.js +0 -57
  72. package/dist/pageobjects/ide/RestrictedModeButton.js.map +0 -1
  73. package/dist/pageobjects/ide/SourceControlView.js +0 -52
  74. package/dist/pageobjects/ide/SourceControlView.js.map +0 -1
  75. package/dist/pageobjects/ide/ViewsMoreActionsButton.js +0 -73
  76. package/dist/pageobjects/ide/ViewsMoreActionsButton.js.map +0 -1
  77. package/dist/pageobjects/login/interfaces/ICheLoginPage.js +0 -12
  78. package/dist/pageobjects/login/interfaces/ICheLoginPage.js.map +0 -1
  79. package/dist/pageobjects/login/interfaces/IOcpLoginPage.js +0 -12
  80. package/dist/pageobjects/login/interfaces/IOcpLoginPage.js.map +0 -1
  81. package/dist/pageobjects/login/kubernetes/DexLoginPage.js +0 -69
  82. package/dist/pageobjects/login/kubernetes/DexLoginPage.js.map +0 -1
  83. package/dist/pageobjects/login/kubernetes/KubernetesLoginPage.js +0 -50
  84. package/dist/pageobjects/login/kubernetes/KubernetesLoginPage.js.map +0 -1
  85. package/dist/pageobjects/login/openshift/OcpLoginPage.js +0 -88
  86. package/dist/pageobjects/login/openshift/OcpLoginPage.js.map +0 -1
  87. package/dist/pageobjects/login/openshift/OcpRedHatLoginPage.js +0 -73
  88. package/dist/pageobjects/login/openshift/OcpRedHatLoginPage.js.map +0 -1
  89. package/dist/pageobjects/login/openshift/OcpUserLoginPage.js +0 -53
  90. package/dist/pageobjects/login/openshift/OcpUserLoginPage.js.map +0 -1
  91. package/dist/pageobjects/login/openshift/RedHatLoginPage.js +0 -85
  92. package/dist/pageobjects/login/openshift/RedHatLoginPage.js.map +0 -1
  93. package/dist/pageobjects/login/openshift/RegularUserOcpCheLoginPage.js +0 -65
  94. package/dist/pageobjects/login/openshift/RegularUserOcpCheLoginPage.js.map +0 -1
  95. package/dist/pageobjects/openshift/OcpApplicationPage.js +0 -60
  96. package/dist/pageobjects/openshift/OcpApplicationPage.js.map +0 -1
  97. package/dist/pageobjects/openshift/OcpImportFromGitPage.js +0 -92
  98. package/dist/pageobjects/openshift/OcpImportFromGitPage.js.map +0 -1
  99. package/dist/pageobjects/openshift/OcpMainPage.js +0 -140
  100. package/dist/pageobjects/openshift/OcpMainPage.js.map +0 -1
  101. package/dist/pageobjects/webterminal/WebTerminalPage.js +0 -182
  102. package/dist/pageobjects/webterminal/WebTerminalPage.js.map +0 -1
  103. package/dist/specs/MochaHooks.js +0 -142
  104. package/dist/specs/MochaHooks.js.map +0 -1
  105. package/dist/specs/SmokeTest.spec.js +0 -58
  106. package/dist/specs/SmokeTest.spec.js.map +0 -1
  107. package/dist/specs/api/AnsibleDevFileAPI.spec.js +0 -263
  108. package/dist/specs/api/AnsibleDevFileAPI.spec.js.map +0 -1
  109. package/dist/specs/api/BuildPushRunPodmanContainerAPI.spec.js +0 -147
  110. package/dist/specs/api/BuildPushRunPodmanContainerAPI.spec.js.map +0 -1
  111. package/dist/specs/api/ContainerOverridesAPI.spec.js +0 -40
  112. package/dist/specs/api/ContainerOverridesAPI.spec.js.map +0 -1
  113. package/dist/specs/api/CppDevFileAPI.spec.js +0 -87
  114. package/dist/specs/api/CppDevFileAPI.spec.js.map +0 -1
  115. package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js +0 -99
  116. package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js.map +0 -1
  117. package/dist/specs/api/DotnetDevFileAPI.spec.js +0 -89
  118. package/dist/specs/api/DotnetDevFileAPI.spec.js.map +0 -1
  119. package/dist/specs/api/EmptyWorkspaceAPI.spec.js +0 -60
  120. package/dist/specs/api/EmptyWorkspaceAPI.spec.js.map +0 -1
  121. package/dist/specs/api/GoDevFileAPI.spec.js +0 -82
  122. package/dist/specs/api/GoDevFileAPI.spec.js.map +0 -1
  123. package/dist/specs/api/InbuiltApplicationDevWorkspacesAPI.spec.js +0 -97
  124. package/dist/specs/api/InbuiltApplicationDevWorkspacesAPI.spec.js.map +0 -1
  125. package/dist/specs/api/JBossEapDevFileAPI.spec.js +0 -127
  126. package/dist/specs/api/JBossEapDevFileAPI.spec.js.map +0 -1
  127. package/dist/specs/api/LombokDevFileAPI.spec.js +0 -81
  128. package/dist/specs/api/LombokDevFileAPI.spec.js.map +0 -1
  129. package/dist/specs/api/NodeJSMongoDBDevFileAPI.spec.js +0 -81
  130. package/dist/specs/api/NodeJSMongoDBDevFileAPI.spec.js.map +0 -1
  131. package/dist/specs/api/NodeJsExpressDevFileAPI.spec.js +0 -130
  132. package/dist/specs/api/NodeJsExpressDevFileAPI.spec.js.map +0 -1
  133. package/dist/specs/api/PhpDevFileAPI.spec.js +0 -71
  134. package/dist/specs/api/PhpDevFileAPI.spec.js.map +0 -1
  135. package/dist/specs/api/PodOverridesAPI.spec.js +0 -46
  136. package/dist/specs/api/PodOverridesAPI.spec.js.map +0 -1
  137. package/dist/specs/api/PythonDevFileAPI.spec.js +0 -71
  138. package/dist/specs/api/PythonDevFileAPI.spec.js.map +0 -1
  139. package/dist/specs/api/QuarkusDevFileAPI.spec.js +0 -97
  140. package/dist/specs/api/QuarkusDevFileAPI.spec.js.map +0 -1
  141. package/dist/specs/dashboard-samples/Documentation.spec.js +0 -118
  142. package/dist/specs/dashboard-samples/Documentation.spec.js.map +0 -1
  143. package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js +0 -60
  144. package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js.map +0 -1
  145. package/dist/specs/dashboard-samples/Quarkus.spec.js +0 -64
  146. package/dist/specs/dashboard-samples/Quarkus.spec.js.map +0 -1
  147. package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js +0 -345
  148. package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js.map +0 -1
  149. package/dist/specs/dashboard-samples/StartWorkspaceUsingDesktopEditors.spec.js +0 -171
  150. package/dist/specs/dashboard-samples/StartWorkspaceUsingDesktopEditors.spec.js.map +0 -1
  151. package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js +0 -155
  152. package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js.map +0 -1
  153. package/dist/specs/factory/Factory.spec.js +0 -183
  154. package/dist/specs/factory/Factory.spec.js.map +0 -1
  155. package/dist/specs/factory/FactoryWithGitRepoOptions.spec.js +0 -63
  156. package/dist/specs/factory/FactoryWithGitRepoOptions.spec.js.map +0 -1
  157. package/dist/specs/factory/NoSetupRepoFactory.spec.js +0 -212
  158. package/dist/specs/factory/NoSetupRepoFactory.spec.js.map +0 -1
  159. package/dist/specs/factory/RefusedOAuthFactory.spec.js +0 -239
  160. package/dist/specs/factory/RefusedOAuthFactory.spec.js.map +0 -1
  161. package/dist/specs/factory/SshUrlNoOauthPatFactory.spec.js +0 -202
  162. package/dist/specs/factory/SshUrlNoOauthPatFactory.spec.js.map +0 -1
  163. package/dist/specs/miscellaneous/CreateWorkspaceWithExistedName.spec.js +0 -77
  164. package/dist/specs/miscellaneous/CreateWorkspaceWithExistedName.spec.js.map +0 -1
  165. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromEmptyWorkspaceSample.spec.js +0 -106
  166. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromEmptyWorkspaceSample.spec.js.map +0 -1
  167. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromGitUrl.spec.js +0 -113
  168. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromGitUrl.spec.js.map +0 -1
  169. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromSample.spec.js +0 -116
  170. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromSample.spec.js.map +0 -1
  171. package/dist/specs/miscellaneous/CustomOpenVSXRegistry.spec.js +0 -205
  172. package/dist/specs/miscellaneous/CustomOpenVSXRegistry.spec.js.map +0 -1
  173. package/dist/specs/miscellaneous/ExtensionActivationTest.spec.js +0 -129
  174. package/dist/specs/miscellaneous/ExtensionActivationTest.spec.js.map +0 -1
  175. package/dist/specs/miscellaneous/KubedockPodmanPersistUserHomeTest.spec.js +0 -121
  176. package/dist/specs/miscellaneous/KubedockPodmanPersistUserHomeTest.spec.js.map +0 -1
  177. package/dist/specs/miscellaneous/KubedockPodmanTest.spec.js +0 -103
  178. package/dist/specs/miscellaneous/KubedockPodmanTest.spec.js.map +0 -1
  179. package/dist/specs/miscellaneous/PredefinedNamespace.spec.js +0 -111
  180. package/dist/specs/miscellaneous/PredefinedNamespace.spec.js.map +0 -1
  181. package/dist/specs/miscellaneous/RenameWorkspace.spec.js +0 -116
  182. package/dist/specs/miscellaneous/RenameWorkspace.spec.js.map +0 -1
  183. package/dist/specs/miscellaneous/RevokeOauth.spec.js +0 -29
  184. package/dist/specs/miscellaneous/RevokeOauth.spec.js.map +0 -1
  185. package/dist/specs/miscellaneous/UserPreferencesTest.spec.js +0 -26
  186. package/dist/specs/miscellaneous/UserPreferencesTest.spec.js.map +0 -1
  187. package/dist/specs/miscellaneous/UserSecretsInWorkspace.spec.js +0 -78
  188. package/dist/specs/miscellaneous/UserSecretsInWorkspace.spec.js.map +0 -1
  189. package/dist/specs/miscellaneous/VsixInstallationDisableTest.spec.js +0 -196
  190. package/dist/specs/miscellaneous/VsixInstallationDisableTest.spec.js.map +0 -1
  191. package/dist/specs/miscellaneous/WorkspaceBackupRestore.spec.js +0 -208
  192. package/dist/specs/miscellaneous/WorkspaceBackupRestore.spec.js.map +0 -1
  193. package/dist/specs/miscellaneous/WorkspaceIdleTimeout.spec.js +0 -84
  194. package/dist/specs/miscellaneous/WorkspaceIdleTimeout.spec.js.map +0 -1
  195. package/dist/specs/miscellaneous/WorkspaceRunTimeout.spec.js +0 -84
  196. package/dist/specs/miscellaneous/WorkspaceRunTimeout.spec.js.map +0 -1
  197. package/dist/specs/miscellaneous/WorkspaceWithParent.spec.js +0 -101
  198. package/dist/specs/miscellaneous/WorkspaceWithParent.spec.js.map +0 -1
  199. package/dist/specs/restart-tests/RestartFromLocalDevfile.spec.js +0 -266
  200. package/dist/specs/restart-tests/RestartFromLocalDevfile.spec.js.map +0 -1
  201. package/dist/specs/web-terminal/WebTerminalTest.spec.js +0 -47
  202. package/dist/specs/web-terminal/WebTerminalTest.spec.js.map +0 -1
  203. package/dist/specs/web-terminal/WebTerminalUnderAdmin.spec.js +0 -82
  204. package/dist/specs/web-terminal/WebTerminalUnderAdmin.spec.js.map +0 -1
  205. package/dist/specs/web-terminal/WebTerminalUnderRegularUser.spec.js +0 -78
  206. package/dist/specs/web-terminal/WebTerminalUnderRegularUser.spec.js.map +0 -1
  207. package/dist/suites/devfile-acceptance-test-suite/DynamicallyGeneratingAPITest.suite.js +0 -13
  208. package/dist/suites/devfile-acceptance-test-suite/DynamicallyGeneratingAPITest.suite.js.map +0 -1
  209. package/dist/suites/disconnected-ocp/APITest.suite.js +0 -14
  210. package/dist/suites/disconnected-ocp/APITest.suite.js.map +0 -1
  211. package/dist/suites/disconnected-ocp/DynamicallyGeneratingAPITest.suite.js +0 -13
  212. package/dist/suites/disconnected-ocp/DynamicallyGeneratingAPITest.suite.js.map +0 -1
  213. package/dist/suites/disconnected-ocp/UITest.suite.js +0 -19
  214. package/dist/suites/disconnected-ocp/UITest.suite.js.map +0 -1
  215. package/dist/suites/online-ocp/APITest.suite.js +0 -15
  216. package/dist/suites/online-ocp/APITest.suite.js.map +0 -1
  217. package/dist/suites/online-ocp/DynamicallyGeneratingAPITest.suite.js +0 -13
  218. package/dist/suites/online-ocp/DynamicallyGeneratingAPITest.suite.js.map +0 -1
  219. package/dist/suites/online-ocp/UITest.suite.js +0 -23
  220. package/dist/suites/online-ocp/UITest.suite.js.map +0 -1
  221. package/dist/tests-library/LoginTests.js +0 -76
  222. package/dist/tests-library/LoginTests.js.map +0 -1
  223. package/dist/tests-library/ProjectAndFileTests.js +0 -256
  224. package/dist/tests-library/ProjectAndFileTests.js.map +0 -1
  225. package/dist/tests-library/WorkspaceHandlingTests.js +0 -219
  226. package/dist/tests-library/WorkspaceHandlingTests.js.map +0 -1
  227. package/dist/utils/BrowserTabsUtil.js +0 -124
  228. package/dist/utils/BrowserTabsUtil.js.map +0 -1
  229. package/dist/utils/CheReporter.js +0 -238
  230. package/dist/utils/CheReporter.js.map +0 -1
  231. package/dist/utils/DevWorkspaceConfigurationHelper.js +0 -145
  232. package/dist/utils/DevWorkspaceConfigurationHelper.js.map +0 -1
  233. package/dist/utils/DevfilesHelper.js +0 -177
  234. package/dist/utils/DevfilesHelper.js.map +0 -1
  235. package/dist/utils/DriverHelper.js +0 -609
  236. package/dist/utils/DriverHelper.js.map +0 -1
  237. package/dist/utils/IContextParams.js +0 -12
  238. package/dist/utils/IContextParams.js.map +0 -1
  239. package/dist/utils/IKubernetesCommandLineToolsExecutor.js +0 -3
  240. package/dist/utils/IKubernetesCommandLineToolsExecutor.js.map +0 -1
  241. package/dist/utils/KubernetesCommandLineToolsExecutor.js +0 -338
  242. package/dist/utils/KubernetesCommandLineToolsExecutor.js.map +0 -1
  243. package/dist/utils/Logger.js +0 -146
  244. package/dist/utils/Logger.js.map +0 -1
  245. package/dist/utils/ScreenCatcher.js +0 -114
  246. package/dist/utils/ScreenCatcher.js.map +0 -1
  247. package/dist/utils/ShellExecutor.js +0 -47
  248. package/dist/utils/ShellExecutor.js.map +0 -1
  249. package/dist/utils/StringUtil.js +0 -107
  250. package/dist/utils/StringUtil.js.map +0 -1
  251. package/dist/utils/request-handlers/CheApiRequestHandler.js +0 -128
  252. package/dist/utils/request-handlers/CheApiRequestHandler.js.map +0 -1
  253. package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js +0 -55
  254. package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js.map +0 -1
  255. package/dist/utils/request-handlers/headers/IAuthorizationHeaderHandler.js +0 -12
  256. package/dist/utils/request-handlers/headers/IAuthorizationHeaderHandler.js.map +0 -1
  257. package/dist/utils/workspace/ApiUrlResolver.js +0 -117
  258. package/dist/utils/workspace/ApiUrlResolver.js.map +0 -1
  259. package/dist/utils/workspace/ITestWorkspaceUtil.js +0 -12
  260. package/dist/utils/workspace/ITestWorkspaceUtil.js.map +0 -1
  261. package/dist/utils/workspace/TestWorkspaceUtil.js +0 -202
  262. package/dist/utils/workspace/TestWorkspaceUtil.js.map +0 -1
  263. package/dist/utils/workspace/WorkspaceStatus.js +0 -19
  264. package/dist/utils/workspace/WorkspaceStatus.js.map +0 -1
@@ -1,81 +0,0 @@
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
- /** *******************************************************************
7
- * copyright (c) 2024 Red Hat, Inc.
8
- *
9
- * This program and the accompanying materials are made
10
- * available under the terms of the Eclipse Public License 2.0
11
- * which is available at https://www.eclipse.org/legal/epl-2.0/
12
- *
13
- * SPDX-License-Identifier: EPL-2.0
14
- **********************************************************************/
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('Lombok 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 = 'java-lombok';
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
- suiteSetup(`Prepare login ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
34
- kubernetesCommandLineToolsExecutor.loginToOcp();
35
- });
36
- test(`Create ${devfileID} workspace`, async function () {
37
- const randomPref = crypto_1.default.randomBytes(4).toString('hex');
38
- kubernetesCommandLineToolsExecutor.namespace = API_TEST_CONSTANTS_1.API_TEST_CONSTANTS.TS_API_TEST_NAMESPACE;
39
- devfileContent = devfilesRegistryHelper.getDevfileContent(devfileID);
40
- const editorDevfileContent = devfilesRegistryHelper.obtainCheDevFileEditorFromCheConfigMap('editors-definitions');
41
- devfileName = yaml_1.default.parse(devfileContent).metadata.name;
42
- const uniqueName = yaml_1.default.parse(devfileContent).metadata.name + randomPref;
43
- kubernetesCommandLineToolsExecutor.workspaceName = uniqueName;
44
- devWorkspaceConfigurationHelper = new DevWorkspaceConfigurationHelper_1.DevWorkspaceConfigurationHelper({
45
- editorContent: editorDevfileContent,
46
- devfileContent: devfileContent
47
- });
48
- devfileContext = await devWorkspaceConfigurationHelper.generateDevfileContext();
49
- if (devfileContext.devWorkspace.metadata) {
50
- devfileContext.devWorkspace.metadata.name = uniqueName;
51
- }
52
- const devWorkspaceConfigurationYamlString = devWorkspaceConfigurationHelper.getDevWorkspaceConfigurationYamlAsString(devfileContext);
53
- const output = kubernetesCommandLineToolsExecutor.applyAndWaitDevWorkspace(devWorkspaceConfigurationYamlString);
54
- (0, chai_1.expect)(output.stdout).contains('condition met');
55
- });
56
- test('Check build application', function () {
57
- const containerName = yaml_1.default.parse(devfileContent).commands[0].exec.component;
58
- if (BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()) {
59
- Logger_1.Logger.info('Test cluster is disconnected. Init Java Truststore...');
60
- const initJavaTruststoreCommand = 'cp /home/user/init-java-truststore.sh /tmp && chmod +x /tmp/init-java-truststore.sh && /tmp/init-java-truststore.sh';
61
- const output = containerTerminal.execInContainerCommand(initJavaTruststoreCommand, containerName);
62
- (0, chai_1.expect)(output.code).eqls(0);
63
- }
64
- const workdir = yaml_1.default.parse(devfileContent).commands[0].exec.workingDir;
65
- const commandLine = yaml_1.default.parse(devfileContent).commands[0].exec.commandLine;
66
- Logger_1.Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
67
- Logger_1.Logger.info(`commandLine from exec section of DevWorkspace file: ${commandLine}`);
68
- let runCommandInBash = commandLine.replaceAll('$', '\\$'); // don't wipe out env. vars like "${PROJECTS_ROOT}"
69
- if (workdir !== undefined && workdir !== '') {
70
- runCommandInBash = `cd ${workdir} && ` + runCommandInBash;
71
- }
72
- const output = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
73
- (0, chai_1.expect)(output.code).eqls(0);
74
- const outputText = output.stdout.trim();
75
- (0, chai_1.expect)(outputText).contains('BUILD SUCCESS');
76
- });
77
- suiteTeardown('Delete workspace', function () {
78
- kubernetesCommandLineToolsExecutor.deleteDevWorkspace(devfileName);
79
- });
80
- });
81
- //# sourceMappingURL=LombokDevFileAPI.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LombokDevFileAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/LombokDevFileAPI.spec.ts"],"names":[],"mappings":"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"}
@@ -1,81 +0,0 @@
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
- /** *******************************************************************
7
- * copyright (c) 2024 Red Hat, Inc.
8
- *
9
- * This program and the accompanying materials are made
10
- * available under the terms of the Eclipse Public License 2.0
11
- * which is available at https://www.eclipse.org/legal/epl-2.0/
12
- *
13
- * SPDX-License-Identifier: EPL-2.0
14
- **********************************************************************/
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('NodeJS MongoDB 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 = 'nodejs-mongodb';
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
- suiteSetup(`Prepare login ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
34
- kubernetesCommandLineToolsExecutor.loginToOcp();
35
- });
36
- test(`Create ${devfileID} workspace`, async function () {
37
- const randomPref = crypto_1.default.randomBytes(4).toString('hex');
38
- kubernetesCommandLineToolsExecutor.namespace = API_TEST_CONSTANTS_1.API_TEST_CONSTANTS.TS_API_TEST_NAMESPACE;
39
- devfileContent = devfilesRegistryHelper.getDevfileContent(devfileID);
40
- const editorDevfileContent = devfilesRegistryHelper.obtainCheDevFileEditorFromCheConfigMap('editors-definitions');
41
- devfileName = yaml_1.default.parse(devfileContent).metadata.name;
42
- const uniqueName = yaml_1.default.parse(devfileContent).metadata.name + randomPref;
43
- kubernetesCommandLineToolsExecutor.workspaceName = uniqueName;
44
- devWorkspaceConfigurationHelper = new DevWorkspaceConfigurationHelper_1.DevWorkspaceConfigurationHelper({
45
- editorContent: editorDevfileContent,
46
- devfileContent: devfileContent
47
- });
48
- devfileContext = await devWorkspaceConfigurationHelper.generateDevfileContext();
49
- if (devfileContext.devWorkspace.metadata) {
50
- devfileContext.devWorkspace.metadata.name = uniqueName;
51
- }
52
- const devWorkspaceConfigurationYamlString = devWorkspaceConfigurationHelper.getDevWorkspaceConfigurationYamlAsString(devfileContext);
53
- const output = kubernetesCommandLineToolsExecutor.applyAndWaitDevWorkspace(devWorkspaceConfigurationYamlString);
54
- (0, chai_1.expect)(output.stdout).contains('condition met');
55
- });
56
- test('Check "Run the application" command', function () {
57
- const containerName = yaml_1.default.parse(devfileContent).commands[0].exec.component;
58
- if (BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()) {
59
- Logger_1.Logger.info('Test cluster is disconnected. Ignore Self-Signed Certificate error.');
60
- const ignoreSelfSignedCertificateErrorCommand = 'npm config set strict-ssl false';
61
- const output = containerTerminal.execInContainerCommand(ignoreSelfSignedCertificateErrorCommand, containerName);
62
- (0, chai_1.expect)(output.code).eqls(0);
63
- }
64
- const workdir = yaml_1.default.parse(devfileContent).commands[0].exec.workingDir;
65
- const commandLine = yaml_1.default.parse(devfileContent).commands[0].exec.commandLine;
66
- Logger_1.Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
67
- Logger_1.Logger.info(`commandLine from exec section of DevWorkspace file: ${commandLine}`);
68
- let runCommandInBash = commandLine.replaceAll('$', '\\$'); // don't wipe out env. vars like "${PROJECTS_ROOT}"
69
- if (workdir !== undefined && workdir !== '') {
70
- runCommandInBash = `cd ${workdir} && ` + runCommandInBash;
71
- }
72
- const output = containerTerminal.execInContainerCommandWithTimeout(runCommandInBash, containerName);
73
- (0, chai_1.expect)(output.code).eqls(124);
74
- const outputText = output.stdout.trim();
75
- (0, chai_1.expect)(outputText).contains('App listening on port 8080');
76
- });
77
- suiteTeardown('Delete workspace', function () {
78
- kubernetesCommandLineToolsExecutor.deleteDevWorkspace(devfileName);
79
- });
80
- });
81
- //# sourceMappingURL=NodeJSMongoDBDevFileAPI.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NodeJSMongoDBDevFileAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/NodeJSMongoDBDevFileAPI.spec.ts"],"names":[],"mappings":"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"}
@@ -1,130 +0,0 @@
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
- /** *******************************************************************
7
- * copyright (c) 2024 Red Hat, Inc.
8
- *
9
- * This program and the accompanying materials are made
10
- * available under the terms of the Eclipse Public License 2.0
11
- * which is available at https://www.eclipse.org/legal/epl-2.0/
12
- *
13
- * SPDX-License-Identifier: EPL-2.0
14
- **********************************************************************/
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('NodeJS Express 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 = 'nodejs-express';
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
- suiteSetup(`Prepare login ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
34
- kubernetesCommandLineToolsExecutor.loginToOcp();
35
- });
36
- test(`Create ${devfileID} workspace`, async function () {
37
- const randomPref = crypto_1.default.randomBytes(4).toString('hex');
38
- kubernetesCommandLineToolsExecutor.namespace = API_TEST_CONSTANTS_1.API_TEST_CONSTANTS.TS_API_TEST_NAMESPACE;
39
- devfileContent = devfilesRegistryHelper.getDevfileContent(devfileID);
40
- const editorDevfileContent = devfilesRegistryHelper.obtainCheDevFileEditorFromCheConfigMap('editors-definitions');
41
- devfileName = yaml_1.default.parse(devfileContent).metadata.name;
42
- const uniqueName = yaml_1.default.parse(devfileContent).metadata.name + randomPref;
43
- kubernetesCommandLineToolsExecutor.workspaceName = uniqueName;
44
- devWorkspaceConfigurationHelper = new DevWorkspaceConfigurationHelper_1.DevWorkspaceConfigurationHelper({
45
- editorContent: editorDevfileContent,
46
- devfileContent: devfileContent
47
- });
48
- devfileContext = await devWorkspaceConfigurationHelper.generateDevfileContext();
49
- if (devfileContext.devWorkspace.metadata) {
50
- devfileContext.devWorkspace.metadata.name = uniqueName;
51
- }
52
- const devWorkspaceConfigurationYamlString = devWorkspaceConfigurationHelper.getDevWorkspaceConfigurationYamlAsString(devfileContext);
53
- const output = kubernetesCommandLineToolsExecutor.applyAndWaitDevWorkspace(devWorkspaceConfigurationYamlString);
54
- (0, chai_1.expect)(output.stdout).contains('condition met');
55
- });
56
- test('Check packaging application', function () {
57
- const containerName = yaml_1.default.parse(devfileContent).commands[0].exec.component;
58
- if (BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()) {
59
- Logger_1.Logger.info('Test cluster is disconnected. Ignore Self-Signed Certificate error.');
60
- const ignoreSelfSignedCertificateErrorCommand = 'npm config set strict-ssl false';
61
- const output = containerTerminal.execInContainerCommand(ignoreSelfSignedCertificateErrorCommand, containerName);
62
- (0, chai_1.expect)(output.code).eqls(0);
63
- }
64
- const workdir = yaml_1.default.parse(devfileContent).commands[0].exec.workingDir;
65
- const commandLine = yaml_1.default.parse(devfileContent).commands[0].exec.commandLine;
66
- Logger_1.Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
67
- Logger_1.Logger.info(`commandLine from exec section of DevWorkspace file: ${commandLine}`);
68
- let runCommandInBash = commandLine.replaceAll('$', '\\$'); // don't wipe out env. vars like "${PROJECTS_ROOT}"
69
- if (workdir !== undefined && workdir !== '') {
70
- runCommandInBash = `cd ${workdir} && ` + runCommandInBash;
71
- }
72
- const output = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
73
- (0, chai_1.expect)(output.code).eqls(0);
74
- const outputText = output.stdout.trim();
75
- (0, chai_1.expect)(outputText).contains('packages in');
76
- });
77
- test('Check "run the web app" command', function () {
78
- const containerName = yaml_1.default.parse(devfileContent).commands[0].exec.component;
79
- const workdir = yaml_1.default.parse(devfileContent).commands[1].exec.workingDir;
80
- const commandLine = yaml_1.default.parse(devfileContent).commands[1].exec.commandLine;
81
- Logger_1.Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
82
- Logger_1.Logger.info(`commandLine from exec section of DevWorkspace file: ${commandLine}`);
83
- let runCommandInBash = commandLine.replaceAll('$', '\\$'); // don't wipe out env. vars like "${PROJECTS_ROOT}"
84
- if (workdir !== undefined && workdir !== '') {
85
- runCommandInBash = `cd ${workdir} && ` + runCommandInBash;
86
- }
87
- const output = containerTerminal.execInContainerCommandWithTimeout(runCommandInBash, containerName);
88
- (0, chai_1.expect)(output.code).eqls(124);
89
- const outputText = output.stdout.trim();
90
- (0, chai_1.expect)(outputText).contains('Example app listening on port 3000!');
91
- });
92
- test('Check "stop the web app" command', function () {
93
- const containerName = yaml_1.default.parse(devfileContent).commands[0].exec.component;
94
- const workdir = yaml_1.default.parse(devfileContent).commands[4].exec.workingDir;
95
- const commandLine = yaml_1.default.parse(devfileContent).commands[4].exec.commandLine;
96
- Logger_1.Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
97
- Logger_1.Logger.info(`commandLine from exec section of DevWorkspace file: ${commandLine}`);
98
- // stop app command has single and double quotes in the command line, so it should be escaped properly to run by oc exec command in bash
99
- // stop command -> `node_server_pids=$(pgrep -fx '.*nodemon (--inspect )?app.js' | tr "\\n" " ") && echo "Stopping node server with PIDs: ${node_server_pids}" && kill -15 ${node_server_pids} &>/dev/null && echo 'Done.''`
100
- // prettier changes next line to `replaceAll("'", "'\"'\"'")` that throws an error from eslint.
101
- // prettier-ignore
102
- let runCommandInBash = commandLine.replaceAll('\'', '\'\"\'\"\'');
103
- if (workdir !== undefined && workdir !== '') {
104
- runCommandInBash = `cd ${workdir} && ` + runCommandInBash;
105
- }
106
- const output = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
107
- (0, chai_1.expect)(output.code).eqls(0);
108
- const outputText = output.stdout.trim();
109
- (0, chai_1.expect)(outputText).contains('Done.');
110
- });
111
- test('Check "Run the web app (debugging enabled)" command', function () {
112
- const containerName = yaml_1.default.parse(devfileContent).commands[0].exec.component;
113
- const workdir = yaml_1.default.parse(devfileContent).commands[3].exec.workingDir;
114
- const commandLine = yaml_1.default.parse(devfileContent).commands[3].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
- let runCommandInBash = commandLine.replaceAll('$', '\\$'); // don't wipe out env. vars like "${PROJECTS_ROOT}"
118
- if (workdir !== undefined && workdir !== '') {
119
- runCommandInBash = `cd ${workdir} && ` + runCommandInBash;
120
- }
121
- const output = containerTerminal.execInContainerCommandWithTimeout(runCommandInBash, containerName);
122
- (0, chai_1.expect)(output.code).eqls(124);
123
- const outputText = output.stdout.trim();
124
- (0, chai_1.expect)(outputText).contains('Example app listening on port 3000!');
125
- });
126
- suiteTeardown('Delete workspace', function () {
127
- kubernetesCommandLineToolsExecutor.deleteDevWorkspace(devfileName);
128
- });
129
- });
130
- //# sourceMappingURL=NodeJsExpressDevFileAPI.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NodeJsExpressDevFileAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/NodeJsExpressDevFileAPI.spec.ts"],"names":[],"mappings":";;;;;AAAA;;;;;;;;wEAQwE;AACxE,6EAA0E;AAC1E,qEAA8D;AAC9D,mEAAwD;AAGxD,iGAA8F;AAG9F,+BAA8B;AAC9B,2EAAwE;AACxE,gDAAwB;AACxB,+CAA4C;AAC5C,oDAA4B;AAE5B,KAAK,CAAC,iCAAiC,EAAE;IACxC,MAAM,sBAAsB,GAAmB,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,sBAAsB,CAAC,CAAC;IAChG,MAAM,kCAAkC,GAAuC,+BAAY,CAAC,GAAG,CAC9F,yBAAO,CAAC,kCAAkC,CAC1C,CAAC;IACF,MAAM,SAAS,GAAW,gBAAgB,CAAC;IAC3C,MAAM,iBAAiB,GAAsB,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,iBAAiB,CAAC,CAAC;IACzF,IAAI,+BAAgE,CAAC;IACrE,IAAI,cAA8B,CAAC;IACnC,IAAI,cAAc,GAAW,EAAE,CAAC;IAChC,IAAI,WAAW,GAAW,EAAE,CAAC;IAE7B,UAAU,CAAC,iBAAiB,yCAAmB,CAAC,gBAAgB,EAAE,EAAE;QACnE,kCAAkC,CAAC,UAAU,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,SAAS,YAAY,EAAE,KAAK;QAC1C,MAAM,UAAU,GAAW,gBAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjE,kCAAkC,CAAC,SAAS,GAAG,uCAAkB,CAAC,qBAAqB,CAAC;QACxF,cAAc,GAAG,sBAAsB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACrE,MAAM,oBAAoB,GAAW,sBAAsB,CAAC,sCAAsC,CAAC,qBAAqB,CAAC,CAAC;QAC1H,WAAW,GAAG,cAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QACvD,MAAM,UAAU,GAAW,cAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAC;QACjF,kCAAkC,CAAC,aAAa,GAAG,UAAU,CAAC;QAE9D,+BAA+B,GAAG,IAAI,iEAA+B,CAAC;YACrE,aAAa,EAAE,oBAAoB;YACnC,cAAc,EAAE,cAAc;SAC9B,CAAC,CAAC;QACH,cAAc,GAAG,MAAM,+BAA+B,CAAC,sBAAsB,EAAE,CAAC;QAChF,IAAI,cAAc,CAAC,YAAY,CAAC,QAAQ,EAAE;YACzC,cAAc,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAC;SACvD;QACD,MAAM,mCAAmC,GACxC,+BAA+B,CAAC,wCAAwC,CAAC,cAAc,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAgB,kCAAkC,CAAC,wBAAwB,CAAC,mCAAmC,CAAC,CAAC;QAC7H,IAAA,aAAM,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6BAA6B,EAAE;QACnC,MAAM,aAAa,GAAW,cAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAEpF,IAAI,yCAAmB,CAAC,uBAAuB,EAAE,EAAE;YAClD,eAAM,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;YACnF,MAAM,uCAAuC,GAAW,iCAAiC,CAAC;YAC1F,MAAM,MAAM,GAAgB,iBAAiB,CAAC,sBAAsB,CAAC,uCAAuC,EAAE,aAAa,CAAC,CAAC;YAC7H,IAAA,aAAM,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC5B;QAED,MAAM,OAAO,GAAW,cAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QAC/E,MAAM,WAAW,GAAW,cAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QACpF,eAAM,CAAC,IAAI,CAAC,mDAAmD,OAAO,EAAE,CAAC,CAAC;QAC1E,eAAM,CAAC,IAAI,CAAC,uDAAuD,WAAW,EAAE,CAAC,CAAC;QAElF,IAAI,gBAAgB,GAAW,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,mDAAmD;QACtH,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE;YAC5C,gBAAgB,GAAG,MAAM,OAAO,MAAM,GAAG,gBAAgB,CAAC;SAC1D;QAED,MAAM,MAAM,GAAgB,iBAAiB,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;QACtG,IAAA,aAAM,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE5B,MAAM,UAAU,GAAW,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAChD,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iCAAiC,EAAE;QACvC,MAAM,aAAa,GAAW,cAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QACpF,MAAM,OAAO,GAAW,cAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QAC/E,MAAM,WAAW,GAAW,cAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QACpF,eAAM,CAAC,IAAI,CAAC,mDAAmD,OAAO,EAAE,CAAC,CAAC;QAC1E,eAAM,CAAC,IAAI,CAAC,uDAAuD,WAAW,EAAE,CAAC,CAAC;QAElF,IAAI,gBAAgB,GAAW,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,mDAAmD;QACtH,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE;YAC5C,gBAAgB,GAAG,MAAM,OAAO,MAAM,GAAG,gBAAgB,CAAC;SAC1D;QAED,MAAM,MAAM,GAAgB,iBAAiB,CAAC,iCAAiC,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;QACjH,IAAA,aAAM,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE9B,MAAM,UAAU,GAAW,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAChD,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kCAAkC,EAAE;QACxC,MAAM,aAAa,GAAW,cAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QACpF,MAAM,OAAO,GAAW,cAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QAC/E,MAAM,WAAW,GAAW,cAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QACpF,eAAM,CAAC,IAAI,CAAC,mDAAmD,OAAO,EAAE,CAAC,CAAC;QAC1E,eAAM,CAAC,IAAI,CAAC,uDAAuD,WAAW,EAAE,CAAC,CAAC;QAElF,wIAAwI;QACxI,6NAA6N;QAE7N,+FAA+F;QAC/F,kBAAkB;QAClB,IAAI,gBAAgB,GAAW,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAE1E,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE;YAC5C,gBAAgB,GAAG,MAAM,OAAO,MAAM,GAAG,gBAAgB,CAAC;SAC1D;QAED,MAAM,MAAM,GAAgB,iBAAiB,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;QACtG,IAAA,aAAM,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE5B,MAAM,UAAU,GAAW,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAChD,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qDAAqD,EAAE;QAC3D,MAAM,aAAa,GAAW,cAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAEpF,MAAM,OAAO,GAAW,cAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QAC/E,MAAM,WAAW,GAAW,cAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QACpF,eAAM,CAAC,IAAI,CAAC,mDAAmD,OAAO,EAAE,CAAC,CAAC;QAC1E,eAAM,CAAC,IAAI,CAAC,uDAAuD,WAAW,EAAE,CAAC,CAAC;QAElF,IAAI,gBAAgB,GAAW,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,mDAAmD;QACtH,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE;YAC5C,gBAAgB,GAAG,MAAM,OAAO,MAAM,GAAG,gBAAgB,CAAC;SAC1D;QAED,MAAM,MAAM,GAAgB,iBAAiB,CAAC,iCAAiC,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;QACjH,IAAA,aAAM,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE9B,MAAM,UAAU,GAAW,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAChD,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,kBAAkB,EAAE;QACjC,kCAAkC,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,71 +0,0 @@
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
- /** *******************************************************************
7
- * copyright (c) 2024 Red Hat, Inc.
8
- *
9
- * This program and the accompanying materials are made
10
- * available under the terms of the Eclipse Public License 2.0
11
- * which is available at https://www.eclipse.org/legal/epl-2.0/
12
- *
13
- * SPDX-License-Identifier: EPL-2.0
14
- **********************************************************************/
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('PHP 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 = 'php';
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
- suiteSetup(`Prepare login ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
34
- kubernetesCommandLineToolsExecutor.loginToOcp();
35
- });
36
- test(`Create ${devfileID} workspace`, async function () {
37
- const randomPref = crypto_1.default.randomBytes(4).toString('hex');
38
- kubernetesCommandLineToolsExecutor.namespace = API_TEST_CONSTANTS_1.API_TEST_CONSTANTS.TS_API_TEST_NAMESPACE;
39
- devfileContent = devfilesRegistryHelper.getDevfileContent(devfileID);
40
- const editorDevfileContent = devfilesRegistryHelper.obtainCheDevFileEditorFromCheConfigMap('editors-definitions');
41
- devfileName = yaml_1.default.parse(devfileContent).metadata.name;
42
- const uniqueName = yaml_1.default.parse(devfileContent).metadata.name + randomPref;
43
- kubernetesCommandLineToolsExecutor.workspaceName = uniqueName;
44
- devWorkspaceConfigurationHelper = new DevWorkspaceConfigurationHelper_1.DevWorkspaceConfigurationHelper({
45
- editorContent: editorDevfileContent,
46
- devfileContent: devfileContent
47
- });
48
- devfileContext = await devWorkspaceConfigurationHelper.generateDevfileContext();
49
- if (devfileContext.devWorkspace.metadata) {
50
- devfileContext.devWorkspace.metadata.name = uniqueName;
51
- }
52
- const devWorkspaceConfigurationYamlString = devWorkspaceConfigurationHelper.getDevWorkspaceConfigurationYamlAsString(devfileContext);
53
- const output = kubernetesCommandLineToolsExecutor.applyAndWaitDevWorkspace(devWorkspaceConfigurationYamlString);
54
- (0, chai_1.expect)(output.stdout).contains('condition met');
55
- });
56
- test('Check running application', function () {
57
- const workdir = yaml_1.default.parse(devfileContent).commands[0].exec.workingDir;
58
- const commandLine = yaml_1.default.parse(devfileContent).commands[0].exec.commandLine;
59
- const containerName = yaml_1.default.parse(devfileContent).commands[0].exec.component;
60
- Logger_1.Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
61
- Logger_1.Logger.info(`commandLine from exec section of DevWorkspace file: ${commandLine}`);
62
- const runCommandInBash = `cd ${workdir} && ${commandLine}`;
63
- const output = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
64
- (0, chai_1.expect)(output.code).eqls(0);
65
- (0, chai_1.expect)(output.stdout.trim()).contains('Hello, world!');
66
- });
67
- suiteTeardown('Delete DevWorkspace', function () {
68
- kubernetesCommandLineToolsExecutor.deleteDevWorkspace(devfileName);
69
- });
70
- });
71
- //# sourceMappingURL=PhpDevFileAPI.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PhpDevFileAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/PhpDevFileAPI.spec.ts"],"names":[],"mappings":"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"}
@@ -1,46 +0,0 @@
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 BASE_TEST_CONSTANTS_1 = require("../../constants/BASE_TEST_CONSTANTS");
11
- const inversify_config_1 = require("../../configs/inversify.config");
12
- const inversify_types_1 = require("../../configs/inversify.types");
13
- suite(`Test defining pod overrides via attribute ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
14
- const pathToSampleFile = path_1.default.resolve(`resources/pod-overrides${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED() ? '-airgap' : ''}.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 pod-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.attributes['pod-overrides']).eqls({
32
- metadata: {
33
- annotations: {
34
- 'io.kubernetes.cri-o.userns-mode': 'auto:size=65536;map-to-root=true',
35
- 'io.openshift.userns': 'true',
36
- 'openshift.io/scc': 'container-build'
37
- }
38
- },
39
- spec: {
40
- runtimeClassName: 'kata',
41
- schedulerName: 'stork'
42
- }
43
- });
44
- });
45
- });
46
- //# sourceMappingURL=PodOverridesAPI.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PodOverridesAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/PodOverridesAPI.spec.ts"],"names":[],"mappings":";;;;;AAUA,4CAAoB;AACpB,gDAAwB;AACxB,gDAAwB;AACxB,+BAA8B;AAE9B,6EAA0E;AAC1E,qEAA8D;AAC9D,mEAAwD;AAExD,KAAK,CAAC,6CAA6C,yCAAmB,CAAC,gBAAgB,EAAE,EAAE;IAC1F,MAAM,gBAAgB,GAAW,cAAI,CAAC,OAAO,CAC5C,0BAA0B,yCAAmB,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,CAC/F,CAAC;IACF,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;IAC7E,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,2DAA2D,EAAE;QACjE,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,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;YACjF,QAAQ,EAAE;gBACT,WAAW,EAAE;oBACZ,iCAAiC,EAAE,kCAAkC;oBACrE,qBAAqB,EAAE,MAAM;oBAC7B,kBAAkB,EAAE,iBAAiB;iBACrC;aACD;YACD,IAAI,EAAE;gBACL,gBAAgB,EAAE,MAAM;gBACxB,aAAa,EAAE,OAAO;aACtB;SACD,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,71 +0,0 @@
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('Python 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 = 'python';
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
- suiteSetup(`Prepare login ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
34
- kubernetesCommandLineToolsExecutor.loginToOcp();
35
- });
36
- test(`Create ${devfileID} workspace`, async function () {
37
- const randomPref = crypto_1.default.randomBytes(4).toString('hex');
38
- kubernetesCommandLineToolsExecutor.namespace = API_TEST_CONSTANTS_1.API_TEST_CONSTANTS.TS_API_TEST_NAMESPACE;
39
- devfileContent = devfilesRegistryHelper.getDevfileContent(devfileID);
40
- const editorDevfileContent = devfilesRegistryHelper.obtainCheDevFileEditorFromCheConfigMap('editors-definitions');
41
- devfileName = yaml_1.default.parse(devfileContent).metadata.name;
42
- const uniqueName = yaml_1.default.parse(devfileContent).metadata.name + randomPref;
43
- kubernetesCommandLineToolsExecutor.workspaceName = uniqueName;
44
- devWorkspaceConfigurationHelper = new DevWorkspaceConfigurationHelper_1.DevWorkspaceConfigurationHelper({
45
- editorContent: editorDevfileContent,
46
- devfileContent: devfileContent
47
- });
48
- devfileContext = await devWorkspaceConfigurationHelper.generateDevfileContext();
49
- if (devfileContext.devWorkspace.metadata) {
50
- devfileContext.devWorkspace.metadata.name = uniqueName;
51
- }
52
- const devWorkspaceConfigurationYamlString = devWorkspaceConfigurationHelper.getDevWorkspaceConfigurationYamlAsString(devfileContext);
53
- const output = kubernetesCommandLineToolsExecutor.applyAndWaitDevWorkspace(devWorkspaceConfigurationYamlString);
54
- (0, chai_1.expect)(output.stdout).contains('condition met');
55
- });
56
- test('Check running application', function () {
57
- const workdir = yaml_1.default.parse(devfileContent).commands[0].exec.workingDir;
58
- const commandLine = yaml_1.default.parse(devfileContent).commands[0].exec.commandLine;
59
- const containerName = yaml_1.default.parse(devfileContent).commands[0].exec.component;
60
- Logger_1.Logger.info(`workdir from exec section of DevWorkspace file: ${workdir}`);
61
- Logger_1.Logger.info(`commandLine from exec section of DevWorkspace file: ${commandLine}`);
62
- const runCommandInBash = `cd ${workdir} && ${commandLine}`;
63
- const output = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
64
- (0, chai_1.expect)(output.code).eqls(0);
65
- (0, chai_1.expect)(output.stdout.trim()).contains('Hello, world!');
66
- });
67
- suiteTeardown('Delete DevWorkspace', function () {
68
- kubernetesCommandLineToolsExecutor.deleteDevWorkspace(devfileName);
69
- });
70
- });
71
- //# sourceMappingURL=PythonDevFileAPI.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PythonDevFileAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/PythonDevFileAPI.spec.ts"],"names":[],"mappings":"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"}