@eclipse-che/che-e2e 7.95.0-next-4787042 → 7.95.0-next-8898b7d
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.
- package/dist/pageobjects/openshift/OcpMainPage.js +13 -2
- package/dist/pageobjects/openshift/OcpMainPage.js.map +1 -1
- package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js +26 -4
- package/dist/specs/devconsole-intergration/DevConsoleIntegration.spec.js.map +1 -1
- package/package.json +1 -1
- package/pageobjects/openshift/OcpMainPage.ts +12 -2
- package/specs/devconsole-intergration/DevConsoleIntegration.spec.ts +26 -5
|
@@ -31,9 +31,11 @@ const selenium_webdriver_1 = require("selenium-webdriver");
|
|
|
31
31
|
const Logger_1 = require("../../utils/Logger");
|
|
32
32
|
const TIMEOUT_CONSTANTS_1 = require("../../constants/TIMEOUT_CONSTANTS");
|
|
33
33
|
const inversify_config_1 = require("../../configs/inversify.config");
|
|
34
|
+
const BrowserTabsUtil_1 = require("../../utils/BrowserTabsUtil");
|
|
34
35
|
let OcpMainPage = OcpMainPage_1 = class OcpMainPage {
|
|
35
|
-
constructor(driverHelper) {
|
|
36
|
+
constructor(driverHelper, browserTabsUtil) {
|
|
36
37
|
this.driverHelper = driverHelper;
|
|
38
|
+
this.browserTabsUtil = browserTabsUtil;
|
|
37
39
|
}
|
|
38
40
|
async waitOpenMainPage() {
|
|
39
41
|
Logger_1.Logger.debug();
|
|
@@ -71,6 +73,13 @@ let OcpMainPage = OcpMainPage_1 = class OcpMainPage {
|
|
|
71
73
|
await this.driverHelper.enterValue(OcpMainPage_1.PROJECT_FILTER_INPUT, projectName);
|
|
72
74
|
await this.driverHelper.waitAndClick(this.getProjectDropdownItemLocator(projectName));
|
|
73
75
|
}
|
|
76
|
+
async clickOnAppLauncherAndDevSpaceItem() {
|
|
77
|
+
Logger_1.Logger.debug('click on app launcher menu');
|
|
78
|
+
const parentGUID = await this.browserTabsUtil.getCurrentWindowHandle();
|
|
79
|
+
await this.driverHelper.waitAndClick(selenium_webdriver_1.By.css('nav[data-test-id="application-launcher"]'));
|
|
80
|
+
await this.driverHelper.waitAndClick(selenium_webdriver_1.By.xpath('//span[contains(.,"Red Hat OpenShift Dev Spaces")]'));
|
|
81
|
+
await this.browserTabsUtil.waitAndSwitchToAnotherWindow(parentGUID, TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_LOAD_PAGE_TIMEOUT);
|
|
82
|
+
}
|
|
74
83
|
getRoleLocator(role) {
|
|
75
84
|
return selenium_webdriver_1.By.xpath(`//a//*[text()="${role}"]`);
|
|
76
85
|
}
|
|
@@ -102,7 +111,9 @@ OcpMainPage.SKIP_TOUR_BUTTON = selenium_webdriver_1.By.xpath('//*[text()="Skip t
|
|
|
102
111
|
OcpMainPage = OcpMainPage_1 = __decorate([
|
|
103
112
|
(0, inversify_1.injectable)(),
|
|
104
113
|
__param(0, (0, inversify_1.inject)(inversify_types_1.CLASSES.DriverHelper)),
|
|
105
|
-
|
|
114
|
+
__param(1, (0, inversify_1.inject)(inversify_types_1.CLASSES.BrowserTabsUtil)),
|
|
115
|
+
__metadata("design:paramtypes", [DriverHelper_1.DriverHelper,
|
|
116
|
+
BrowserTabsUtil_1.BrowserTabsUtil])
|
|
106
117
|
], OcpMainPage);
|
|
107
118
|
exports.OcpMainPage = OcpMainPage;
|
|
108
119
|
//# sourceMappingURL=OcpMainPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OcpMainPage.js","sourceRoot":"","sources":["../../../pageobjects/openshift/OcpMainPage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;;;wEAQwE;AACxE,4BAA0B;AAC1B,yCAA+C;AAC/C,2DAAwD;AACxD,mEAAwD;AACxD,2DAAwC;AACxC,+CAA4C;AAC5C,yEAAsE;AAEtE,qEAA8D;AAGvD,IAAM,WAAW,mBAAjB,MAAM,WAAW;IASvB,YAEkB,YAA0B;
|
|
1
|
+
{"version":3,"file":"OcpMainPage.js","sourceRoot":"","sources":["../../../pageobjects/openshift/OcpMainPage.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,13 +17,16 @@ const chai_1 = require("chai");
|
|
|
17
17
|
const StringUtil_1 = require("../../utils/StringUtil");
|
|
18
18
|
const BASE_TEST_CONSTANTS_1 = require("../../constants/BASE_TEST_CONSTANTS");
|
|
19
19
|
const TIMEOUT_CONSTANTS_1 = require("../../constants/TIMEOUT_CONSTANTS");
|
|
20
|
+
const Logger_1 = require("../../utils/Logger");
|
|
20
21
|
suite(`DevConsole Integration ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
|
|
21
22
|
let ocpImportPage;
|
|
22
23
|
let ocpApplicationPage;
|
|
24
|
+
let parentGUID = '';
|
|
23
25
|
const projectAndFileTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ProjectAndFileTests);
|
|
24
26
|
const dashboard = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.Dashboard);
|
|
25
27
|
const loginTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.LoginTests);
|
|
26
28
|
const workspaceHandlingTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.WorkspaceHandlingTests);
|
|
29
|
+
const shellExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ShellExecutor);
|
|
27
30
|
const browserTabsUtil = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.BrowserTabsUtil);
|
|
28
31
|
const ocpMainPage = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.OcpMainPage);
|
|
29
32
|
const kubernetesCommandLineToolsExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.KubernetesCommandLineToolsExecutor);
|
|
@@ -34,10 +37,16 @@ suite(`DevConsole Integration ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_E
|
|
|
34
37
|
const projectName = 'devconsole-integration-test';
|
|
35
38
|
suiteSetup('Create new empty project using ocp', function () {
|
|
36
39
|
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
40
|
+
// delete the test project on a cluster if it has not been deleted properly in the previous run
|
|
41
|
+
const expectedProject = shellExecutor.executeCommand(`oc get project ${projectName}`);
|
|
42
|
+
if (expectedProject.stderr.length === 0) {
|
|
43
|
+
kubernetesCommandLineToolsExecutor.deleteProject(projectName);
|
|
44
|
+
}
|
|
37
45
|
kubernetesCommandLineToolsExecutor.createProject(projectName);
|
|
38
46
|
});
|
|
39
47
|
loginTests.loginIntoOcpConsole();
|
|
40
48
|
test('Select test project and Developer role on DevConsole', async function () {
|
|
49
|
+
parentGUID = await browserTabsUtil.getCurrentWindowHandle();
|
|
41
50
|
await ocpMainPage.selectDeveloperRole();
|
|
42
51
|
await ocpMainPage.selectProject(projectName);
|
|
43
52
|
});
|
|
@@ -76,15 +85,28 @@ suite(`DevConsole Integration ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_E
|
|
|
76
85
|
(0, chai_1.expect)(await projectAndFileTests.getProjectTreeItem(projectSection, applicationSourceProjectName), 'Project folder was not imported').not.undefined;
|
|
77
86
|
(0, chai_1.expect)(await projectAndFileTests.getProjectTreeItem(projectSection, BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TS_SELENIUM_PROJECT_ROOT_FILE_NAME), 'Project files were not imported').not.undefined;
|
|
78
87
|
});
|
|
79
|
-
|
|
80
|
-
await
|
|
88
|
+
test('Check redirection to DevSpaces from App launcher', async function () {
|
|
89
|
+
await browserTabsUtil.switchToWindow(parentGUID);
|
|
81
90
|
await browserTabsUtil.closeAllTabsExceptCurrent();
|
|
91
|
+
await ocpMainPage.clickOnAppLauncherAndDevSpaceItem();
|
|
92
|
+
await loginTests.loginIntoChe();
|
|
93
|
+
await dashboard.waitPage();
|
|
82
94
|
});
|
|
83
95
|
suiteTeardown('Delete project using ocp', function () {
|
|
84
96
|
kubernetesCommandLineToolsExecutor.workspaceName =
|
|
85
97
|
WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName() !== '' ? WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName() : 'spring-music';
|
|
86
|
-
|
|
87
|
-
|
|
98
|
+
try {
|
|
99
|
+
kubernetesCommandLineToolsExecutor.deleteDevWorkspace();
|
|
100
|
+
}
|
|
101
|
+
catch (err) {
|
|
102
|
+
Logger_1.Logger.error(`Error while deleting workspace: ${err}`);
|
|
103
|
+
}
|
|
104
|
+
try {
|
|
105
|
+
kubernetesCommandLineToolsExecutor.deleteProject(projectName);
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
Logger_1.Logger.error(`Cannot delete the project: ${err}`);
|
|
109
|
+
}
|
|
88
110
|
});
|
|
89
111
|
suiteTeardown('Unregister running workspace', function () {
|
|
90
112
|
(0, MochaHooks_1.registerRunningWorkspace)('');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevConsoleIntegration.spec.js","sourceRoot":"","sources":["../../../specs/devconsole-intergration/DevConsoleIntegration.spec.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;AAGxE,8CAAyD;AAEzD,qEAA8D;AAC9D,mEAAwD;AACxD,uFAAoF;AAEpF,+BAA8B;AAI9B,uDAAoD;AAEpD,6EAA0E;AAG1E,yEAAsE;
|
|
1
|
+
{"version":3,"file":"DevConsoleIntegration.spec.js","sourceRoot":"","sources":["../../../specs/devconsole-intergration/DevConsoleIntegration.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -16,6 +16,7 @@ import { Logger } from '../../utils/Logger';
|
|
|
16
16
|
import { TIMEOUT_CONSTANTS } from '../../constants/TIMEOUT_CONSTANTS';
|
|
17
17
|
import { OcpImportFromGitPage } from './OcpImportFromGitPage';
|
|
18
18
|
import { e2eContainer } from '../../configs/inversify.config';
|
|
19
|
+
import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil';
|
|
19
20
|
|
|
20
21
|
@injectable()
|
|
21
22
|
export class OcpMainPage {
|
|
@@ -29,7 +30,9 @@ export class OcpMainPage {
|
|
|
29
30
|
|
|
30
31
|
constructor(
|
|
31
32
|
@inject(CLASSES.DriverHelper)
|
|
32
|
-
private readonly driverHelper: DriverHelper
|
|
33
|
+
private readonly driverHelper: DriverHelper,
|
|
34
|
+
@inject(CLASSES.BrowserTabsUtil)
|
|
35
|
+
private readonly browserTabsUtil: BrowserTabsUtil
|
|
33
36
|
) {}
|
|
34
37
|
|
|
35
38
|
async waitOpenMainPage(): Promise<void> {
|
|
@@ -82,6 +85,14 @@ export class OcpMainPage {
|
|
|
82
85
|
await this.driverHelper.waitAndClick(this.getProjectDropdownItemLocator(projectName));
|
|
83
86
|
}
|
|
84
87
|
|
|
88
|
+
async clickOnAppLauncherAndDevSpaceItem(): Promise<void> {
|
|
89
|
+
Logger.debug('click on app launcher menu');
|
|
90
|
+
const parentGUID: string = await this.browserTabsUtil.getCurrentWindowHandle();
|
|
91
|
+
await this.driverHelper.waitAndClick(By.css('nav[data-test-id="application-launcher"]'));
|
|
92
|
+
await this.driverHelper.waitAndClick(By.xpath('//span[contains(.,"Red Hat OpenShift Dev Spaces")]'));
|
|
93
|
+
await this.browserTabsUtil.waitAndSwitchToAnotherWindow(parentGUID, TIMEOUT_CONSTANTS.TS_SELENIUM_LOAD_PAGE_TIMEOUT);
|
|
94
|
+
}
|
|
95
|
+
|
|
85
96
|
private getRoleLocator(role: string): By {
|
|
86
97
|
return By.xpath(`//a//*[text()="${role}"]`);
|
|
87
98
|
}
|
|
@@ -95,7 +106,6 @@ export class OcpMainPage {
|
|
|
95
106
|
|
|
96
107
|
await this.driverHelper.waitAndClick(this.getRoleLocator(role));
|
|
97
108
|
}
|
|
98
|
-
|
|
99
109
|
private async tryToSkipWebTour(): Promise<void> {
|
|
100
110
|
Logger.debug();
|
|
101
111
|
|
|
@@ -25,15 +25,19 @@ import { BASE_TEST_CONSTANTS } from '../../constants/BASE_TEST_CONSTANTS';
|
|
|
25
25
|
import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil';
|
|
26
26
|
import { Dashboard } from '../../pageobjects/dashboard/Dashboard';
|
|
27
27
|
import { TIMEOUT_CONSTANTS } from '../../constants/TIMEOUT_CONSTANTS';
|
|
28
|
+
import { Logger } from '../../utils/Logger';
|
|
29
|
+
import { ShellExecutor } from '../../utils/ShellExecutor';
|
|
30
|
+
import { ShellString } from 'shelljs';
|
|
28
31
|
|
|
29
32
|
suite(`DevConsole Integration ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function (): void {
|
|
30
33
|
let ocpImportPage: OcpImportFromGitPage;
|
|
31
34
|
let ocpApplicationPage: OcpApplicationPage;
|
|
32
|
-
|
|
35
|
+
let parentGUID: string = '';
|
|
33
36
|
const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests);
|
|
34
37
|
const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard);
|
|
35
38
|
const loginTests: LoginTests = e2eContainer.get(CLASSES.LoginTests);
|
|
36
39
|
const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests);
|
|
40
|
+
const shellExecutor: ShellExecutor = e2eContainer.get(CLASSES.ShellExecutor);
|
|
37
41
|
const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil);
|
|
38
42
|
const ocpMainPage: OcpMainPage = e2eContainer.get(CLASSES.OcpMainPage);
|
|
39
43
|
const kubernetesCommandLineToolsExecutor: KubernetesCommandLineToolsExecutor = e2eContainer.get(
|
|
@@ -47,12 +51,18 @@ suite(`DevConsole Integration ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function
|
|
|
47
51
|
|
|
48
52
|
suiteSetup('Create new empty project using ocp', function (): void {
|
|
49
53
|
kubernetesCommandLineToolsExecutor.loginToOcp();
|
|
54
|
+
// delete the test project on a cluster if it has not been deleted properly in the previous run
|
|
55
|
+
const expectedProject: ShellString = shellExecutor.executeCommand(`oc get project ${projectName}`);
|
|
56
|
+
if (expectedProject.stderr.length === 0) {
|
|
57
|
+
kubernetesCommandLineToolsExecutor.deleteProject(projectName);
|
|
58
|
+
}
|
|
50
59
|
kubernetesCommandLineToolsExecutor.createProject(projectName);
|
|
51
60
|
});
|
|
52
61
|
|
|
53
62
|
loginTests.loginIntoOcpConsole();
|
|
54
63
|
|
|
55
64
|
test('Select test project and Developer role on DevConsole', async function (): Promise<void> {
|
|
65
|
+
parentGUID = await browserTabsUtil.getCurrentWindowHandle();
|
|
56
66
|
await ocpMainPage.selectDeveloperRole();
|
|
57
67
|
await ocpMainPage.selectProject(projectName);
|
|
58
68
|
});
|
|
@@ -106,16 +116,27 @@ suite(`DevConsole Integration ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function
|
|
|
106
116
|
).not.undefined;
|
|
107
117
|
});
|
|
108
118
|
|
|
109
|
-
|
|
110
|
-
await
|
|
119
|
+
test('Check redirection to DevSpaces from App launcher', async function (): Promise<void> {
|
|
120
|
+
await browserTabsUtil.switchToWindow(parentGUID);
|
|
111
121
|
await browserTabsUtil.closeAllTabsExceptCurrent();
|
|
122
|
+
await ocpMainPage.clickOnAppLauncherAndDevSpaceItem();
|
|
123
|
+
await loginTests.loginIntoChe();
|
|
124
|
+
await dashboard.waitPage();
|
|
112
125
|
});
|
|
113
126
|
|
|
114
127
|
suiteTeardown('Delete project using ocp', function (): void {
|
|
115
128
|
kubernetesCommandLineToolsExecutor.workspaceName =
|
|
116
129
|
WorkspaceHandlingTests.getWorkspaceName() !== '' ? WorkspaceHandlingTests.getWorkspaceName() : 'spring-music';
|
|
117
|
-
|
|
118
|
-
|
|
130
|
+
try {
|
|
131
|
+
kubernetesCommandLineToolsExecutor.deleteDevWorkspace();
|
|
132
|
+
} catch (err) {
|
|
133
|
+
Logger.error(`Error while deleting workspace: ${err}`);
|
|
134
|
+
}
|
|
135
|
+
try {
|
|
136
|
+
kubernetesCommandLineToolsExecutor.deleteProject(projectName);
|
|
137
|
+
} catch (err) {
|
|
138
|
+
Logger.error(`Cannot delete the project: ${err}`);
|
|
139
|
+
}
|
|
119
140
|
});
|
|
120
141
|
|
|
121
142
|
suiteTeardown('Unregister running workspace', function (): void {
|