@eclipse-che/che-e2e 7.121.0-next-e9dc673 → 7.121.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 (256) hide show
  1. package/index.ts +5 -5
  2. package/package.json +1 -1
  3. package/dist/configs/inversify.config.js +0 -121
  4. package/dist/configs/inversify.config.js.map +0 -1
  5. package/dist/configs/inversify.types.js +0 -73
  6. package/dist/configs/inversify.types.js.map +0 -1
  7. package/dist/configs/mocharc.js +0 -42
  8. package/dist/configs/mocharc.js.map +0 -1
  9. package/dist/constants/API_TEST_CONSTANTS.js +0 -60
  10. package/dist/constants/API_TEST_CONSTANTS.js.map +0 -1
  11. package/dist/constants/BASE_TEST_CONSTANTS.js +0 -109
  12. package/dist/constants/BASE_TEST_CONSTANTS.js.map +0 -1
  13. package/dist/constants/CHROME_DRIVER_CONSTANTS.js +0 -40
  14. package/dist/constants/CHROME_DRIVER_CONSTANTS.js.map +0 -1
  15. package/dist/constants/EDITOR_CONSTANTS.js +0 -114
  16. package/dist/constants/EDITOR_CONSTANTS.js.map +0 -1
  17. package/dist/constants/FACTORY_TEST_CONSTANTS.js +0 -87
  18. package/dist/constants/FACTORY_TEST_CONSTANTS.js.map +0 -1
  19. package/dist/constants/MOCHA_CONSTANTS.js +0 -24
  20. package/dist/constants/MOCHA_CONSTANTS.js.map +0 -1
  21. package/dist/constants/MONACO_CONSTANTS.js +0 -25
  22. package/dist/constants/MONACO_CONSTANTS.js.map +0 -1
  23. package/dist/constants/OAUTH_CONSTANTS.js +0 -53
  24. package/dist/constants/OAUTH_CONSTANTS.js.map +0 -1
  25. package/dist/constants/PLUGIN_TEST_CONSTANTS.js +0 -19
  26. package/dist/constants/PLUGIN_TEST_CONSTANTS.js.map +0 -1
  27. package/dist/constants/REPORTER_CONSTANTS.js +0 -123
  28. package/dist/constants/REPORTER_CONSTANTS.js.map +0 -1
  29. package/dist/constants/TIMEOUT_CONSTANTS.js +0 -101
  30. package/dist/constants/TIMEOUT_CONSTANTS.js.map +0 -1
  31. package/dist/driver/ChromeDriver.js +0 -77
  32. package/dist/driver/ChromeDriver.js.map +0 -1
  33. package/dist/driver/IDriver.js +0 -3
  34. package/dist/driver/IDriver.js.map +0 -1
  35. package/dist/index.js +0 -98
  36. package/dist/index.js.map +0 -1
  37. package/dist/pageobjects/dashboard/CreateWorkspace.js +0 -181
  38. package/dist/pageobjects/dashboard/CreateWorkspace.js.map +0 -1
  39. package/dist/pageobjects/dashboard/Dashboard.js +0 -208
  40. package/dist/pageobjects/dashboard/Dashboard.js.map +0 -1
  41. package/dist/pageobjects/dashboard/TrustAuthorPopup.js +0 -61
  42. package/dist/pageobjects/dashboard/TrustAuthorPopup.js.map +0 -1
  43. package/dist/pageobjects/dashboard/UserPreferences.js +0 -268
  44. package/dist/pageobjects/dashboard/UserPreferences.js.map +0 -1
  45. package/dist/pageobjects/dashboard/Workspaces.js +0 -242
  46. package/dist/pageobjects/dashboard/Workspaces.js.map +0 -1
  47. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js +0 -186
  48. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js.map +0 -1
  49. package/dist/pageobjects/git-providers/OauthPage.js +0 -218
  50. package/dist/pageobjects/git-providers/OauthPage.js.map +0 -1
  51. package/dist/pageobjects/ide/AiCodeSignInDialog.js +0 -55
  52. package/dist/pageobjects/ide/AiCodeSignInDialog.js.map +0 -1
  53. package/dist/pageobjects/ide/CheCodeLocatorLoader.js +0 -108
  54. package/dist/pageobjects/ide/CheCodeLocatorLoader.js.map +0 -1
  55. package/dist/pageobjects/ide/CommandPalette.js +0 -117
  56. package/dist/pageobjects/ide/CommandPalette.js.map +0 -1
  57. package/dist/pageobjects/ide/ExplorerView.js +0 -108
  58. package/dist/pageobjects/ide/ExplorerView.js.map +0 -1
  59. package/dist/pageobjects/ide/ExtensionsView.js +0 -162
  60. package/dist/pageobjects/ide/ExtensionsView.js.map +0 -1
  61. package/dist/pageobjects/ide/GitHubExtensionDialog.js +0 -66
  62. package/dist/pageobjects/ide/GitHubExtensionDialog.js.map +0 -1
  63. package/dist/pageobjects/ide/NotificationHandler.js +0 -83
  64. package/dist/pageobjects/ide/NotificationHandler.js.map +0 -1
  65. package/dist/pageobjects/ide/RestrictedModeButton.js +0 -57
  66. package/dist/pageobjects/ide/RestrictedModeButton.js.map +0 -1
  67. package/dist/pageobjects/ide/SourceControlView.js +0 -52
  68. package/dist/pageobjects/ide/SourceControlView.js.map +0 -1
  69. package/dist/pageobjects/ide/ViewsMoreActionsButton.js +0 -73
  70. package/dist/pageobjects/ide/ViewsMoreActionsButton.js.map +0 -1
  71. package/dist/pageobjects/login/interfaces/ICheLoginPage.js +0 -12
  72. package/dist/pageobjects/login/interfaces/ICheLoginPage.js.map +0 -1
  73. package/dist/pageobjects/login/interfaces/IOcpLoginPage.js +0 -12
  74. package/dist/pageobjects/login/interfaces/IOcpLoginPage.js.map +0 -1
  75. package/dist/pageobjects/login/kubernetes/DexLoginPage.js +0 -69
  76. package/dist/pageobjects/login/kubernetes/DexLoginPage.js.map +0 -1
  77. package/dist/pageobjects/login/kubernetes/KubernetesLoginPage.js +0 -50
  78. package/dist/pageobjects/login/kubernetes/KubernetesLoginPage.js.map +0 -1
  79. package/dist/pageobjects/login/openshift/OcpLoginPage.js +0 -88
  80. package/dist/pageobjects/login/openshift/OcpLoginPage.js.map +0 -1
  81. package/dist/pageobjects/login/openshift/OcpRedHatLoginPage.js +0 -73
  82. package/dist/pageobjects/login/openshift/OcpRedHatLoginPage.js.map +0 -1
  83. package/dist/pageobjects/login/openshift/OcpUserLoginPage.js +0 -53
  84. package/dist/pageobjects/login/openshift/OcpUserLoginPage.js.map +0 -1
  85. package/dist/pageobjects/login/openshift/RedHatLoginPage.js +0 -85
  86. package/dist/pageobjects/login/openshift/RedHatLoginPage.js.map +0 -1
  87. package/dist/pageobjects/login/openshift/RegularUserOcpCheLoginPage.js +0 -65
  88. package/dist/pageobjects/login/openshift/RegularUserOcpCheLoginPage.js.map +0 -1
  89. package/dist/pageobjects/openshift/OcpApplicationPage.js +0 -60
  90. package/dist/pageobjects/openshift/OcpApplicationPage.js.map +0 -1
  91. package/dist/pageobjects/openshift/OcpImportFromGitPage.js +0 -92
  92. package/dist/pageobjects/openshift/OcpImportFromGitPage.js.map +0 -1
  93. package/dist/pageobjects/openshift/OcpMainPage.js +0 -140
  94. package/dist/pageobjects/openshift/OcpMainPage.js.map +0 -1
  95. package/dist/pageobjects/webterminal/WebTerminalPage.js +0 -182
  96. package/dist/pageobjects/webterminal/WebTerminalPage.js.map +0 -1
  97. package/dist/specs/MochaHooks.js +0 -142
  98. package/dist/specs/MochaHooks.js.map +0 -1
  99. package/dist/specs/SmokeTest.spec.js +0 -58
  100. package/dist/specs/SmokeTest.spec.js.map +0 -1
  101. package/dist/specs/api/AnsibleDevFileAPI.spec.js +0 -256
  102. package/dist/specs/api/AnsibleDevFileAPI.spec.js.map +0 -1
  103. package/dist/specs/api/BuildPushRunPodmanContainerAPI.spec.js +0 -147
  104. package/dist/specs/api/BuildPushRunPodmanContainerAPI.spec.js.map +0 -1
  105. package/dist/specs/api/ContainerOverridesAPI.spec.js +0 -40
  106. package/dist/specs/api/ContainerOverridesAPI.spec.js.map +0 -1
  107. package/dist/specs/api/CppDevFileAPI.spec.js +0 -87
  108. package/dist/specs/api/CppDevFileAPI.spec.js.map +0 -1
  109. package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js +0 -99
  110. package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js.map +0 -1
  111. package/dist/specs/api/DotnetDevFileAPI.spec.js +0 -89
  112. package/dist/specs/api/DotnetDevFileAPI.spec.js.map +0 -1
  113. package/dist/specs/api/EmptyWorkspaceAPI.spec.js +0 -60
  114. package/dist/specs/api/EmptyWorkspaceAPI.spec.js.map +0 -1
  115. package/dist/specs/api/GoDevFileAPI.spec.js +0 -82
  116. package/dist/specs/api/GoDevFileAPI.spec.js.map +0 -1
  117. package/dist/specs/api/InbuiltApplicationDevWorkspacesAPI.spec.js +0 -97
  118. package/dist/specs/api/InbuiltApplicationDevWorkspacesAPI.spec.js.map +0 -1
  119. package/dist/specs/api/JBossEapDevFileAPI.spec.js +0 -127
  120. package/dist/specs/api/JBossEapDevFileAPI.spec.js.map +0 -1
  121. package/dist/specs/api/LombokDevFileAPI.spec.js +0 -81
  122. package/dist/specs/api/LombokDevFileAPI.spec.js.map +0 -1
  123. package/dist/specs/api/NodeJSMongoDBDevFileAPI.spec.js +0 -81
  124. package/dist/specs/api/NodeJSMongoDBDevFileAPI.spec.js.map +0 -1
  125. package/dist/specs/api/NodeJsExpressDevFileAPI.spec.js +0 -130
  126. package/dist/specs/api/NodeJsExpressDevFileAPI.spec.js.map +0 -1
  127. package/dist/specs/api/PhpDevFileAPI.spec.js +0 -71
  128. package/dist/specs/api/PhpDevFileAPI.spec.js.map +0 -1
  129. package/dist/specs/api/PodOverridesAPI.spec.js +0 -46
  130. package/dist/specs/api/PodOverridesAPI.spec.js.map +0 -1
  131. package/dist/specs/api/PythonDevFileAPI.spec.js +0 -71
  132. package/dist/specs/api/PythonDevFileAPI.spec.js.map +0 -1
  133. package/dist/specs/api/QuarkusDevFileAPI.spec.js +0 -97
  134. package/dist/specs/api/QuarkusDevFileAPI.spec.js.map +0 -1
  135. package/dist/specs/dashboard-samples/Documentation.spec.js +0 -118
  136. package/dist/specs/dashboard-samples/Documentation.spec.js.map +0 -1
  137. package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js +0 -60
  138. package/dist/specs/dashboard-samples/EmptyWorkspace.spec.js.map +0 -1
  139. package/dist/specs/dashboard-samples/Quarkus.spec.js +0 -64
  140. package/dist/specs/dashboard-samples/Quarkus.spec.js.map +0 -1
  141. package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js +0 -345
  142. package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js.map +0 -1
  143. package/dist/specs/dashboard-samples/StartWorkspaceUsingDesktopEditors.spec.js +0 -171
  144. package/dist/specs/dashboard-samples/StartWorkspaceUsingDesktopEditors.spec.js.map +0 -1
  145. package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js +0 -155
  146. package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js.map +0 -1
  147. package/dist/specs/factory/Factory.spec.js +0 -183
  148. package/dist/specs/factory/Factory.spec.js.map +0 -1
  149. package/dist/specs/factory/FactoryWithGitRepoOptions.spec.js +0 -63
  150. package/dist/specs/factory/FactoryWithGitRepoOptions.spec.js.map +0 -1
  151. package/dist/specs/factory/NoSetupRepoFactory.spec.js +0 -212
  152. package/dist/specs/factory/NoSetupRepoFactory.spec.js.map +0 -1
  153. package/dist/specs/factory/RefusedOAuthFactory.spec.js +0 -239
  154. package/dist/specs/factory/RefusedOAuthFactory.spec.js.map +0 -1
  155. package/dist/specs/factory/SshUrlNoOauthPatFactory.spec.js +0 -202
  156. package/dist/specs/factory/SshUrlNoOauthPatFactory.spec.js.map +0 -1
  157. package/dist/specs/miscellaneous/CreateWorkspaceWithExistedName.spec.js +0 -77
  158. package/dist/specs/miscellaneous/CreateWorkspaceWithExistedName.spec.js.map +0 -1
  159. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromEmptyWorkspaceSample.spec.js +0 -106
  160. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromEmptyWorkspaceSample.spec.js.map +0 -1
  161. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromGitUrl.spec.js +0 -113
  162. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromGitUrl.spec.js.map +0 -1
  163. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromSample.spec.js +0 -116
  164. package/dist/specs/miscellaneous/CreateWorkspaceWithExistingNameFromSample.spec.js.map +0 -1
  165. package/dist/specs/miscellaneous/CustomOpenVSXRegistry.spec.js +0 -205
  166. package/dist/specs/miscellaneous/CustomOpenVSXRegistry.spec.js.map +0 -1
  167. package/dist/specs/miscellaneous/ExtensionActivationTest.spec.js +0 -129
  168. package/dist/specs/miscellaneous/ExtensionActivationTest.spec.js.map +0 -1
  169. package/dist/specs/miscellaneous/KubedockPodmanPersistUserHomeTest.spec.js +0 -121
  170. package/dist/specs/miscellaneous/KubedockPodmanPersistUserHomeTest.spec.js.map +0 -1
  171. package/dist/specs/miscellaneous/KubedockPodmanTest.spec.js +0 -103
  172. package/dist/specs/miscellaneous/KubedockPodmanTest.spec.js.map +0 -1
  173. package/dist/specs/miscellaneous/PredefinedNamespace.spec.js +0 -111
  174. package/dist/specs/miscellaneous/PredefinedNamespace.spec.js.map +0 -1
  175. package/dist/specs/miscellaneous/RenameWorkspace.spec.js +0 -116
  176. package/dist/specs/miscellaneous/RenameWorkspace.spec.js.map +0 -1
  177. package/dist/specs/miscellaneous/RevokeOauth.spec.js +0 -29
  178. package/dist/specs/miscellaneous/RevokeOauth.spec.js.map +0 -1
  179. package/dist/specs/miscellaneous/UserPreferencesTest.spec.js +0 -26
  180. package/dist/specs/miscellaneous/UserPreferencesTest.spec.js.map +0 -1
  181. package/dist/specs/miscellaneous/UserSecretsInWorkspace.spec.js +0 -78
  182. package/dist/specs/miscellaneous/UserSecretsInWorkspace.spec.js.map +0 -1
  183. package/dist/specs/miscellaneous/VsixInstallationDisableTest.spec.js +0 -196
  184. package/dist/specs/miscellaneous/VsixInstallationDisableTest.spec.js.map +0 -1
  185. package/dist/specs/miscellaneous/WorkspaceBackupRestore.spec.js +0 -208
  186. package/dist/specs/miscellaneous/WorkspaceBackupRestore.spec.js.map +0 -1
  187. package/dist/specs/miscellaneous/WorkspaceIdleTimeout.spec.js +0 -84
  188. package/dist/specs/miscellaneous/WorkspaceIdleTimeout.spec.js.map +0 -1
  189. package/dist/specs/miscellaneous/WorkspaceRunTimeout.spec.js +0 -84
  190. package/dist/specs/miscellaneous/WorkspaceRunTimeout.spec.js.map +0 -1
  191. package/dist/specs/miscellaneous/WorkspaceWithParent.spec.js +0 -101
  192. package/dist/specs/miscellaneous/WorkspaceWithParent.spec.js.map +0 -1
  193. package/dist/specs/web-terminal/WebTerminalTest.spec.js +0 -47
  194. package/dist/specs/web-terminal/WebTerminalTest.spec.js.map +0 -1
  195. package/dist/specs/web-terminal/WebTerminalUnderAdmin.spec.js +0 -82
  196. package/dist/specs/web-terminal/WebTerminalUnderAdmin.spec.js.map +0 -1
  197. package/dist/specs/web-terminal/WebTerminalUnderRegularUser.spec.js +0 -78
  198. package/dist/specs/web-terminal/WebTerminalUnderRegularUser.spec.js.map +0 -1
  199. package/dist/suites/devfile-acceptance-test-suite/DynamicallyGeneratingAPITest.suite.js +0 -13
  200. package/dist/suites/devfile-acceptance-test-suite/DynamicallyGeneratingAPITest.suite.js.map +0 -1
  201. package/dist/suites/disconnected-ocp/APITest.suite.js +0 -14
  202. package/dist/suites/disconnected-ocp/APITest.suite.js.map +0 -1
  203. package/dist/suites/disconnected-ocp/DynamicallyGeneratingAPITest.suite.js +0 -13
  204. package/dist/suites/disconnected-ocp/DynamicallyGeneratingAPITest.suite.js.map +0 -1
  205. package/dist/suites/disconnected-ocp/UITest.suite.js +0 -19
  206. package/dist/suites/disconnected-ocp/UITest.suite.js.map +0 -1
  207. package/dist/suites/online-ocp/APITest.suite.js +0 -15
  208. package/dist/suites/online-ocp/APITest.suite.js.map +0 -1
  209. package/dist/suites/online-ocp/DynamicallyGeneratingAPITest.suite.js +0 -13
  210. package/dist/suites/online-ocp/DynamicallyGeneratingAPITest.suite.js.map +0 -1
  211. package/dist/suites/online-ocp/UITest.suite.js +0 -23
  212. package/dist/suites/online-ocp/UITest.suite.js.map +0 -1
  213. package/dist/tests-library/LoginTests.js +0 -76
  214. package/dist/tests-library/LoginTests.js.map +0 -1
  215. package/dist/tests-library/ProjectAndFileTests.js +0 -230
  216. package/dist/tests-library/ProjectAndFileTests.js.map +0 -1
  217. package/dist/tests-library/WorkspaceHandlingTests.js +0 -219
  218. package/dist/tests-library/WorkspaceHandlingTests.js.map +0 -1
  219. package/dist/utils/BrowserTabsUtil.js +0 -124
  220. package/dist/utils/BrowserTabsUtil.js.map +0 -1
  221. package/dist/utils/CheReporter.js +0 -238
  222. package/dist/utils/CheReporter.js.map +0 -1
  223. package/dist/utils/DevWorkspaceConfigurationHelper.js +0 -145
  224. package/dist/utils/DevWorkspaceConfigurationHelper.js.map +0 -1
  225. package/dist/utils/DevfilesHelper.js +0 -177
  226. package/dist/utils/DevfilesHelper.js.map +0 -1
  227. package/dist/utils/DriverHelper.js +0 -609
  228. package/dist/utils/DriverHelper.js.map +0 -1
  229. package/dist/utils/IContextParams.js +0 -12
  230. package/dist/utils/IContextParams.js.map +0 -1
  231. package/dist/utils/IKubernetesCommandLineToolsExecutor.js +0 -3
  232. package/dist/utils/IKubernetesCommandLineToolsExecutor.js.map +0 -1
  233. package/dist/utils/KubernetesCommandLineToolsExecutor.js +0 -338
  234. package/dist/utils/KubernetesCommandLineToolsExecutor.js.map +0 -1
  235. package/dist/utils/Logger.js +0 -146
  236. package/dist/utils/Logger.js.map +0 -1
  237. package/dist/utils/ScreenCatcher.js +0 -114
  238. package/dist/utils/ScreenCatcher.js.map +0 -1
  239. package/dist/utils/ShellExecutor.js +0 -47
  240. package/dist/utils/ShellExecutor.js.map +0 -1
  241. package/dist/utils/StringUtil.js +0 -107
  242. package/dist/utils/StringUtil.js.map +0 -1
  243. package/dist/utils/request-handlers/CheApiRequestHandler.js +0 -128
  244. package/dist/utils/request-handlers/CheApiRequestHandler.js.map +0 -1
  245. package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js +0 -55
  246. package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js.map +0 -1
  247. package/dist/utils/request-handlers/headers/IAuthorizationHeaderHandler.js +0 -12
  248. package/dist/utils/request-handlers/headers/IAuthorizationHeaderHandler.js.map +0 -1
  249. package/dist/utils/workspace/ApiUrlResolver.js +0 -117
  250. package/dist/utils/workspace/ApiUrlResolver.js.map +0 -1
  251. package/dist/utils/workspace/ITestWorkspaceUtil.js +0 -12
  252. package/dist/utils/workspace/ITestWorkspaceUtil.js.map +0 -1
  253. package/dist/utils/workspace/TestWorkspaceUtil.js +0 -202
  254. package/dist/utils/workspace/TestWorkspaceUtil.js.map +0 -1
  255. package/dist/utils/workspace/WorkspaceStatus.js +0 -19
  256. package/dist/utils/workspace/WorkspaceStatus.js.map +0 -1
@@ -1,147 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"BuildPushRunPodmanContainerAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/BuildPushRunPodmanContainerAPI.spec.ts"],"names":[],"mappings":"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"}
@@ -1,40 +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 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
@@ -1 +0,0 @@
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"}
@@ -1,87 +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('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
@@ -1 +0,0 @@
1
- {"version":3,"file":"CppDevFileAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/CppDevFileAPI.spec.ts"],"names":[],"mappings":"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"}
@@ -1,99 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const DevWorkspaceConfigurationHelper_1 = require("../../utils/DevWorkspaceConfigurationHelper");
4
- const chai_1 = require("chai");
5
- const StringUtil_1 = require("../../utils/StringUtil");
6
- const Logger_1 = require("../../utils/Logger");
7
- const inversify_config_1 = require("../../configs/inversify.config");
8
- const inversify_types_1 = require("../../configs/inversify.types");
9
- const MOCHA_CONSTANTS_1 = require("../../constants/MOCHA_CONSTANTS");
10
- const API_TEST_CONSTANTS_1 = require("../../constants/API_TEST_CONSTANTS");
11
- const BASE_TEST_CONSTANTS_1 = require("../../constants/BASE_TEST_CONSTANTS");
12
- /**
13
- * dynamically generating tests
14
- * info: https://mochajs.org/#delayed-root-suite
15
- */
16
- void (async function () {
17
- const devfilesRegistryHelper = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.DevfilesRegistryHelper);
18
- let devfileSamples = [];
19
- if (MOCHA_CONSTANTS_1.MOCHA_CONSTANTS.MOCHA_DELAYED_SUITE &&
20
- !API_TEST_CONSTANTS_1.API_TEST_CONSTANTS.TS_API_ACCEPTANCE_TEST_REGISTRY_URL().includes(BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TS_SELENIUM_BASE_URL)) {
21
- devfileSamples = await devfilesRegistryHelper.collectPathsToDevfilesFromRegistry(false);
22
- }
23
- for (const devfileSample of devfileSamples) {
24
- suite(`Devfile acceptance test suite for ${devfileSample.name}`, function () {
25
- this.bail(false);
26
- this.timeout(1500000); // 25 minutes because build of Quarkus sample takes 20+ minutes
27
- let devWorkspaceConfigurationHelper;
28
- let kubernetesCommandLineToolsExecutor;
29
- let containerTerminal;
30
- let devfileContext;
31
- let devWorkspaceName;
32
- let clonedProjectName;
33
- let containerWorkDir;
34
- const devfilesBuildCommands = [];
35
- test('Get DevWorkspace configuration', async function () {
36
- devWorkspaceConfigurationHelper = new DevWorkspaceConfigurationHelper_1.DevWorkspaceConfigurationHelper({
37
- devfileUrl: devfileSample.link
38
- });
39
- devfileContext = await devWorkspaceConfigurationHelper.generateDevfileContext();
40
- devWorkspaceName = devfileContext?.devWorkspace?.metadata?.name;
41
- kubernetesCommandLineToolsExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.KubernetesCommandLineToolsExecutor);
42
- kubernetesCommandLineToolsExecutor.workspaceName = devWorkspaceName;
43
- containerTerminal = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ContainerTerminal);
44
- kubernetesCommandLineToolsExecutor.loginToOcp();
45
- });
46
- test('Collect build commands from the devfile', function () {
47
- if (devfileContext.devfile.commands === undefined) {
48
- Logger_1.Logger.info('Devfile does not contains any commands.');
49
- }
50
- else {
51
- devfileContext.devfile?.commands?.forEach((command) => {
52
- if (command.exec?.group?.kind === 'build') {
53
- Logger_1.Logger.debug(`Build command found: ${command.exec.commandLine}`);
54
- devfilesBuildCommands.push(command);
55
- }
56
- });
57
- }
58
- });
59
- test('Create DevWorkspace', function () {
60
- const devWorkspaceConfigurationYamlString = devWorkspaceConfigurationHelper.getDevWorkspaceConfigurationYamlAsString(devfileContext);
61
- const applyOutput = kubernetesCommandLineToolsExecutor.applyYamlConfigurationAsStringOutput(devWorkspaceConfigurationYamlString);
62
- (0, chai_1.expect)(applyOutput.stdout)
63
- .contains('devworkspacetemplate')
64
- .and.contains('devworkspace')
65
- .and.contains.oneOf(['created', 'configured']);
66
- });
67
- test('Wait until DevWorkspace has status "ready"', function () {
68
- (0, chai_1.expect)(kubernetesCommandLineToolsExecutor.waitDevWorkspace().stdout).contains('condition met');
69
- });
70
- test('Check if project was created', function () {
71
- clonedProjectName = StringUtil_1.StringUtil.getProjectNameFromGitUrl(devfileSample.link);
72
- (0, chai_1.expect)(containerTerminal.ls().stdout).includes(clonedProjectName);
73
- });
74
- test('Check if project files are imported', function () {
75
- containerWorkDir = containerTerminal.pwd().stdout.replace('\n', '');
76
- (0, chai_1.expect)(containerTerminal.ls(`${containerWorkDir}/${clonedProjectName}`).stdout).includes('devfile.yaml');
77
- });
78
- test('Check if build commands returns success', function () {
79
- if (devfilesBuildCommands.length === 0) {
80
- Logger_1.Logger.info('Devfile does not contains build commands.');
81
- }
82
- else {
83
- devfilesBuildCommands.forEach((command) => {
84
- Logger_1.Logger.info(`command.exec: ${JSON.stringify(command.exec)}`);
85
- const commandString = StringUtil_1.StringUtil.updateCommandEnvsToShStyle(`cd ${command.exec.workingDir} && ${command.exec.commandLine}`);
86
- Logger_1.Logger.info(`Full build command to be executed: ${commandString}`);
87
- const output = containerTerminal.execInContainerCommand(commandString, command.exec.component);
88
- (0, chai_1.expect)(output.code).eqls(0);
89
- });
90
- }
91
- });
92
- test('Delete DevWorkspace', function () {
93
- kubernetesCommandLineToolsExecutor.deleteDevWorkspace();
94
- });
95
- });
96
- }
97
- run();
98
- })();
99
- //# sourceMappingURL=DevfileAcceptanceTestAPI.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DevfileAcceptanceTestAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/DevfileAcceptanceTestAPI.spec.ts"],"names":[],"mappings":"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"}
@@ -1,89 +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('Dotnet 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 = 'dotnet';
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 devfile commands', function () {
57
- const workdir = yaml_1.default.parse(devfileContent).commands[0].exec.workingDir;
58
- const containerName = yaml_1.default.parse(devfileContent).commands[0].exec.component;
59
- const updateCommandLine = yaml_1.default.parse(devfileContent).commands[0].exec.commandLine;
60
- Logger_1.Logger.info(`workdir from exec section of DevFile: ${workdir}`);
61
- Logger_1.Logger.info(`containerName from exec section of DevFile: ${containerName}`);
62
- Logger_1.Logger.info('"Test \'update-dependencies\' command execution"');
63
- Logger_1.Logger.info(`commandLine from exec section of DevFile file: ${updateCommandLine}`);
64
- const runCommandInBash = `cd ${workdir} && ${updateCommandLine}`;
65
- const output = containerTerminal.execInContainerCommand(runCommandInBash, containerName);
66
- (0, chai_1.expect)(output.code).eqls(0);
67
- (0, chai_1.expect)(output.stdout.trim()).contains('Restored /projects/dotnet-web-simple/web.csproj');
68
- Logger_1.Logger.info('"Test \'build\' command execution"');
69
- const buildCommandLine = yaml_1.default.parse(devfileContent).commands[1].exec.commandLine;
70
- Logger_1.Logger.info(`commandLine from exec section of DevFile: ${buildCommandLine}`);
71
- const runCommandInBash2 = `cd ${workdir} && ${buildCommandLine}`;
72
- const output2 = containerTerminal.execInContainerCommand(runCommandInBash2, containerName);
73
- (0, chai_1.expect)(output2.code).eqls(0);
74
- (0, chai_1.expect)(output2.stdout.trim()).contains('Build succeeded');
75
- Logger_1.Logger.info('"Test \'run\' command execution"');
76
- const runCommandLine = yaml_1.default.parse(devfileContent).commands[2].exec.commandLine;
77
- Logger_1.Logger.info(`commandLine from exec section of DevFile: ${runCommandLine}`);
78
- const runCommandInBash3 = `cd ${workdir} && sh -c "(${runCommandLine} > server.log 2>&1 &) && sleep 20s && exit"`;
79
- const output3 = containerTerminal.execInContainerCommand(runCommandInBash3, containerName);
80
- (0, chai_1.expect)(output3.code).eqls(0);
81
- const logOutput = containerTerminal.execInContainerCommand(`cat ${workdir}/server.log`, containerName);
82
- Logger_1.Logger.info(`Log output: ${logOutput.stdout}`);
83
- (0, chai_1.expect)(logOutput.stdout.trim()).contains('Content root path: /projects/dotnet-web-simple');
84
- });
85
- suiteTeardown('Delete DevWorkspace', function () {
86
- kubernetesCommandLineToolsExecutor.deleteDevWorkspace(devfileName);
87
- });
88
- });
89
- //# sourceMappingURL=DotnetDevFileAPI.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DotnetDevFileAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/DotnetDevFileAPI.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,yBAAyB,EAAE;IAChC,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,QAAQ,CAAC;IACnC,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,WAAW,SAAS,YAAY,EAAE,KAAK;QAC3C,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,wBAAwB,EAAE;QAC9B,MAAM,OAAO,GAAW,cAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QAC/E,MAAM,aAAa,GAAW,cAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QACpF,MAAM,iBAAiB,GAAW,cAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QAC1F,eAAM,CAAC,IAAI,CAAC,yCAAyC,OAAO,EAAE,CAAC,CAAC;QAChE,eAAM,CAAC,IAAI,CAAC,+CAA+C,aAAa,EAAE,CAAC,CAAC;QAE5E,eAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAChE,eAAM,CAAC,IAAI,CAAC,kDAAkD,iBAAiB,EAAE,CAAC,CAAC;QACnF,MAAM,gBAAgB,GAAW,MAAM,OAAO,OAAO,iBAAiB,EAAE,CAAC;QACzE,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;QAC5B,IAAA,aAAM,EAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,iDAAiD,CAAC,CAAC;QAEzF,eAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAClD,MAAM,gBAAgB,GAAW,cAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QACzF,eAAM,CAAC,IAAI,CAAC,6CAA6C,gBAAgB,EAAE,CAAC,CAAC;QAC7E,MAAM,iBAAiB,GAAW,MAAM,OAAO,OAAO,gBAAgB,EAAE,CAAC;QACzE,MAAM,OAAO,GAAgB,iBAAiB,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;QACxG,IAAA,aAAM,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAA,aAAM,EAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAE1D,eAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAChD,MAAM,cAAc,GAAW,cAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QACvF,eAAM,CAAC,IAAI,CAAC,6CAA6C,cAAc,EAAE,CAAC,CAAC;QAC3E,MAAM,iBAAiB,GAAW,MAAM,OAAO,eAAe,cAAc,6CAA6C,CAAC;QAC1H,MAAM,OAAO,GAAgB,iBAAiB,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;QACxG,IAAA,aAAM,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,SAAS,GAAgB,iBAAiB,CAAC,sBAAsB,CAAC,OAAO,OAAO,aAAa,EAAE,aAAa,CAAC,CAAC;QACpH,eAAM,CAAC,IAAI,CAAC,eAAe,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/C,IAAA,aAAM,EAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,gDAAgD,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,qBAAqB,EAAE;QACpC,kCAAkC,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,60 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const chai_1 = require("chai");
4
- const StringUtil_1 = require("../../utils/StringUtil");
5
- const DevWorkspaceConfigurationHelper_1 = require("../../utils/DevWorkspaceConfigurationHelper");
6
- const API_TEST_CONSTANTS_1 = require("../../constants/API_TEST_CONSTANTS");
7
- const BASE_TEST_CONSTANTS_1 = require("../../constants/BASE_TEST_CONSTANTS");
8
- const inversify_config_1 = require("../../configs/inversify.config");
9
- const inversify_types_1 = require("../../configs/inversify.types");
10
- suite('Empty workspace API test', function () {
11
- // works only for root user
12
- const namespace = API_TEST_CONSTANTS_1.API_TEST_CONSTANTS.TS_API_TEST_NAMESPACE;
13
- let clonedProjectName;
14
- let containerWorkDir;
15
- let devWorkspaceConfigurationHelper;
16
- let kubernetesCommandLineToolsExecutor;
17
- let devfileContext;
18
- let devWorkspaceName;
19
- let containerTerminal;
20
- const gitRepository = 'https://github.com/crw-qe/web-nodejs-sample';
21
- suiteSetup(`Create empty workspace with OC client ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, async function () {
22
- const workspaceName = 'empty-' + Math.floor(Math.random() * 1000);
23
- const devfileContent = 'schemaVersion: 2.2.0\n' + 'metadata:\n' + ` name: ${workspaceName}\n`;
24
- const editorContent = '';
25
- devWorkspaceConfigurationHelper = new DevWorkspaceConfigurationHelper_1.DevWorkspaceConfigurationHelper({
26
- devfileContent,
27
- editorContent
28
- });
29
- devfileContext = await devWorkspaceConfigurationHelper.generateDevfileContext();
30
- devWorkspaceName = devfileContext?.devWorkspace?.metadata?.name;
31
- kubernetesCommandLineToolsExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.KubernetesCommandLineToolsExecutor);
32
- kubernetesCommandLineToolsExecutor.workspaceName = devWorkspaceName;
33
- kubernetesCommandLineToolsExecutor.namespace = namespace;
34
- containerTerminal = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ContainerTerminal);
35
- });
36
- test('Create empty workspace', function () {
37
- kubernetesCommandLineToolsExecutor.loginToOcp();
38
- const devWorkspaceConfigurationYamlString = devWorkspaceConfigurationHelper.getDevWorkspaceConfigurationYamlAsString(devfileContext);
39
- const output = kubernetesCommandLineToolsExecutor.applyAndWaitDevWorkspace(devWorkspaceConfigurationYamlString);
40
- (0, chai_1.expect)(output.stdout).contains('condition met');
41
- });
42
- suite(`Clone public repo without previous setup ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
43
- test('Check if public repo can be cloned', function () {
44
- containerWorkDir = containerTerminal.pwd().stdout.replace('\n', '');
45
- const cloneOutput = containerTerminal.gitClone(gitRepository);
46
- (0, chai_1.expect)(cloneOutput.stdout + cloneOutput.stderr).includes('Cloning');
47
- });
48
- test('Check if project was created', function () {
49
- clonedProjectName = StringUtil_1.StringUtil.getProjectNameFromGitUrl(gitRepository);
50
- (0, chai_1.expect)(containerTerminal.ls().stdout).includes(clonedProjectName);
51
- });
52
- test('Check if project files are imported', function () {
53
- (0, chai_1.expect)(containerTerminal.ls(`${containerWorkDir}/${clonedProjectName}`).stdout).includes(BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TS_SELENIUM_PROJECT_ROOT_FILE_NAME);
54
- });
55
- });
56
- suiteTeardown('Delete workspace', function () {
57
- kubernetesCommandLineToolsExecutor.deleteDevWorkspace();
58
- });
59
- });
60
- //# sourceMappingURL=EmptyWorkspaceAPI.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmptyWorkspaceAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/EmptyWorkspaceAPI.spec.ts"],"names":[],"mappings":"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"}