@eclipse-che/che-e2e 7.90.0 → 7.90.1-next-af69ec4

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 (37) hide show
  1. package/configs/inversify.config.ts +3 -0
  2. package/configs/inversify.types.ts +2 -1
  3. package/constants/BASE_TEST_CONSTANTS.ts +1 -1
  4. package/dist/configs/inversify.config.js +3 -0
  5. package/dist/configs/inversify.config.js.map +1 -1
  6. package/dist/configs/inversify.types.js +2 -1
  7. package/dist/configs/inversify.types.js.map +1 -1
  8. package/dist/constants/BASE_TEST_CONSTANTS.js +1 -1
  9. package/dist/constants/BASE_TEST_CONSTANTS.js.map +1 -1
  10. package/dist/index.js +1 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/pageobjects/dashboard/CreateWorkspace.js +16 -2
  13. package/dist/pageobjects/dashboard/CreateWorkspace.js.map +1 -1
  14. package/dist/pageobjects/dashboard/TrustAuthorPopup.js +55 -0
  15. package/dist/pageobjects/dashboard/TrustAuthorPopup.js.map +1 -0
  16. package/dist/pageobjects/ide/CheCodeLocatorLoader.js +1 -1
  17. package/dist/pageobjects/ide/CheCodeLocatorLoader.js.map +1 -1
  18. package/dist/specs/factory/Factory.spec.js +4 -0
  19. package/dist/specs/factory/Factory.spec.js.map +1 -1
  20. package/dist/specs/factory/NoSetupRepoFactory.spec.js +4 -0
  21. package/dist/specs/factory/NoSetupRepoFactory.spec.js.map +1 -1
  22. package/dist/specs/factory/RefusedOAuthFactory.spec.js +6 -2
  23. package/dist/specs/factory/RefusedOAuthFactory.spec.js.map +1 -1
  24. package/dist/specs/miscellaneous/CustomOpenVSXRegistry.spec.js +201 -0
  25. package/dist/specs/miscellaneous/CustomOpenVSXRegistry.spec.js.map +1 -0
  26. package/dist/specs/miscellaneous/WorkspaceWithParent.spec.js +2 -0
  27. package/dist/specs/miscellaneous/WorkspaceWithParent.spec.js.map +1 -1
  28. package/index.ts +1 -0
  29. package/package.json +1 -1
  30. package/pageobjects/dashboard/CreateWorkspace.ts +17 -1
  31. package/pageobjects/dashboard/TrustAuthorPopup.ts +42 -0
  32. package/pageobjects/ide/CheCodeLocatorLoader.ts +1 -1
  33. package/specs/factory/Factory.spec.ts +5 -0
  34. package/specs/factory/NoSetupRepoFactory.spec.ts +5 -0
  35. package/specs/factory/RefusedOAuthFactory.spec.ts +7 -4
  36. package/specs/miscellaneous/CustomOpenVSXRegistry.spec.ts +226 -0
  37. package/specs/miscellaneous/WorkspaceWithParent.spec.ts +3 -0
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /** *******************************************************************
4
+ * copyright (c) 2023 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 FACTORY_TEST_CONSTANTS_1 = require("../../constants/FACTORY_TEST_CONSTANTS");
13
+ const BASE_TEST_CONSTANTS_1 = require("../../constants/BASE_TEST_CONSTANTS");
14
+ const inversify_config_1 = require("../../configs/inversify.config");
15
+ const inversify_types_1 = require("../../configs/inversify.types");
16
+ const WorkspaceHandlingTests_1 = require("../../tests-library/WorkspaceHandlingTests");
17
+ const monaco_page_objects_1 = require("monaco-page-objects");
18
+ const MochaHooks_1 = require("../MochaHooks");
19
+ const Logger_1 = require("../../utils/Logger");
20
+ const chai_1 = require("chai");
21
+ const TIMEOUT_CONSTANTS_1 = require("../../constants/TIMEOUT_CONSTANTS");
22
+ const selenium_webdriver_1 = require("selenium-webdriver");
23
+ suite(`Create a workspace via launching a factory from the ${FACTORY_TEST_CONSTANTS_1.FACTORY_TEST_CONSTANTS.TS_SELENIUM_FACTORY_GIT_REPO_URL} repository`, function () {
24
+ const browserTabsUtil = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.BrowserTabsUtil);
25
+ const workspaceHandlingTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.WorkspaceHandlingTests);
26
+ const projectAndFileTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ProjectAndFileTests);
27
+ const loginTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.LoginTests);
28
+ const pathToPluginRegistry = '/projects/devspaces/dependencies/che-plugin-registry/';
29
+ const internalRegistry = 'image-registry.openshift-image-registry.svc:5000';
30
+ const testWorkspaceUtil = inversify_config_1.e2eContainer.get(inversify_types_1.TYPES.WorkspaceUtil);
31
+ const driverHelper = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.DriverHelper);
32
+ const viewItems = [];
33
+ const testRepoProjectName = 'devspaces';
34
+ const appVersion = BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TESTING_APPLICATION_VERSION
35
+ ? BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TESTING_APPLICATION_VERSION.split('.').slice(0, 2).join('.')
36
+ : 'next';
37
+ let currentNamespace = '';
38
+ let cheClusterNamespace = '';
39
+ let cheClusterName = '';
40
+ let projectSection;
41
+ let kubernetesCommandLineToolsExecutor;
42
+ let workspaceName = '';
43
+ suiteSetup('Login', async function () {
44
+ await loginTests.loginIntoChe();
45
+ });
46
+ test('Navigate to the factory URL', async function () {
47
+ await browserTabsUtil.navigateTo(FACTORY_TEST_CONSTANTS_1.FACTORY_TEST_CONSTANTS.TS_SELENIUM_FACTORY_URL() || 'https://github.com/redhat-developer/devspaces/');
48
+ });
49
+ test('Obtain workspace name from workspace loader page', async function () {
50
+ await workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
51
+ workspaceName = WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName();
52
+ (0, chai_1.expect)(workspaceName, 'Workspace name was not fetched from the loading page').not.undefined;
53
+ });
54
+ test('Registering the running workspace', function () {
55
+ (0, MochaHooks_1.registerRunningWorkspace)(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
56
+ });
57
+ test('Wait the workspace readiness', async function () {
58
+ await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
59
+ });
60
+ test('Check if a project folder has been created', async function () {
61
+ Logger_1.Logger.debug(`new SideBarView().getContent().getSection: get ${testRepoProjectName}`);
62
+ projectSection = await projectAndFileTests.getProjectViewSession();
63
+ (0, chai_1.expect)(await projectAndFileTests.getProjectTreeItem(projectSection, testRepoProjectName), 'Project folder was not imported').not
64
+ .undefined;
65
+ });
66
+ test('Accept the project as a trusted one', async function () {
67
+ await projectAndFileTests.performTrustAuthorDialog();
68
+ });
69
+ test('Remove VSX plugins and set redhat.vscode-xml', function () {
70
+ // modify the openvsx-sync.json file with just one item - for speeding up the build an image
71
+ kubernetesCommandLineToolsExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.KubernetesCommandLineToolsExecutor);
72
+ kubernetesCommandLineToolsExecutor.workspaceName = workspaceName;
73
+ kubernetesCommandLineToolsExecutor.loginToOcp('admin');
74
+ kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
75
+ const pathToOpenVSXOriginFile = `${pathToPluginRegistry}openvsx-sync.json`;
76
+ const pathToOpenVSXTmpFile = `${pathToPluginRegistry}temp.json`;
77
+ const editVSCListCommand = `jq "[.[] | select(.id == \\"redhat.vscode-xml\\")]" ${pathToOpenVSXOriginFile} > ${pathToOpenVSXTmpFile} && mv ${pathToOpenVSXTmpFile} ${pathToOpenVSXOriginFile}`;
78
+ const output = kubernetesCommandLineToolsExecutor.execInContainerCommand(editVSCListCommand);
79
+ (0, chai_1.expect)(output.code).to.equals(0);
80
+ const getCheClusterNamespaceCommand = 'oc get checluster --all-namespaces -o json | jq -r ".items[0].metadata.name"';
81
+ const getCheClusterNameSpace = 'oc get checluster --all-namespaces -o json | jq -r ".items[0].metadata.namespace"';
82
+ // get che cluster name and namespace and init variables
83
+ cheClusterName = kubernetesCommandLineToolsExecutor.execInContainerCommand(getCheClusterNamespaceCommand).replace('\n', '');
84
+ cheClusterNamespace = kubernetesCommandLineToolsExecutor.execInContainerCommand(getCheClusterNameSpace).replace('\n', '');
85
+ });
86
+ test('Login podman into official registry', function () {
87
+ const commandToAuthenticateInRegistry = `podman login -u \"${process.env.REGISTRY_LOGIN}\" -p ${process.env.REGISTRY_PASSWORD} registry.redhat.io`;
88
+ const output = kubernetesCommandLineToolsExecutor.execInContainerCommand(commandToAuthenticateInRegistry);
89
+ (0, chai_1.expect)(output).contains('Login Succeeded!');
90
+ });
91
+ test('Build and push custom image', function () {
92
+ currentNamespace = kubernetesCommandLineToolsExecutor.namespace;
93
+ const podmanPushCommand = `podman push ${internalRegistry}/${currentNamespace}/che-plugin-registry:${appVersion}`;
94
+ const commandToBuildCustomVSXImage = `cd ${pathToPluginRegistry} && yes | ./build.sh`;
95
+ const commandLoginIntoInternalRegistry = 'podman login -u $(oc whoami | tr -d :) -p $(oc whoami -t) image-registry.openshift-image-registry.svc:5000';
96
+ const retagImageCommand = `podman tag quay.io/devspaces/pluginregistry-rhel8:next ${internalRegistry}/${currentNamespace}/che-plugin-registry:${appVersion}`;
97
+ const output = kubernetesCommandLineToolsExecutor.execInContainerCommand(commandToBuildCustomVSXImage);
98
+ (0, chai_1.expect)(output.code).equals(0);
99
+ const outputRetagCommand = kubernetesCommandLineToolsExecutor.execInContainerCommand(retagImageCommand);
100
+ (0, chai_1.expect)(outputRetagCommand.code).equals(0);
101
+ const loginIntoInternalRegistryOutput = kubernetesCommandLineToolsExecutor.execInContainerCommand(commandLoginIntoInternalRegistry);
102
+ (0, chai_1.expect)(loginIntoInternalRegistryOutput).contains('Login Succeeded!');
103
+ const outputPushCommand = kubernetesCommandLineToolsExecutor.execInContainerCommand(podmanPushCommand);
104
+ (0, chai_1.expect)(outputPushCommand.code).equals(0);
105
+ });
106
+ test('Configure Che to use the embedded Eclipse Open VSX server', function () {
107
+ // create secret for using internal registry
108
+ const createRegistrySecretCommand = `oc create secret -n ${cheClusterNamespace} docker-registry regcred --docker-server=${internalRegistry} --docker-username=\$(oc whoami | tr -d :) --docker-password=\$(oc whoami -t)`;
109
+ const createSecretOutput = kubernetesCommandLineToolsExecutor.execInContainerCommand(createRegistrySecretCommand);
110
+ (0, chai_1.expect)(createSecretOutput).contains('regcred created');
111
+ // add secret to service account
112
+ const patchPart = '{\\"imagePullSecrets\\": [{\\"name\\": \\"regcred\\"}]}';
113
+ const addSecretToServiceAccountCommand = `oc patch serviceaccount default -n ${cheClusterNamespace} -p "${patchPart}"`;
114
+ const addSecretOutput = kubernetesCommandLineToolsExecutor.execInContainerCommand(addSecretToServiceAccountCommand);
115
+ (0, chai_1.expect)(addSecretOutput).contains('default patched');
116
+ // patch che cluster with custom plugin registry
117
+ const patchVSXRegistryCommand = `cd ${pathToPluginRegistry} && ./patch-cluster.sh ${internalRegistry}/${currentNamespace}/che-plugin-registry:${appVersion}`;
118
+ const patchVSXOutput = kubernetesCommandLineToolsExecutor.execInContainerCommand(patchVSXRegistryCommand);
119
+ (0, chai_1.expect)(patchVSXOutput).contains('Patched CheCluster ');
120
+ // wait for deployment readiness after patching CHE cluster
121
+ const waitDeploymentReadiness = `oc rollout status deployment plugin-registry -n ${cheClusterNamespace} --timeout=120s`;
122
+ const waitDeploymentOutput = kubernetesCommandLineToolsExecutor.execInContainerCommand(waitDeploymentReadiness);
123
+ (0, chai_1.expect)(waitDeploymentOutput).contains('successfully rolled out');
124
+ });
125
+ test('Recreate workspace and check VSX custom plugin ', async function () {
126
+ await testWorkspaceUtil.deleteWorkspaceByName(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
127
+ (0, MochaHooks_1.registerRunningWorkspace)('');
128
+ await browserTabsUtil.navigateTo(FACTORY_TEST_CONSTANTS_1.FACTORY_TEST_CONSTANTS.TS_SELENIUM_FACTORY_URL());
129
+ });
130
+ test('Registering the running workspace', function () {
131
+ (0, MochaHooks_1.registerRunningWorkspace)(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
132
+ });
133
+ test('Check Custom VSX plugin', async function () {
134
+ await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
135
+ Logger_1.Logger.debug(`new SideBarView().getContent().getSection: get ${testRepoProjectName}`);
136
+ projectSection = await projectAndFileTests.getProjectViewSession();
137
+ (0, chai_1.expect)(await projectAndFileTests.getProjectTreeItem(projectSection, testRepoProjectName), 'Project folder was not imported').not
138
+ .undefined;
139
+ await projectAndFileTests.performTrustAuthorDialog();
140
+ const extensionsView = await (await new monaco_page_objects_1.ActivityBar().getViewControl('Extensions'))?.openView();
141
+ await driverHelper.wait(TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT);
142
+ const sections = await extensionsView?.getContent().getSections();
143
+ if (sections !== undefined) {
144
+ for (const section of sections) {
145
+ let currentItem = [];
146
+ // sometimes the item (not related with custom VSX) can be empty or not extended, but it is not an error for the test
147
+ // we do not need to control none VSX items
148
+ try {
149
+ currentItem = await section.getVisibleItems();
150
+ }
151
+ catch (err) {
152
+ if (err instanceof selenium_webdriver_1.error.ElementNotInteractableError) {
153
+ Logger_1.Logger.error('Current item is not interactable but test will continue');
154
+ }
155
+ else {
156
+ throw err;
157
+ }
158
+ }
159
+ if (currentItem.length > 0) {
160
+ viewItems?.push(...currentItem);
161
+ }
162
+ }
163
+ }
164
+ (0, chai_1.expect)(viewItems.length).equals(1);
165
+ (0, chai_1.expect)(await viewItems[0].getText()).contains('XML Language Support by Red Hat');
166
+ });
167
+ suiteTeardown('Clean up resources and restore default CHE cluster CR', async function () {
168
+ try {
169
+ kubernetesCommandLineToolsExecutor.execInContainerCommand(`oc delete secret regcred -n ${cheClusterNamespace}`);
170
+ }
171
+ catch (error) {
172
+ Logger_1.Logger.error(`Error during deleting the secret: ${error}`);
173
+ }
174
+ try {
175
+ const patch = '[{"op": "remove", "path": "/imagePullSecrets", "value": {"name": "regcred"}}]';
176
+ const commandForRestoreServiceAccount = `oc patch serviceaccount default -n ${cheClusterNamespace} --type=json -p="${patch}"`;
177
+ kubernetesCommandLineToolsExecutor.execInContainerCommand(commandForRestoreServiceAccount);
178
+ }
179
+ catch (error) {
180
+ Logger_1.Logger.error(`Error during restoring the service account: ${error}`);
181
+ }
182
+ try {
183
+ const patchDeployment = '[{"op": "remove", "path": "/spec/components/pluginRegistry/deployment"}]';
184
+ const patchPluginRegistry = '[{"op": "remove", "path": "/spec/components/pluginRegistry/openVSXURL"}]';
185
+ const restoreDefaultDeploymentPluginRegistry = `oc patch checluster ${cheClusterName} --type=json -p="${patchDeployment}" -n ${cheClusterNamespace}`;
186
+ const restoreOpenVSXRegistry = `oc patch checluster ${cheClusterName} --type=json -p="${patchPluginRegistry}" -n ${cheClusterNamespace}`;
187
+ kubernetesCommandLineToolsExecutor.execInContainerCommand(restoreDefaultDeploymentPluginRegistry);
188
+ kubernetesCommandLineToolsExecutor.execInContainerCommand(restoreOpenVSXRegistry);
189
+ }
190
+ catch (error) {
191
+ Logger_1.Logger.error(`Error during restoring the VSX registry: ${error}`);
192
+ }
193
+ try {
194
+ await testWorkspaceUtil.deleteWorkspaceByName(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
195
+ }
196
+ catch (error) {
197
+ Logger_1.Logger.error(`Cannot delete the workspace by API deleting the workspace: ${error}`);
198
+ }
199
+ });
200
+ });
201
+ //# sourceMappingURL=CustomOpenVSXRegistry.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomOpenVSXRegistry.spec.js","sourceRoot":"","sources":["../../../specs/miscellaneous/CustomOpenVSXRegistry.spec.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ suite(`Workspace using a parent test suite ${BASE_TEST_CONSTANTS_1.BASE_TEST_CON
29
29
  const workspaceHandlingTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.WorkspaceHandlingTests);
30
30
  const kubernetesCommandLineToolsExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.KubernetesCommandLineToolsExecutor);
31
31
  const driverHelper = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.DriverHelper);
32
+ const createWorkspace = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.CreateWorkspace);
32
33
  let podName = '';
33
34
  suiteSetup(function () {
34
35
  kubernetesCommandLineToolsExecutor.loginToOcp();
@@ -42,6 +43,7 @@ suite(`Workspace using a parent test suite ${BASE_TEST_CONSTANTS_1.BASE_TEST_CON
42
43
  : BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TS_SELENIUM_BASE_URL + '/dashboard/#/' + FACTORY_TEST_CONSTANTS_1.FACTORY_TEST_CONSTANTS.TS_SELENIUM_FACTORY_GIT_REPO_URL;
43
44
  await dashboard.waitPage();
44
45
  await browserTabsUtil.navigateTo(factoryUrl);
46
+ await createWorkspace.performTrustAuthorPopup();
45
47
  await workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
46
48
  (0, MochaHooks_1.registerRunningWorkspace)(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
47
49
  await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
@@ -1 +1 @@
1
- {"version":3,"file":"WorkspaceWithParent.spec.js","sourceRoot":"","sources":["../../../specs/miscellaneous/WorkspaceWithParent.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkspaceWithParent.spec.js","sourceRoot":"","sources":["../../../specs/miscellaneous/WorkspaceWithParent.spec.ts"],"names":[],"mappings":"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"}
package/index.ts CHANGED
@@ -24,6 +24,7 @@ export * from './utils/workspace/TestWorkspaceUtil';
24
24
  export * from './utils/workspace/WorkspaceStatus';
25
25
  export * from './pageobjects/dashboard/CreateWorkspace';
26
26
  export * from './pageobjects/dashboard/Dashboard';
27
+ export * from './pageobjects/dashboard/TrustAuthorPopup';
27
28
  export * from './pageobjects/dashboard/UserPreferences';
28
29
  export * from './pageobjects/dashboard/Workspaces';
29
30
  export * from './pageobjects/dashboard/workspace-details/WorkspaceDetails';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-che/che-e2e",
3
- "version": "7.90.0",
3
+ "version": "7.90.1-next-af69ec4",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -15,6 +15,7 @@ import { By, Key } from 'selenium-webdriver';
15
15
  import { Logger } from '../../utils/Logger';
16
16
  import { TIMEOUT_CONSTANTS } from '../../constants/TIMEOUT_CONSTANTS';
17
17
  import { BASE_TEST_CONSTANTS } from '../../constants/BASE_TEST_CONSTANTS';
18
+ import { TrustAuthorPopup } from './TrustAuthorPopup';
18
19
 
19
20
  @injectable()
20
21
  export class CreateWorkspace {
@@ -26,7 +27,10 @@ export class CreateWorkspace {
26
27
 
27
28
  constructor(
28
29
  @inject(CLASSES.DriverHelper)
29
- private readonly driverHelper: DriverHelper
30
+ private readonly driverHelper: DriverHelper,
31
+
32
+ @inject(CLASSES.TrustAuthorPopup)
33
+ private readonly trustAuthorPopup: TrustAuthorPopup
30
34
  ) {}
31
35
 
32
36
  async waitTitleContains(expectedText: string, timeout: number = TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT): Promise<void> {
@@ -84,6 +88,8 @@ export class CreateWorkspace {
84
88
  }
85
89
 
86
90
  await this.driverHelper.waitAndClick(CreateWorkspace.CREATE_AND_OPEN_BUTTON, timeout);
91
+
92
+ await this.performTrustAuthorPopup();
87
93
  }
88
94
 
89
95
  async clickOnEditorsDropdownListButton(sampleName: string, timeout: number): Promise<void> {
@@ -93,6 +99,16 @@ export class CreateWorkspace {
93
99
  await this.driverHelper.waitAndClick(editorDropdownListLocator, timeout);
94
100
  }
95
101
 
102
+ async performTrustAuthorPopup(): Promise<void> {
103
+ Logger.debug();
104
+
105
+ try {
106
+ await this.trustAuthorPopup.clickContinue();
107
+ } catch (e) {
108
+ Logger.info('"Trust author" popup was not shown');
109
+ }
110
+ }
111
+
96
112
  private getEditorsDropdownListLocator(sampleName: string): By {
97
113
  return By.xpath(`//div[text()=\'${sampleName}\']//parent::article//button`);
98
114
  }
@@ -0,0 +1,42 @@
1
+ /** *******************************************************************
2
+ * copyright (c) 2019-2023 Red Hat, Inc.
3
+ *
4
+ * This program and the accompanying materials are made
5
+ * available under the terms of the Eclipse Public License 2.0
6
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
7
+ *
8
+ * SPDX-License-Identifier: EPL-2.0
9
+ **********************************************************************/
10
+ import { inject, injectable } from 'inversify';
11
+ import 'reflect-metadata';
12
+ import { CLASSES } from '../../configs/inversify.types';
13
+ import { By } from 'selenium-webdriver';
14
+ import { DriverHelper } from '../../utils/DriverHelper';
15
+ import { Logger } from '../../utils/Logger';
16
+ import { TIMEOUT_CONSTANTS } from '../../constants/TIMEOUT_CONSTANTS';
17
+
18
+ @injectable()
19
+ export class TrustAuthorPopup {
20
+ private static readonly CONTINUE_BUTTON: By = By.xpath('//button[text()="Continue"]');
21
+ private static readonly TRUST_AUTHOR_POPUP_PAGE: By = By.xpath(
22
+ '//span[contains(text(), "Do you trust the authors of this repository?")]'
23
+ );
24
+
25
+ constructor(
26
+ @inject(CLASSES.DriverHelper)
27
+ readonly driverHelper: DriverHelper
28
+ ) {}
29
+
30
+ async clickContinue(timeout: number = TIMEOUT_CONSTANTS.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM): Promise<void> {
31
+ Logger.debug();
32
+
33
+ await this.waitPopupIsOpened();
34
+ await this.driverHelper.waitAndClick(TrustAuthorPopup.CONTINUE_BUTTON, timeout);
35
+ }
36
+
37
+ async waitPopupIsOpened(timeout: number = TIMEOUT_CONSTANTS.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM): Promise<void> {
38
+ Logger.debug();
39
+
40
+ await this.driverHelper.waitVisibility(TrustAuthorPopup.TRUST_AUTHOR_POPUP_PAGE, timeout);
41
+ }
42
+ }
@@ -53,7 +53,7 @@ export class CheCodeLocatorLoader extends LocatorLoader {
53
53
  requireReloadButton: By.xpath('//a[text()="Reload Required"]')
54
54
  },
55
55
  TreeItem: {
56
- projectFolderItem: By.xpath('.//div[contains(@class, "rootfolder-icon projects-name-dir")]')
56
+ projectFolderItem: By.className('pane-header expanded')
57
57
  },
58
58
  ScmView: {
59
59
  manageWorkspaceTrust: By.xpath('.//a[@class="monaco-button monaco-text-button"]'),
@@ -39,6 +39,7 @@ import { BASE_TEST_CONSTANTS } from '../../constants/BASE_TEST_CONSTANTS';
39
39
  import { FACTORY_TEST_CONSTANTS } from '../../constants/FACTORY_TEST_CONSTANTS';
40
40
  import { ITestWorkspaceUtil } from '../../utils/workspace/ITestWorkspaceUtil';
41
41
  import { Dashboard } from '../../pageobjects/dashboard/Dashboard';
42
+ import { CreateWorkspace } from '../../pageobjects/dashboard/CreateWorkspace';
42
43
 
43
44
  suite(
44
45
  `Create a workspace via launching a factory from the ${FACTORY_TEST_CONSTANTS.TS_SELENIUM_FACTORY_GIT_PROVIDER} repository ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`,
@@ -53,6 +54,7 @@ suite(
53
54
  const oauthPage: OauthPage = e2eContainer.get(CLASSES.OauthPage);
54
55
  const testWorkspaceUtil: ITestWorkspaceUtil = e2eContainer.get(TYPES.WorkspaceUtil);
55
56
  const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard);
57
+ const createWorkspace: CreateWorkspace = e2eContainer.get(CLASSES.CreateWorkspace);
56
58
 
57
59
  let projectSection: ViewSection;
58
60
  let scmProvider: SingleScmProvider;
@@ -72,6 +74,7 @@ suite(
72
74
  });
73
75
  test('Navigate to the factory URL', async function (): Promise<void> {
74
76
  await browserTabsUtil.navigateTo(FACTORY_TEST_CONSTANTS.TS_SELENIUM_FACTORY_URL());
77
+ await createWorkspace.performTrustAuthorPopup();
75
78
  });
76
79
 
77
80
  if (OAUTH_CONSTANTS.TS_SELENIUM_GIT_PROVIDER_OAUTH) {
@@ -200,6 +203,8 @@ suite(
200
203
  });
201
204
 
202
205
  suiteTeardown('Stop and delete the workspace by API', async function (): Promise<void> {
206
+ // to avoid a possible creating workspace which is not appeared on Dashboard yet. TODO: implement a better solution.
207
+ await driverHelper.wait(30000);
203
208
  await testWorkspaceUtil.stopAndDeleteWorkspaceByName(WorkspaceHandlingTests.getWorkspaceName());
204
209
  });
205
210
 
@@ -40,6 +40,7 @@ import { FACTORY_TEST_CONSTANTS, GitProviderType } from '../../constants/FACTORY
40
40
  import { OAUTH_CONSTANTS } from '../../constants/OAUTH_CONSTANTS';
41
41
  import { BASE_TEST_CONSTANTS } from '../../constants/BASE_TEST_CONSTANTS';
42
42
  import { ITestWorkspaceUtil } from '../../utils/workspace/ITestWorkspaceUtil';
43
+ import { CreateWorkspace } from '../../pageobjects/dashboard/CreateWorkspace';
43
44
 
44
45
  suite(
45
46
  `Create a workspace via launching a factory from the ${FACTORY_TEST_CONSTANTS.TS_SELENIUM_FACTORY_GIT_PROVIDER} repository without PAT/OAuth setup ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`,
@@ -54,6 +55,7 @@ suite(
54
55
  const workspaces: Workspaces = e2eContainer.get(CLASSES.Workspaces);
55
56
  const loginTests: LoginTests = e2eContainer.get(CLASSES.LoginTests);
56
57
  const testWorkspaceUtil: ITestWorkspaceUtil = e2eContainer.get(TYPES.WorkspaceUtil);
58
+ const createWorkspace: CreateWorkspace = e2eContainer.get(CLASSES.CreateWorkspace);
57
59
 
58
60
  let projectSection: ViewSection;
59
61
  let scmProvider: SingleScmProvider;
@@ -83,6 +85,7 @@ suite(
83
85
 
84
86
  test(`Navigate to the ${isPrivateRepo} repository factory URL`, async function (): Promise<void> {
85
87
  await browserTabsUtil.navigateTo(FACTORY_TEST_CONSTANTS.TS_SELENIUM_FACTORY_URL());
88
+ await createWorkspace.performTrustAuthorPopup();
86
89
  });
87
90
 
88
91
  if (FACTORY_TEST_CONSTANTS.TS_SELENIUM_IS_PRIVATE_FACTORY_GIT_REPO) {
@@ -253,6 +256,8 @@ suite(
253
256
  });
254
257
 
255
258
  suiteTeardown('Stop and delete the workspace by API', async function (): Promise<void> {
259
+ // to avoid a possible creating workspace which is not appeared on Dashboard yet. TODO: implement a better solution.
260
+ await driverHelper.wait(30000);
256
261
  await testWorkspaceUtil.stopAndDeleteWorkspaceByName(WorkspaceHandlingTests.getWorkspaceName());
257
262
  });
258
263
  }
@@ -39,6 +39,7 @@ import { BASE_TEST_CONSTANTS } from '../../constants/BASE_TEST_CONSTANTS';
39
39
  import { FACTORY_TEST_CONSTANTS, GitProviderType } from '../../constants/FACTORY_TEST_CONSTANTS';
40
40
  import { ITestWorkspaceUtil } from '../../utils/workspace/ITestWorkspaceUtil';
41
41
  import { Dashboard } from '../../pageobjects/dashboard/Dashboard';
42
+ import { CreateWorkspace } from '../../pageobjects/dashboard/CreateWorkspace';
42
43
 
43
44
  suite(
44
45
  `Create a workspace via launching a factory from the ${FACTORY_TEST_CONSTANTS.TS_SELENIUM_FACTORY_GIT_PROVIDER} repository and deny the access ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`,
@@ -53,6 +54,7 @@ suite(
53
54
  const oauthPage: OauthPage = e2eContainer.get(CLASSES.OauthPage);
54
55
  const testWorkspaceUtil: ITestWorkspaceUtil = e2eContainer.get(TYPES.WorkspaceUtil);
55
56
  const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard);
57
+ const createWorkspace: CreateWorkspace = e2eContainer.get(CLASSES.CreateWorkspace);
56
58
 
57
59
  let projectSection: ViewSection;
58
60
  let scmProvider: SingleScmProvider;
@@ -76,6 +78,7 @@ suite(
76
78
 
77
79
  test(`Navigate to the ${isPrivateRepo} repository factory URL`, async function (): Promise<void> {
78
80
  await browserTabsUtil.navigateTo(FACTORY_TEST_CONSTANTS.TS_SELENIUM_FACTORY_URL());
81
+ await createWorkspace.performTrustAuthorPopup();
79
82
  });
80
83
 
81
84
  test(`Authorize with a ${FACTORY_TEST_CONSTANTS.TS_SELENIUM_FACTORY_GIT_PROVIDER} OAuth and deny access`, async function (): Promise<void> {
@@ -103,15 +106,13 @@ suite(
103
106
  if (FACTORY_TEST_CONSTANTS.TS_SELENIUM_IS_PRIVATE_FACTORY_GIT_REPO) {
104
107
  test('Check that a project folder has not been cloned', async function (): Promise<void> {
105
108
  testRepoProjectName = StringUtil.getProjectNameFromGitUrl(FACTORY_TEST_CONSTANTS.TS_SELENIUM_FACTORY_GIT_REPO_URL);
106
- await driverHelper.waitVisibility(webCheCodeLocators.ScmView.multiProviderItem);
109
+ await driverHelper.waitVisibility(webCheCodeLocators.TitleBar.itemElement);
107
110
  await projectAndFileTests.performTrustAuthorDialog();
108
111
  const isProjectFolderUnable: string = await driverHelper.waitAndGetElementAttribute(
109
112
  (webCheCodeLocators.TreeItem as any).projectFolderItem,
110
113
  'aria-label'
111
114
  );
112
- expect(isProjectFolderUnable).to.contain(
113
- '/projects/' + testRepoProjectName + ' • Unable to resolve workspace folder (Unable to resolve nonexistent file'
114
- );
115
+ expect(isProjectFolderUnable).to.contain('No Folder Opened Section');
115
116
  });
116
117
  } else {
117
118
  test('Check if a project folder has been created', async function (): Promise<void> {
@@ -247,6 +248,8 @@ suite(
247
248
  });
248
249
 
249
250
  suiteTeardown('Stop and delete the workspace by API', async function (): Promise<void> {
251
+ // to avoid a possible creating workspace which is not appeared on Dashboard yet. TODO: implement a better solution.
252
+ await driverHelper.wait(30000);
250
253
  await testWorkspaceUtil.stopAndDeleteWorkspaceByName(WorkspaceHandlingTests.getWorkspaceName());
251
254
  });
252
255