@eclipse-che/che-e2e 7.64.0-dev-2c00276 → 7.64.1-dev-43c3317

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 (89) hide show
  1. package/configs/inversify.config.ts +10 -4
  2. package/configs/inversify.types.ts +3 -0
  3. package/constants/TestConstants.ts +14 -1
  4. package/constants/TimeoutConstants.ts +3 -3
  5. package/dist/configs/inversify.config.js +7 -3
  6. package/dist/configs/inversify.config.js.map +1 -1
  7. package/dist/configs/inversify.types.js +3 -0
  8. package/dist/configs/inversify.types.js.map +1 -1
  9. package/dist/constants/TestConstants.js +12 -2
  10. package/dist/constants/TestConstants.js.map +1 -1
  11. package/dist/constants/TimeoutConstants.js +3 -3
  12. package/dist/index.js +5 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/pageobjects/dashboard/Dashboard.js +5 -4
  15. package/dist/pageobjects/dashboard/Dashboard.js.map +1 -1
  16. package/dist/pageobjects/dashboard/Workspaces.js +4 -1
  17. package/dist/pageobjects/dashboard/Workspaces.js.map +1 -1
  18. package/dist/pageobjects/ide/CheCodeLocatorLoader.js +5 -0
  19. package/dist/pageobjects/ide/CheCodeLocatorLoader.js.map +1 -1
  20. package/dist/pageobjects/login/RedHatLoginPage.js +14 -15
  21. package/dist/pageobjects/login/RedHatLoginPage.js.map +1 -1
  22. package/dist/pageobjects/openshift/OcpApplicationPage.js +60 -0
  23. package/dist/pageobjects/openshift/OcpApplicationPage.js.map +1 -0
  24. package/dist/pageobjects/openshift/OcpImportFromGitPage.js +91 -0
  25. package/dist/pageobjects/openshift/OcpImportFromGitPage.js.map +1 -0
  26. package/dist/pageobjects/openshift/OcpLoginPage.js +3 -3
  27. package/dist/pageobjects/openshift/OcpLoginPage.js.map +1 -1
  28. package/dist/pageobjects/openshift/OcpMainPage.js +108 -0
  29. package/dist/pageobjects/openshift/OcpMainPage.js.map +1 -0
  30. package/dist/specs/api/CloneGitRepoAPI.spec.js +7 -7
  31. package/dist/specs/api/CloneGitRepoAPI.spec.js.map +1 -1
  32. package/dist/specs/api/ContainerOverridesAPI.spec.js +36 -0
  33. package/dist/specs/api/ContainerOverridesAPI.spec.js.map +1 -0
  34. package/dist/specs/api/PodOverridesAPI.spec.js +42 -0
  35. package/dist/specs/api/PodOverridesAPI.spec.js.map +1 -0
  36. package/dist/specs/dashboard-samples/RecomendedExtentions.spec.js +58 -19
  37. package/dist/specs/dashboard-samples/RecomendedExtentions.spec.js.map +1 -1
  38. package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js +75 -0
  39. package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js.map +1 -0
  40. package/dist/specs/factory/Factory.spec.js.map +1 -1
  41. package/dist/specs/factory/NoSetupRepoFactory.spec.js.map +1 -1
  42. package/dist/specs/factory/RefusedOAuthFactory.spec.js.map +1 -1
  43. package/dist/tests-library/LoginTests.js +19 -10
  44. package/dist/tests-library/LoginTests.js.map +1 -1
  45. package/dist/tests-library/ProjectAndFileTests.js +4 -0
  46. package/dist/tests-library/ProjectAndFileTests.js.map +1 -1
  47. package/dist/tests-library/WorkspaceHandlingTests.js +2 -2
  48. package/dist/tests-library/WorkspaceHandlingTests.js.map +1 -1
  49. package/dist/utils/BrowserTabsUtil.js +16 -1
  50. package/dist/utils/BrowserTabsUtil.js.map +1 -1
  51. package/dist/utils/CheReporter.js +6 -0
  52. package/dist/utils/CheReporter.js.map +1 -1
  53. package/dist/utils/DriverHelper.js +29 -3
  54. package/dist/utils/DriverHelper.js.map +1 -1
  55. package/dist/utils/KubernetesCommandLineToolsExecutor.js +162 -0
  56. package/dist/utils/KubernetesCommandLineToolsExecutor.js.map +1 -0
  57. package/dist/utils/ShellExecutor.js +15 -0
  58. package/dist/utils/ShellExecutor.js.map +1 -0
  59. package/index.ts +5 -1
  60. package/package.json +4 -3
  61. package/pageobjects/dashboard/Dashboard.ts +5 -4
  62. package/pageobjects/dashboard/Workspaces.ts +5 -2
  63. package/pageobjects/ide/CheCodeLocatorLoader.ts +5 -0
  64. package/pageobjects/login/RedHatLoginPage.ts +14 -16
  65. package/pageobjects/openshift/OcpApplicationPage.ts +42 -0
  66. package/pageobjects/openshift/OcpImportFromGitPage.ts +87 -0
  67. package/pageobjects/openshift/OcpLoginPage.ts +3 -3
  68. package/pageobjects/openshift/OcpMainPage.ts +109 -0
  69. package/resources/container-overrides.yaml +28 -0
  70. package/resources/pod-overrides.yaml +37 -0
  71. package/specs/api/CloneGitRepoAPI.spec.ts +8 -7
  72. package/specs/api/ContainerOverridesAPI.spec.ts +37 -0
  73. package/specs/api/PodOverridesAPI.spec.ts +43 -0
  74. package/specs/dashboard-samples/RecomendedExtentions.spec.ts +73 -21
  75. package/specs/devconsole-intergration/DevConsoleIntegration.spec.ts +98 -0
  76. package/specs/factory/Factory.spec.ts +1 -1
  77. package/specs/factory/NoSetupRepoFactory.spec.ts +1 -1
  78. package/specs/factory/RefusedOAuthFactory.spec.ts +1 -1
  79. package/tests-library/LoginTests.ts +17 -7
  80. package/tests-library/ProjectAndFileTests.ts +4 -0
  81. package/tests-library/WorkspaceHandlingTests.ts +2 -2
  82. package/utils/BrowserTabsUtil.ts +18 -3
  83. package/utils/CheReporter.ts +6 -0
  84. package/utils/DriverHelper.ts +36 -4
  85. package/utils/KubernetesCommandLineToolsExecutor.ts +167 -0
  86. package/utils/ShellExecutor.ts +13 -0
  87. package/dist/utils/OpenshiftClientExecutor.js +0 -98
  88. package/dist/utils/OpenshiftClientExecutor.js.map +0 -1
  89. package/utils/OpenshiftClientExecutor.ts +0 -117
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var OcpImportFromGitPage_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.OcpImportFromGitPage = void 0;
17
+ /*********************************************************************
18
+ * Copyright (c) 2019-2023 Red Hat, Inc.
19
+ *
20
+ * This program and the accompanying materials are made
21
+ * available under the terms of the Eclipse Public License 2.0
22
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
23
+ *
24
+ * SPDX-License-Identifier: EPL-2.0
25
+ **********************************************************************/
26
+ require("reflect-metadata");
27
+ const inversify_1 = require("inversify");
28
+ const DriverHelper_1 = require("../../utils/DriverHelper");
29
+ const inversify_types_1 = require("../../configs/inversify.types");
30
+ const selenium_webdriver_1 = require("selenium-webdriver");
31
+ const Logger_1 = require("../../utils/Logger");
32
+ const inversify_config_1 = require("../../configs/inversify.config");
33
+ let OcpImportFromGitPage = OcpImportFromGitPage_1 = class OcpImportFromGitPage {
34
+ constructor(driverHelper) {
35
+ this.driverHelper = driverHelper;
36
+ }
37
+ async enterGitRepoUrl(gitRepoUrl) {
38
+ Logger_1.Logger.debug(`${this.constructor.name}.${this.enterGitRepoUrl.name} "${gitRepoUrl}"`);
39
+ await this.driverHelper.enterValue(OcpImportFromGitPage_1.GIT_URL_INPUT_LOCATOR, gitRepoUrl);
40
+ }
41
+ async clickOnAdvancedOptionsButton() {
42
+ Logger_1.Logger.debug(`${this.constructor.name}.${this.clickOnAdvancedOptionsButton.name}`);
43
+ if (!(await this.driverHelper.isVisible(OcpImportFromGitPage_1.HIDE_ADVANCED_GIT_OPTIONS_LOCATOR))) {
44
+ await this.driverHelper.waitAndClick(OcpImportFromGitPage_1.SHOW_ADVANCED_GIT_OPTIONS_LINK_LOCATOR);
45
+ }
46
+ }
47
+ async enterGitReference(gitReference) {
48
+ Logger_1.Logger.debug(`${this.constructor.name}.${this.enterGitReference.name} "${gitReference}"`);
49
+ await this.driverHelper.enterValue(OcpImportFromGitPage_1.GIT_REFERENCE_INPUT_LOCATOR, gitReference);
50
+ }
51
+ async selectBuilderImageImportStrategy() {
52
+ Logger_1.Logger.debug(`${this.constructor.name}.${this.selectBuilderImageImportStrategy.name}`);
53
+ await this.driverHelper.scrollToAndClick(OcpImportFromGitPage_1.EDIT_IMPORT_STRATEGY_LINK_LOCATOR);
54
+ await this.driverHelper.scrollToAndClick(OcpImportFromGitPage_1.BUILDER_IMAGE_STRATEGY_ITEM_LOCATOR);
55
+ }
56
+ async addLabel(label) {
57
+ Logger_1.Logger.debug(`${this.constructor.name}.${this.addLabel.name} "${label}"`);
58
+ await this.driverHelper.scrollToAndClick(OcpImportFromGitPage_1.ADD_LABEL_LINK_LOCATOR);
59
+ await this.driverHelper.scrollToAndEnterValue(OcpImportFromGitPage_1.ADD_LABEL_INPUT_LOCATOR, label);
60
+ }
61
+ async submitConfiguration() {
62
+ Logger_1.Logger.debug(`${this.constructor.name}.${this.submitConfiguration.name}`);
63
+ await this.driverHelper.waitAndClick(OcpImportFromGitPage_1.SUBMIT_BUTTON_LOCATOR);
64
+ return inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.OcpApplicationPage);
65
+ }
66
+ async fitAndSubmitConfiguration(gitRepoUrl, gitReference, label) {
67
+ Logger_1.Logger.debug(`${this.constructor.name}.${this.fitAndSubmitConfiguration.name}`);
68
+ await this.enterGitRepoUrl(gitRepoUrl);
69
+ await this.clickOnAdvancedOptionsButton();
70
+ await this.enterGitReference(gitReference);
71
+ await this.selectBuilderImageImportStrategy();
72
+ await this.addLabel(label);
73
+ return await this.submitConfiguration();
74
+ }
75
+ };
76
+ OcpImportFromGitPage.GIT_URL_INPUT_LOCATOR = selenium_webdriver_1.By.id('form-input-git-url-field');
77
+ OcpImportFromGitPage.SHOW_ADVANCED_GIT_OPTIONS_LINK_LOCATOR = selenium_webdriver_1.By.xpath('//*[text()="Show advanced Git options"]//ancestor::button');
78
+ OcpImportFromGitPage.HIDE_ADVANCED_GIT_OPTIONS_LOCATOR = selenium_webdriver_1.By.xpath('//*[text()="Hide advanced Git options"]');
79
+ OcpImportFromGitPage.GIT_REFERENCE_INPUT_LOCATOR = selenium_webdriver_1.By.id('form-input-git-ref-field');
80
+ OcpImportFromGitPage.EDIT_IMPORT_STRATEGY_LINK_LOCATOR = selenium_webdriver_1.By.xpath('//*[text()="Edit Import Strategy"]//ancestor::button');
81
+ OcpImportFromGitPage.BUILDER_IMAGE_STRATEGY_ITEM_LOCATOR = selenium_webdriver_1.By.xpath('//*[text()="Builder Image"]//parent::div//parent::div');
82
+ OcpImportFromGitPage.ADD_LABEL_LINK_LOCATOR = selenium_webdriver_1.By.xpath('//button[text()="Labels"]');
83
+ OcpImportFromGitPage.ADD_LABEL_INPUT_LOCATOR = selenium_webdriver_1.By.id('form-selector-labels-field');
84
+ OcpImportFromGitPage.SUBMIT_BUTTON_LOCATOR = selenium_webdriver_1.By.xpath('//*[@data-test-id="submit-button"]');
85
+ OcpImportFromGitPage = OcpImportFromGitPage_1 = __decorate([
86
+ inversify_1.injectable(),
87
+ __param(0, inversify_1.inject(inversify_types_1.CLASSES.DriverHelper)),
88
+ __metadata("design:paramtypes", [DriverHelper_1.DriverHelper])
89
+ ], OcpImportFromGitPage);
90
+ exports.OcpImportFromGitPage = OcpImportFromGitPage;
91
+ //# sourceMappingURL=OcpImportFromGitPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OcpImportFromGitPage.js","sourceRoot":"","sources":["../../../pageobjects/openshift/OcpImportFromGitPage.ts"],"names":[],"mappings":"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"}
@@ -42,7 +42,7 @@ let OcpLoginPage = OcpLoginPage_1 = class OcpLoginPage {
42
42
  async clickOnLoginProviderTitle() {
43
43
  Logger_1.Logger.debug('OcpLoginPage.clickOnLoginProviderTitle');
44
44
  const loginProviderTitleLocator = selenium_webdriver_1.By.xpath(`//a[text()=\'${TestConstants_1.TestConstants.TS_OCP_LOGIN_PAGE_PROVIDER_TITLE}\']`);
45
- await this.driverHelper.waitAndClick(loginProviderTitleLocator);
45
+ await this.driverHelper.waitAndClick(loginProviderTitleLocator, TimeoutConstants_1.TimeoutConstants.TS_SELENIUM_WAIT_FOR_URL);
46
46
  }
47
47
  async isIdentityProviderLinkVisible() {
48
48
  Logger_1.Logger.debug('OcpLoginPage.isIdentityProviderLinkVisible');
@@ -74,8 +74,8 @@ let OcpLoginPage = OcpLoginPage_1 = class OcpLoginPage {
74
74
  }
75
75
  async clickOnLoginButton() {
76
76
  Logger_1.Logger.debug('OcpLoginPage.clickOnLoginButton');
77
- const loginButtonlocator = selenium_webdriver_1.By.css('button[type=submit]');
78
- await this.driverHelper.waitAndClick(loginButtonlocator);
77
+ const loginButtonLocator = selenium_webdriver_1.By.css('button[type=submit]');
78
+ await this.driverHelper.waitAndClick(loginButtonLocator);
79
79
  }
80
80
  async waitDisappearanceOpenShiftLoginWelcomePage() {
81
81
  Logger_1.Logger.debug('OcpLoginPage.waitDisappearanceOpenShiftLoginWelcomePage');
@@ -1 +1 @@
1
- {"version":3,"file":"OcpLoginPage.js","sourceRoot":"","sources":["../../../pageobjects/openshift/OcpLoginPage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OcpLoginPage.js","sourceRoot":"","sources":["../../../pageobjects/openshift/OcpLoginPage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var OcpMainPage_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.OcpMainPage = void 0;
17
+ /*********************************************************************
18
+ * Copyright (c) 2019-2023 Red Hat, Inc.
19
+ *
20
+ * This program and the accompanying materials are made
21
+ * available under the terms of the Eclipse Public License 2.0
22
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
23
+ *
24
+ * SPDX-License-Identifier: EPL-2.0
25
+ **********************************************************************/
26
+ require("reflect-metadata");
27
+ const inversify_1 = require("inversify");
28
+ const DriverHelper_1 = require("../../utils/DriverHelper");
29
+ const inversify_types_1 = require("../../configs/inversify.types");
30
+ const selenium_webdriver_1 = require("selenium-webdriver");
31
+ const Logger_1 = require("../../utils/Logger");
32
+ const TimeoutConstants_1 = require("../../constants/TimeoutConstants");
33
+ const inversify_config_1 = require("../../configs/inversify.config");
34
+ let OcpMainPage = OcpMainPage_1 = class OcpMainPage {
35
+ constructor(driverHelper) {
36
+ this.driverHelper = driverHelper;
37
+ }
38
+ static getRoleLocator(role) {
39
+ return selenium_webdriver_1.By.xpath(`//a//*[text()="${role}"]`);
40
+ }
41
+ static getProjectDropdownItemLocator(projectName) {
42
+ return selenium_webdriver_1.By.xpath(`//button//*[text()="${projectName}"]`);
43
+ }
44
+ async waitOpenMainPage() {
45
+ Logger_1.Logger.debug(`${this.constructor.name}.${this.waitOpenMainPage.name}`);
46
+ await this.driverHelper.waitVisibility(OcpMainPage_1.MAIN_PAGE_HEADER_LOCATOR, TimeoutConstants_1.TimeoutConstants.TS_SELENIUM_LOAD_PAGE_TIMEOUT);
47
+ }
48
+ async clickOnSelectRoleButton() {
49
+ Logger_1.Logger.debug(`${this.constructor.name}.${this.clickOnSelectRoleButton.name}`);
50
+ await this.driverHelper.waitAndClick(OcpMainPage_1.SELECT_ROLE_BUTTON_LOCATOR);
51
+ }
52
+ async clickAddToProjectButton() {
53
+ Logger_1.Logger.debug(`${this.constructor.name}.${this.clickAddToProjectButton.name}`);
54
+ await this.driverHelper.waitAndClick(OcpMainPage_1.ADD_BUTTON_LOCATOR);
55
+ }
56
+ async selectDeveloperRole() {
57
+ Logger_1.Logger.debug(`${this.constructor.name}.${this.selectDeveloperRole.name}`);
58
+ await this.waitOpenMainPage();
59
+ await this.tryToSkipWebTour();
60
+ await this.clickOnSelectRoleButton();
61
+ await this.selectRole('Developer');
62
+ await this.tryToSkipWebTour();
63
+ }
64
+ async selectImportFromGitMethod() {
65
+ Logger_1.Logger.debug(`${this.constructor.name}.${this.selectImportFromGitMethod.name}`);
66
+ await this.driverHelper.waitAndClick(OcpMainPage_1.IMPORT_FROM_GIT_ITEM_LOCATOR);
67
+ return inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.OcpImportFromGitPage);
68
+ }
69
+ async openImportFromGitPage() {
70
+ Logger_1.Logger.debug(`${this.constructor.name}.${this.openImportFromGitPage.name}`);
71
+ await this.clickAddToProjectButton();
72
+ return await this.selectImportFromGitMethod();
73
+ }
74
+ async selectProject(projectName) {
75
+ Logger_1.Logger.debug(`${this.constructor.name}.${this.selectProject.name}`);
76
+ await this.driverHelper.waitAndClick(OcpMainPage_1.SELECT_PROJECT_DROPDOWN_LOCATOR);
77
+ await this.driverHelper.enterValue(OcpMainPage_1.PROJECT_FILTER_INPUT_LOCATOR, projectName);
78
+ await this.driverHelper.waitAndClick(OcpMainPage_1.getProjectDropdownItemLocator(projectName));
79
+ }
80
+ async selectRole(role) {
81
+ Logger_1.Logger.debug(`${this.constructor.name}.${this.selectRole.name} - selecting role ${role}`);
82
+ await this.driverHelper.waitAndClick(OcpMainPage_1.getRoleLocator(role));
83
+ }
84
+ async tryToSkipWebTour() {
85
+ Logger_1.Logger.debug(`${this.constructor.name}.${this.tryToSkipWebTour.name}`);
86
+ if (await this.driverHelper.isVisible(OcpMainPage_1.SKIP_TOUR_BUTTON_LOCATOR)) {
87
+ await this.driverHelper.waitAndClick(OcpMainPage_1.SKIP_TOUR_BUTTON_LOCATOR);
88
+ Logger_1.Logger.debug(`${this.constructor.name}.${this.tryToSkipWebTour.name} - Welcome tour modal dialog was located and skipped`);
89
+ }
90
+ else {
91
+ Logger_1.Logger.debug(`${this.constructor.name}.${this.tryToSkipWebTour.name} - Welcome tour modal dialog was not located`);
92
+ }
93
+ }
94
+ };
95
+ OcpMainPage.MAIN_PAGE_HEADER_LOCATOR = selenium_webdriver_1.By.id('page-main-header');
96
+ OcpMainPage.SELECT_ROLE_BUTTON_LOCATOR = selenium_webdriver_1.By.xpath('//*[@data-test-id="perspective-switcher-toggle"]');
97
+ OcpMainPage.ADD_BUTTON_LOCATOR = selenium_webdriver_1.By.xpath('//*[@data-test-id="+Add-header"]');
98
+ OcpMainPage.IMPORT_FROM_GIT_ITEM_LOCATOR = selenium_webdriver_1.By.xpath('//*[@data-test="item import-from-git"]');
99
+ OcpMainPage.SELECT_PROJECT_DROPDOWN_LOCATOR = selenium_webdriver_1.By.xpath('//div[@class="co-namespace-dropdown"]//button');
100
+ OcpMainPage.PROJECT_FILTER_INPUT_LOCATOR = selenium_webdriver_1.By.xpath('//*[@data-test="dropdown-text-filter"]');
101
+ OcpMainPage.SKIP_TOUR_BUTTON_LOCATOR = selenium_webdriver_1.By.xpath('//*[text()="Skip tour"]');
102
+ OcpMainPage = OcpMainPage_1 = __decorate([
103
+ inversify_1.injectable(),
104
+ __param(0, inversify_1.inject(inversify_types_1.CLASSES.DriverHelper)),
105
+ __metadata("design:paramtypes", [DriverHelper_1.DriverHelper])
106
+ ], OcpMainPage);
107
+ exports.OcpMainPage = OcpMainPage;
108
+ //# sourceMappingURL=OcpMainPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OcpMainPage.js","sourceRoot":"","sources":["../../../pageobjects/openshift/OcpMainPage.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const OpenshiftClientExecutor_1 = require("../../utils/OpenshiftClientExecutor");
3
+ const KubernetesCommandLineToolsExecutor_1 = require("../../utils/KubernetesCommandLineToolsExecutor");
4
4
  const chai_1 = require("chai");
5
5
  const GitUtil_1 = require("../../utils/vsc/GitUtil");
6
6
  const TestConstants_1 = require("../../constants/TestConstants");
7
7
  const gitRepository = 'https://github.com/crw-qe/web-nodejs-sample';
8
8
  suite(`Test cloning of repo "${gitRepository}" into empty workspace.`, async function () {
9
9
  // works only for root user
10
- const namespace = 'admin-devspaces';
10
+ const namespace = TestConstants_1.TestConstants.TS_API_TEST_NAMESPACE ? TestConstants_1.TestConstants.TS_API_TEST_NAMESPACE : undefined;
11
11
  const workspaceName = 'empty-' + Math.floor(Math.random() * 1000);
12
12
  const clonedProjectName = GitUtil_1.GitUtil.getProjectNameFromGitUrl(gitRepository);
13
13
  let containerWorkDir = '';
14
- const openshiftClientExecutor = new OpenshiftClientExecutor_1.OpenshiftClientExecutor(workspaceName, namespace);
15
- const containerTerminal = new OpenshiftClientExecutor_1.OpenshiftClientExecutor.ContainerTerminal(openshiftClientExecutor);
14
+ const kubernetesCommandLineToolsExecutor = new KubernetesCommandLineToolsExecutor_1.KubernetesCommandLineToolsExecutor(workspaceName, namespace);
15
+ const containerTerminal = new KubernetesCommandLineToolsExecutor_1.KubernetesCommandLineToolsExecutor.ContainerTerminal(kubernetesCommandLineToolsExecutor);
16
16
  const emptyYaml = 'apiVersion: workspace.devfile.io/v1alpha2\n' +
17
17
  'kind: DevWorkspace\n' +
18
18
  'metadata:\n' +
@@ -34,11 +34,11 @@ suite(`Test cloning of repo "${gitRepository}" into empty workspace.`, async fun
34
34
  ' - name: CODE_HOST\n' +
35
35
  ' value: 0.0.0.0';
36
36
  suiteSetup('Create empty workspace with OC client', function () {
37
- openshiftClientExecutor.loginToOcp();
38
- openshiftClientExecutor.applyAndWaitDevWorkspace(emptyYaml);
37
+ kubernetesCommandLineToolsExecutor.loginToOcp();
38
+ kubernetesCommandLineToolsExecutor.applyAndWaitDevWorkspace(emptyYaml);
39
39
  });
40
40
  suiteTeardown('Delete workspace', function () {
41
- openshiftClientExecutor.deleteDevWorkspace();
41
+ kubernetesCommandLineToolsExecutor.deleteDevWorkspace();
42
42
  });
43
43
  suite('Clone public repo without previous setup', function () {
44
44
  suiteTeardown('Delete cloned project', function () {
@@ -1 +1 @@
1
- {"version":3,"file":"CloneGitRepoAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/CloneGitRepoAPI.spec.ts"],"names":[],"mappings":";;AAAA,iFAA8E;AAC9E,+BAA8B;AAE9B,qDAAkD;AAClD,iEAA8D;AAE9D,MAAM,aAAa,GAAW,6CAA6C,CAAC;AAE5E,KAAK,CAAC,yBAAyB,aAAa,yBAAyB,EAAE,KAAK;IACxE,2BAA2B;IAC3B,MAAM,SAAS,GAAW,iBAAiB,CAAC;IAC5C,MAAM,aAAa,GAAW,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1E,MAAM,iBAAiB,GAAW,iBAAO,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;IAClF,IAAI,gBAAgB,GAAW,EAAE,CAAC;IAElC,MAAM,uBAAuB,GAA4B,IAAI,iDAAuB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAC/G,MAAM,iBAAiB,GAA8C,IAAI,iDAAuB,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;IAE5I,MAAM,SAAS,GACX,6CAA6C;QAC7C,sBAAsB;QACtB,aAAa;QACb,WAAW,aAAa,IAAI;QAC5B,SAAS;QACT,mBAAmB;QACnB,eAAe;QACf,mBAAmB;QACnB,sBAAsB;QACtB,oBAAoB,6BAAa,CAAC,qBAAqB,IAAI;QAC3D,2CAA2C;QAC3C,oBAAoB;QACpB,wBAAwB;QACxB,cAAc,6BAAa,CAAC,uCAAuC,IAAI;QACvE,qBAAqB;QACrB,gDAAgD;QAChD,wBAAwB;QACxB,oBAAoB;QACpB,mCAAmC;QACnC,gCAAgC,CAAC;IAErC,UAAU,CAAC,uCAAuC,EAAE;QAChD,uBAAuB,CAAC,UAAU,EAAE,CAAC;QACrC,uBAAuB,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,kBAAkB,EAAE;QAC9B,uBAAuB,CAAC,kBAAkB,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,0CAA0C,EAAE;QAC9C,aAAa,CAAC,uBAAuB,EAAE;YACnC,iBAAiB,CAAC,YAAY,CAAC,GAAG,iBAAiB,EAAE,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oCAAoC,EAAE;YACvC,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpE,MAAM,WAAW,GAAgB,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC3E,aAAM,CAAC,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8BAA8B,EAAE;YACjC,aAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,EAAE;YAClC,aAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,gBAAgB,IAAI,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,6BAAa,CAAC,kCAAkC,CAAC,CAAC;QAC/I,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"CloneGitRepoAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/CloneGitRepoAPI.spec.ts"],"names":[],"mappings":";;AAAA,uGAAoG;AACpG,+BAA8B;AAE9B,qDAAkD;AAClD,iEAA8D;AAG9D,MAAM,aAAa,GAAW,6CAA6C,CAAC;AAE5E,KAAK,CAAC,yBAAyB,aAAa,yBAAyB,EAAE,KAAK;IACxE,2BAA2B;IAC3B,MAAM,SAAS,GAAW,6BAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC,6BAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC;IAChH,MAAM,aAAa,GAAW,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1E,MAAM,iBAAiB,GAAW,iBAAO,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;IAClF,IAAI,gBAAgB,GAAW,EAAE,CAAC;IAElC,MAAM,kCAAkC,GAAuC,IAAI,uEAAkC,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAChJ,MAAM,iBAAiB,GAAyD,IAAI,uEAAkC,CAAC,iBAAiB,CAAC,kCAAkC,CAAC,CAAC;IAE7K,MAAM,SAAS,GACX,6CAA6C;QAC7C,sBAAsB;QACtB,aAAa;QACb,WAAW,aAAa,IAAI;QAC5B,SAAS;QACT,mBAAmB;QACnB,eAAe;QACf,mBAAmB;QACnB,sBAAsB;QACtB,oBAAoB,6BAAa,CAAC,qBAAqB,IAAI;QAC3D,2CAA2C;QAC3C,oBAAoB;QACpB,wBAAwB;QACxB,cAAc,6BAAa,CAAC,uCAAuC,IAAI;QACvE,qBAAqB;QACrB,gDAAgD;QAChD,wBAAwB;QACxB,oBAAoB;QACpB,mCAAmC;QACnC,gCAAgC,CAAC;IAErC,UAAU,CAAC,uCAAuC,EAAE;QAChD,kCAAkC,CAAC,UAAU,EAAE,CAAC;QAChD,kCAAkC,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,kBAAkB,EAAE;QAC9B,kCAAkC,CAAC,kBAAkB,EAAE,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,0CAA0C,EAAE;QAC9C,aAAa,CAAC,uBAAuB,EAAE;YACnC,iBAAiB,CAAC,YAAY,CAAC,GAAG,iBAAiB,EAAE,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oCAAoC,EAAE;YACvC,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpE,MAAM,WAAW,GAAgB,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC3E,aAAM,CAAC,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8BAA8B,EAAE;YACjC,aAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,EAAE;YAClC,aAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,gBAAgB,IAAI,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,6BAAa,CAAC,kCAAkC,CAAC,CAAC;QAC/I,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,36 @@
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 KubernetesCommandLineToolsExecutor_1 = require("../../utils/KubernetesCommandLineToolsExecutor");
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const yaml_1 = __importDefault(require("yaml"));
10
+ const chai_1 = require("chai");
11
+ suite(`Test defining container overrides via attribute.`, async function () {
12
+ const pathToSampleFile = path_1.default.resolve('resources/container-overrides.yaml');
13
+ const workspaceName = yaml_1.default.parse(fs_1.default.readFileSync(pathToSampleFile, 'utf8')).metadata.name;
14
+ const kubernetesCommandLineToolsExecutor = new KubernetesCommandLineToolsExecutor_1.KubernetesCommandLineToolsExecutor(workspaceName);
15
+ suiteSetup('Login into OC client', function () {
16
+ kubernetesCommandLineToolsExecutor.loginToOcp();
17
+ });
18
+ suiteTeardown('Delete DewWorkspace', function () {
19
+ kubernetesCommandLineToolsExecutor.deleteDevWorkspace();
20
+ });
21
+ test('Apply container-overrides sample as DewWorkspace with OC client', function () {
22
+ kubernetesCommandLineToolsExecutor.applyYamlConfigurationAsFile(pathToSampleFile);
23
+ kubernetesCommandLineToolsExecutor.wait(5);
24
+ });
25
+ test('Check that fields are overridden in the Deployment for DewWorkspace', function () {
26
+ const devWorkspaceFullYamlOutput = yaml_1.default.parse(kubernetesCommandLineToolsExecutor.getDevWorkspaceYamlConfiguration());
27
+ chai_1.expect(devWorkspaceFullYamlOutput.spec.template.components[0].attributes['container-overrides']).eqls({
28
+ resources: {
29
+ limits: {
30
+ 'nvidia.com/gpu': '1'
31
+ }
32
+ }
33
+ });
34
+ });
35
+ });
36
+ //# sourceMappingURL=ContainerOverridesAPI.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContainerOverridesAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/ContainerOverridesAPI.spec.ts"],"names":[],"mappings":";;;;;AAAA,uGAAoG;AACpG,4CAAoB;AACpB,gDAAwB;AACxB,gDAAwB;AACxB,+BAA8B;AAE9B,KAAK,CAAC,kDAAkD,EAAE,KAAK;IAC3D,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,IAAI,uEAAkC,CAAC,aAAa,CAAC,CAAC;IAErI,UAAU,CAAC,sBAAsB,EAAE;QAC/B,kCAAkC,CAAC,UAAU,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,qBAAqB,EAAE;QACjC,kCAAkC,CAAC,kBAAkB,EAAE,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iEAAiE,EAAE;QACpE,kCAAkC,CAAC,4BAA4B,CAAC,gBAAgB,CAAC,CAAC;QAClF,kCAAkC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qEAAqE,EAAE;QACzE,MAAM,0BAA0B,GAAQ,cAAI,CAAC,KAAK,CAAC,kCAAkC,CAAC,gCAAgC,EAAE,CAAC,CAAC;QAC1H,aAAM,CAAC,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC;YAClG,SAAS,EAAE;gBACP,MAAM,EAAE;oBACJ,gBAAgB,EAAE,GAAG;iBACxB;aACJ;SACJ,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,42 @@
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 KubernetesCommandLineToolsExecutor_1 = require("../../utils/KubernetesCommandLineToolsExecutor");
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const yaml_1 = __importDefault(require("yaml"));
10
+ const chai_1 = require("chai");
11
+ suite(`Test defining pod overrides via attribute.`, async function () {
12
+ const pathToSampleFile = path_1.default.resolve('resources/pod-overrides.yaml');
13
+ const workspaceName = yaml_1.default.parse(fs_1.default.readFileSync(pathToSampleFile, 'utf8')).metadata.name;
14
+ const kubernetesCommandLineToolsExecutor = new KubernetesCommandLineToolsExecutor_1.KubernetesCommandLineToolsExecutor(workspaceName);
15
+ suiteSetup('Login into OC client', function () {
16
+ kubernetesCommandLineToolsExecutor.loginToOcp();
17
+ });
18
+ suiteTeardown('Delete DewWorkspace', function () {
19
+ kubernetesCommandLineToolsExecutor.deleteDevWorkspace();
20
+ });
21
+ test('Apply pod-overrides sample as DewWorkspace with OC client', function () {
22
+ kubernetesCommandLineToolsExecutor.applyYamlConfigurationAsFile(pathToSampleFile);
23
+ kubernetesCommandLineToolsExecutor.wait(5);
24
+ });
25
+ test('Check that fields are overridden in the Deployment for DewWorkspace', function () {
26
+ const devWorkspaceFullYamlOutput = yaml_1.default.parse(kubernetesCommandLineToolsExecutor.getDevWorkspaceYamlConfiguration());
27
+ chai_1.expect(devWorkspaceFullYamlOutput.spec.template.attributes['pod-overrides']).eqls({
28
+ metadata: {
29
+ annotations: {
30
+ 'io.kubernetes.cri-o.userns-mode': 'auto:size=65536;map-to-root=true',
31
+ 'io.openshift.userns': 'true',
32
+ 'openshift.io/scc': 'container-build'
33
+ }
34
+ },
35
+ spec: {
36
+ runtimeClassName: 'kata',
37
+ schedulerName: 'stork'
38
+ }
39
+ });
40
+ });
41
+ });
42
+ //# sourceMappingURL=PodOverridesAPI.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PodOverridesAPI.spec.js","sourceRoot":"","sources":["../../../specs/api/PodOverridesAPI.spec.ts"],"names":[],"mappings":";;;;;AAAA,uGAAoG;AACpG,4CAAoB;AACpB,gDAAwB;AACxB,gDAAwB;AACxB,+BAA8B;AAE9B,KAAK,CAAC,4CAA4C,EAAE,KAAK;IACrD,MAAM,gBAAgB,GAAW,cAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC9E,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,IAAI,uEAAkC,CAAC,aAAa,CAAC,CAAC;IAErI,UAAU,CAAC,sBAAsB,EAAE;QAC/B,kCAAkC,CAAC,UAAU,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,qBAAqB,EAAE;QACjC,kCAAkC,CAAC,kBAAkB,EAAE,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,2DAA2D,EAAE;QAC9D,kCAAkC,CAAC,4BAA4B,CAAC,gBAAgB,CAAC,CAAC;QAClF,kCAAkC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qEAAqE,EAAE;QACzE,MAAM,0BAA0B,GAAQ,cAAI,CAAC,KAAK,CAAC,kCAAkC,CAAC,gCAAgC,EAAE,CAAC,CAAC;QAC1H,aAAM,CAAC,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9E,QAAQ,EAAE;gBACN,WAAW,EAAE;oBACT,iCAAiC,EAAE,kCAAkC;oBACrE,qBAAqB,EAAE,MAAM;oBAC7B,kBAAkB,EAAE,iBAAiB;iBACxC;aACJ;YACD,IAAI,EAAE;gBACF,gBAAgB,EAAE,MAAM;gBACxB,aAAa,EAAE,OAAO;aACzB;SACJ,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -25,6 +25,7 @@ const loginTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES
25
25
  const driverHelper = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.DriverHelper);
26
26
  const webCheCodeLocators = new CheCodeLocatorLoader_1.CheCodeLocatorLoader().webCheCodeLocators;
27
27
  const samples = TestConstants_1.TestConstants.TS_SAMPLE_LIST.split(',');
28
+ const browserTabsUtil = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.BrowserTabsUtil);
28
29
  suite(`Check if recommended extensions installed for ${samples}`, async function () {
29
30
  let projectSection;
30
31
  let extensionsView;
@@ -57,7 +58,7 @@ suite(`Check if recommended extensions installed for ${samples}`, async function
57
58
  await trustedProjectDialog.pushButton(buttonYesITrustTheAuthors);
58
59
  }
59
60
  catch (e) {
60
- Logger_1.Logger.warn(`Welcome modal dialog was not shown: ${e}`);
61
+ Logger_1.Logger.debug(`Welcome modal dialog was not shown: ${e}`);
61
62
  }
62
63
  });
63
64
  test(`Get recommended extensions list from ${extensionsListFileName}`, async function () {
@@ -73,37 +74,71 @@ suite(`Check if recommended extensions installed for ${samples}`, async function
73
74
  Logger_1.Logger.debug(`editor.getText(): get recommended extensions as text from editor, delete comments and parse to object.`);
74
75
  recommendedExtensions = JSON.parse((await editor.getText()).replace(/\/\*[\s\S]*?\*\/|(?<=[^:])\/\/.*|^\/\/.*/g, '').trim());
75
76
  Logger_1.Logger.debug(`recommendedExtensions.recommendations: Get recommendations clear names using map().`);
76
- recommendedExtensions.recommendations = recommendedExtensions.recommendations.map((r) => r.substring(r.indexOf('.') + 1, r.length));
77
+ recommendedExtensions.recommendations = recommendedExtensions.recommendations.map((r) => {
78
+ const [publisher, name] = r.split('.');
79
+ return { publisher, name };
80
+ });
81
+ Logger_1.Logger.info(`Recommended extension for this workspace:\n${JSON.stringify(recommendedExtensions.recommendations)}.`);
77
82
  });
78
83
  test(`Open "Extensions" view section`, async function () {
79
84
  var _a;
80
85
  Logger_1.Logger.debug(`ActivityBar().getViewControl('Extensions'))?.openView(): open Extensions view.`);
81
86
  extensionsView = await ((_a = (await new monaco_page_objects_1.ActivityBar().getViewControl('Extensions'))) === null || _a === void 0 ? void 0 : _a.openView());
82
- Logger_1.Logger.debug(`extensionsView?.getContent().getSections(): get current section.`);
83
- [extensionSection] = await (extensionsView === null || extensionsView === void 0 ? void 0 : extensionsView.getContent().getSections());
84
87
  });
85
- test(`Wait until extensions starts installation`, async function () {
88
+ test(`Let extensions complete installation`, async function () {
86
89
  Logger_1.Logger.info(`Time for extensions installation TimeoutConstants.TS_COMMON_PLUGIN_TEST_TIMEOUT=${TimeoutConstants_1.TimeoutConstants.TS_COMMON_PLUGIN_TEST_TIMEOUT}`);
87
90
  await driverHelper.wait(TimeoutConstants_1.TimeoutConstants.TS_COMMON_PLUGIN_TEST_TIMEOUT);
88
91
  });
89
92
  test(`Check if extensions is installed and enabled`, async function () {
90
- Logger_1.Logger.info(`Check if recommendedExtensions.recommendations are installed: ${recommendedExtensions.recommendations}.`);
93
+ var _a, _b;
94
+ this.retries(10);
95
+ Logger_1.Logger.debug(`ActivityBar().getViewControl('Extensions'))?.openView(): open Extensions view.`);
96
+ extensionsView = await ((_a = (await new monaco_page_objects_1.ActivityBar().getViewControl('Extensions'))) === null || _a === void 0 ? void 0 : _a.openView());
97
+ Logger_1.Logger.debug(`extensionsView?.getContent().getSections(): get current section.`);
98
+ [extensionSection] = await (extensionsView === null || extensionsView === void 0 ? void 0 : extensionsView.getContent().getSections());
99
+ await driverHelper.waitAllPresence(webCheCodeLocators.ExtensionsViewSection.itemTitle, TimeoutConstants_1.TimeoutConstants.TS_EDITOR_TAB_INTERACTION_TIMEOUT);
91
100
  for (const extension of recommendedExtensions.recommendations) {
92
- Logger_1.Logger.debug(`extensionSection.findItem(${extension}).`);
93
- await extensionSection.findItem(extension);
101
+ Logger_1.Logger.info(`Check if ${JSON.stringify(extension)} are installed.`);
102
+ Logger_1.Logger.debug(`extensionSection.findItem(${extension.name}).`);
103
+ await extensionSection.findItem(extension.name);
104
+ // check if extension require reload the page
105
+ if (await driverHelper.isVisible(webCheCodeLocators.ExtensionsViewSection.requireReloadButton)) {
106
+ Logger_1.Logger.debug(`Extension require reload the editor. Refreshing the page..`);
107
+ await browserTabsUtil.refreshPage();
108
+ await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
109
+ Logger_1.Logger.debug(`ActivityBar().getViewControl('Extensions'))?.openView(): open Extensions view.`);
110
+ extensionsView = await ((_b = (await new monaco_page_objects_1.ActivityBar().getViewControl('Extensions'))) === null || _b === void 0 ? void 0 : _b.openView());
111
+ Logger_1.Logger.debug(`extensionsView?.getContent().getSections(): get current section.`);
112
+ [extensionSection] = await (extensionsView === null || extensionsView === void 0 ? void 0 : extensionsView.getContent().getSections());
113
+ await driverHelper.waitAllPresence(webCheCodeLocators.ExtensionsViewSection.itemTitle, TimeoutConstants_1.TimeoutConstants.TS_EDITOR_TAB_INTERACTION_TIMEOUT);
114
+ Logger_1.Logger.debug(`extensionSection.findItem(${extension.name}).`);
115
+ await extensionSection.findItem(extension.name);
116
+ }
94
117
  Logger_1.Logger.debug(`extensionsView?.getContent().getSections(): switch to marketplace section.`);
95
118
  const [marketplaceSection] = await (extensionsView === null || extensionsView === void 0 ? void 0 : extensionsView.getContent().getSections());
96
- await driverHelper.waitVisibility(webCheCodeLocators.ExtensionsViewSection.items, TimeoutConstants_1.TimeoutConstants.TS_COMMON_PLUGIN_TEST_TIMEOUT);
97
- Logger_1.Logger.debug(`marketplaceSection.getVisibleItems(): get first item.`);
98
- const [firstFoundItem] = await marketplaceSection.getVisibleItems();
99
- Logger_1.Logger.debug(`firstFoundItem?.isInstalled()`);
100
- const isInstalled = await (firstFoundItem === null || firstFoundItem === void 0 ? void 0 : firstFoundItem.isInstalled());
101
- Logger_1.Logger.debug(`firstFoundItem?.isInstalled(): ${isInstalled}.`);
119
+ await driverHelper.waitVisibility(webCheCodeLocators.ExtensionsViewSection.items, TimeoutConstants_1.TimeoutConstants.TS_EDITOR_TAB_INTERACTION_TIMEOUT);
120
+ Logger_1.Logger.debug(`marketplaceSection.getVisibleItems(): get all found items.`);
121
+ const allFinedItems = await marketplaceSection.getVisibleItems();
122
+ let itemWithRightNameAndPublisher;
123
+ for (const item of allFinedItems) {
124
+ Logger_1.Logger.debug(`Try to find extension published by ${extension.publisher}.`);
125
+ if (await item.getAuthor() === extension.publisher) {
126
+ itemWithRightNameAndPublisher = item;
127
+ Logger_1.Logger.debug(`Extension was found: ${await (itemWithRightNameAndPublisher === null || itemWithRightNameAndPublisher === void 0 ? void 0 : itemWithRightNameAndPublisher.getTitle())}`);
128
+ break;
129
+ }
130
+ if (itemWithRightNameAndPublisher === undefined) {
131
+ Logger_1.Logger.error(`Extension with publisher as ${extension.publisher} was not found.`);
132
+ }
133
+ }
134
+ Logger_1.Logger.debug(`itemWithRightNameAndPublisher?.isInstalled()`);
135
+ const isInstalled = await (itemWithRightNameAndPublisher === null || itemWithRightNameAndPublisher === void 0 ? void 0 : itemWithRightNameAndPublisher.isInstalled());
136
+ Logger_1.Logger.debug(`itemWithRightNameAndPublisher?.isInstalled(): ${isInstalled}.`);
102
137
  chai_1.expect(isInstalled).eqls(true);
103
- Logger_1.Logger.debug(`firstFoundItem.manage(): get context menu.`);
104
- const extensionManageMenu = await firstFoundItem.manage();
138
+ Logger_1.Logger.debug(`itemWithRightNameAndPublisher.manage(): get context menu.`);
139
+ const extensionManageMenu = await (itemWithRightNameAndPublisher === null || itemWithRightNameAndPublisher === void 0 ? void 0 : itemWithRightNameAndPublisher.manage());
105
140
  Logger_1.Logger.debug(`extensionManageMenu.getItems(): get menu items.`);
106
- const extensionMenuItems = await extensionManageMenu.getItems();
141
+ const extensionMenuItems = await (extensionManageMenu === null || extensionManageMenu === void 0 ? void 0 : extensionManageMenu.getItems());
107
142
  let extensionMenuItemLabels = '';
108
143
  for (const item of extensionMenuItems) {
109
144
  Logger_1.Logger.trace(`extensionMenuItems -> item.getLabel(): get menu items names.`);
@@ -113,8 +148,12 @@ suite(`Check if recommended extensions installed for ${samples}`, async function
113
148
  chai_1.expect(extensionMenuItemLabels).contains('Disable').and.not.contains('Enable');
114
149
  }
115
150
  });
116
- test('Stopping and deleting the workspace', async function () {
117
- await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
151
+ test('Stop the workspace', async function () {
152
+ await workspaceHandlingTests.stopWorkspace(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
153
+ await browserTabsUtil.closeAllTabsExceptCurrent();
154
+ });
155
+ test('Delete the workspace', async function () {
156
+ await workspaceHandlingTests.removeWorkspace(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
118
157
  });
119
158
  }
120
159
  loginTests.logoutFromChe();
@@ -1 +1 @@
1
- {"version":3,"file":"RecomendedExtentions.spec.js","sourceRoot":"","sources":["../../../specs/dashboard-samples/RecomendedExtentions.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RecomendedExtentions.spec.js","sourceRoot":"","sources":["../../../specs/dashboard-samples/RecomendedExtentions.spec.ts"],"names":[],"mappings":"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"}