@eclipse-che/che-e2e 7.41.0-dev-aed762b → 7.41.0
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/README.md +3 -1
- package/build/dockerfiles/entrypoint.sh +3 -3
- package/dist/tests/e2e_happy_path/DevWorkspaceHappyPath.spec.js +84 -13
- package/dist/tests/e2e_happy_path/DevWorkspaceHappyPath.spec.js.map +1 -1
- package/initDevfileTests.sh +6 -6
- package/mocha-all-devfiles.json +12 -0
- package/mocha-all-factories.json +12 -0
- package/mocha-all-plugins.json +11 -0
- package/mocha-connector.json +9 -0
- package/mocha-devworkspace-happy-path.json +11 -0
- package/mocha-factory.json +11 -0
- package/mocha-git-publish-branch.json +11 -0
- package/mocha-git-self-sign-cert.json +11 -0
- package/mocha-git-ssh.json +11 -0
- package/mocha-happy-path.json +12 -0
- package/mocha-java-vertx.json +9 -0
- package/mocha-load.json +9 -0
- package/mocha-single-devfile.json +8 -0
- package/mocha-wkspc-creation-and-ls.json +9 -0
- package/mocha.intelij.json +9 -0
- package/mocha.json +8 -0
- package/mocha.ocp.link.json +8 -0
- package/mocha.single.plugin.json +7 -0
- package/package.json +18 -18
- package/tests/e2e_happy_path/DevWorkspaceHappyPath.spec.ts +98 -11
- package/mocha-all-devfiles.opts +0 -8
- package/mocha-all-factories.opts +0 -8
- package/mocha-all-plugins.opts +0 -7
- package/mocha-connector.opts +0 -7
- package/mocha-devworkspace-happy-path.opts +0 -7
- package/mocha-factory.opts +0 -7
- package/mocha-git-publish-branch.opts +0 -7
- package/mocha-git-self-sign-cert.opts +0 -7
- package/mocha-git-ssh.opts +0 -7
- package/mocha-happy-path.opts +0 -8
- package/mocha-java-vertx.opts +0 -7
- package/mocha-load.opts +0 -7
- package/mocha-single-devfile.opts +0 -6
- package/mocha-wkspc-creation-and-ls.opts +0 -7
- package/mocha.intelij.opts +0 -7
- package/mocha.ocp.link.opts +0 -6
- package/mocha.opts +0 -7
- package/mocha.single.plugin.opts +0 -5
package/README.md
CHANGED
|
@@ -12,7 +12,9 @@
|
|
|
12
12
|
**Perform commands:**
|
|
13
13
|
|
|
14
14
|
- ```export TS_SELENIUM_BASE_URL=<Che7 URL>```
|
|
15
|
-
- ```npm
|
|
15
|
+
- ```npm ci```
|
|
16
|
+
|
|
17
|
+
Note: If there is any modifications in package.json, manually execute the `npm install` to update the package-lock.json. So that errors can be avoided while executing npm ci
|
|
16
18
|
|
|
17
19
|
## Default launch
|
|
18
20
|
|
|
@@ -64,7 +64,7 @@ done
|
|
|
64
64
|
if mount | grep 'e2e' && ! mount | grep 'e2e/report'; then
|
|
65
65
|
echo "The local code is mounted. Executing local code."
|
|
66
66
|
cd /tmp/e2e || exit
|
|
67
|
-
npm
|
|
67
|
+
npm ci
|
|
68
68
|
else
|
|
69
69
|
echo "Executing e2e tests from an image."
|
|
70
70
|
cd /tmp/e2e || exit
|
|
@@ -85,13 +85,13 @@ if [ $TS_LOAD_TESTS ]; then
|
|
|
85
85
|
echo "Tarring files and sending them via FTP..."
|
|
86
86
|
tar -cf $user_folder.tar ./$user_folder
|
|
87
87
|
|
|
88
|
-
ftp -vn load-tests-ftp-service << End_script
|
|
88
|
+
ftp -vn load-tests-ftp-service << End_script
|
|
89
89
|
user user pass1234
|
|
90
90
|
binary
|
|
91
91
|
put $user_folder.tar
|
|
92
92
|
quit
|
|
93
93
|
End_script
|
|
94
|
-
|
|
94
|
+
|
|
95
95
|
echo "Files sent to load-tests-ftp-service."
|
|
96
96
|
else
|
|
97
97
|
SCREEN_RECORDING=${VIDEO_RECORDING:-true}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// /*********************************************************************
|
|
3
|
-
// * Copyright (c) 2021 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
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
12
3
|
if (k2 === undefined) k2 = k;
|
|
13
4
|
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
@@ -31,14 +22,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
31
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
32
23
|
};
|
|
33
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
const inversify_config_1 = require("../../inversify.config");
|
|
35
25
|
const inversify_types_1 = require("../../inversify.types");
|
|
36
|
-
const
|
|
37
|
-
const
|
|
38
|
-
const TimeoutConstants_1 = require("../../TimeoutConstants");
|
|
26
|
+
const inversify_config_1 = require("../../inversify.config");
|
|
27
|
+
const Ide_1 = require("../../pageobjects/ide/Ide");
|
|
39
28
|
const selenium_webdriver_1 = require("selenium-webdriver");
|
|
40
29
|
const Logger_1 = require("../../utils/Logger");
|
|
30
|
+
const TestConstants_1 = require("../../TestConstants");
|
|
31
|
+
const TimeoutConstants_1 = require("../../TimeoutConstants");
|
|
41
32
|
const fs = __importStar(require("fs"));
|
|
33
|
+
const axios_1 = __importDefault(require("axios"));
|
|
34
|
+
const CheReporter_1 = __importDefault(require("../../driver/CheReporter"));
|
|
42
35
|
const ide = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.Ide);
|
|
43
36
|
const projectTree = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ProjectTree);
|
|
44
37
|
const browserTabsUtil = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.BrowserTabsUtil);
|
|
@@ -54,6 +47,8 @@ const topMenu = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.To
|
|
|
54
47
|
const globalTaskScope = 'Global';
|
|
55
48
|
const terminal = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.Terminal);
|
|
56
49
|
const warningDialog = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.DialogWindow);
|
|
50
|
+
const debugView = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.DebugView);
|
|
51
|
+
const welcomeControllerJavaFileName = 'WelcomeController.java';
|
|
57
52
|
const SpringAppLocators = {
|
|
58
53
|
springTitleLocator: selenium_webdriver_1.By.xpath('//div[@class=\'container-fluid\']//h2[text()=\'Welcome\']'),
|
|
59
54
|
springMenuButtonLocator: selenium_webdriver_1.By.css('button[data-target=\'#main-navbar\']'),
|
|
@@ -159,6 +154,43 @@ suite('Validation of workspace build and run', async () => {
|
|
|
159
154
|
await terminal.closeTerminalTab('build');
|
|
160
155
|
});
|
|
161
156
|
});
|
|
157
|
+
suite('Validation of debug functionality', async () => {
|
|
158
|
+
let urlToPetClinicApp = '';
|
|
159
|
+
test('Launch debug', async () => {
|
|
160
|
+
const taskName = 'run-debug';
|
|
161
|
+
await topMenu.runTask(`${taskName}, ${globalTaskScope}`);
|
|
162
|
+
await ide.waitNotification('Process 8080-tcp is now listening on port 8080. Open it ?', 180000);
|
|
163
|
+
await ide.clickOnNotificationButton('Process 8080-tcp is now listening on port 8080. Open it ?', 'Open In New Tab');
|
|
164
|
+
});
|
|
165
|
+
test('Check content of the launched application', async () => {
|
|
166
|
+
const mainWindowHandle = await browserTabsUtil.getCurrentWindowHandle();
|
|
167
|
+
await browserTabsUtil.waitAndSwitchToAnotherWindow(mainWindowHandle, TimeoutConstants_1.TimeoutConstants.TS_EDITOR_TAB_INTERACTION_TIMEOUT);
|
|
168
|
+
urlToPetClinicApp = await browserTabsUtil.getCurrentUrl();
|
|
169
|
+
await browserTabsUtil.switchToWindow(mainWindowHandle);
|
|
170
|
+
});
|
|
171
|
+
test('Open debug view', async () => {
|
|
172
|
+
await projectTree.expandPathAndOpenFile(pathToJavaFolder + '/system', welcomeControllerJavaFileName);
|
|
173
|
+
await editor.selectTab(welcomeControllerJavaFileName);
|
|
174
|
+
await topMenu.selectOption('View', 'Debug');
|
|
175
|
+
await ide.waitLeftToolbarButton(Ide_1.LeftToolbarButton.Debug);
|
|
176
|
+
});
|
|
177
|
+
test('Choose debug configuration', async () => {
|
|
178
|
+
await debugView.clickOnDebugConfigurationDropDown();
|
|
179
|
+
await debugView.clickOnDebugConfigurationItem('Debug (Attach) - Remote (java-spring-petclinic)');
|
|
180
|
+
});
|
|
181
|
+
test('Run debug', async () => {
|
|
182
|
+
await debugView.clickOnRunDebugButton();
|
|
183
|
+
await waitDebugToConnect();
|
|
184
|
+
});
|
|
185
|
+
test('Activate breakpoint', async () => {
|
|
186
|
+
await editor.selectTab(welcomeControllerJavaFileName);
|
|
187
|
+
await editor.activateBreakpoint(welcomeControllerJavaFileName, 27);
|
|
188
|
+
});
|
|
189
|
+
test('Check debugger stop at the breakpoint', async () => {
|
|
190
|
+
await sendRequestToDebugApp(urlToPetClinicApp);
|
|
191
|
+
await waitStoppedBreakpoint(27);
|
|
192
|
+
});
|
|
193
|
+
});
|
|
162
194
|
async function checkJavaPathCompletion() {
|
|
163
195
|
if (await ide.isNotificationPresent('Classpath is incomplete. Only syntax errors will be reported')) {
|
|
164
196
|
const classpathText = fs.readFileSync('./files/happy-path/petclinic-classpath.txt', 'utf8');
|
|
@@ -195,6 +227,45 @@ async function switchAppWindowAndCheck(contentLocator) {
|
|
|
195
227
|
}
|
|
196
228
|
}
|
|
197
229
|
await driverHelper.waitVisibility(contentLocator);
|
|
230
|
+
await driverHelper.getDriver().close();
|
|
198
231
|
await browserTabsUtil.switchToWindow(mainWindowHandle);
|
|
199
232
|
}
|
|
233
|
+
async function waitStoppedBreakpoint(lineNumber) {
|
|
234
|
+
try {
|
|
235
|
+
await editor.waitStoppedDebugBreakpoint(welcomeControllerJavaFileName, lineNumber);
|
|
236
|
+
}
|
|
237
|
+
catch (err) {
|
|
238
|
+
const mainWindowHandle = await browserTabsUtil.getCurrentWindowHandle();
|
|
239
|
+
await browserTabsUtil.waitAndSwitchToAnotherWindow(mainWindowHandle, TimeoutConstants_1.TimeoutConstants.TS_EDITOR_TAB_INTERACTION_TIMEOUT);
|
|
240
|
+
await driverHelper.getDriver().navigate().refresh();
|
|
241
|
+
await browserTabsUtil.switchToWindow(mainWindowHandle);
|
|
242
|
+
await editor.waitStoppedDebugBreakpoint(welcomeControllerJavaFileName, lineNumber);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
// we need to send a request to test app. under debugging because when we try to make it with WebDriver
|
|
246
|
+
// the WebDriver will hang. Because the test application does not respond under debugging,
|
|
247
|
+
// for avoiding this problem we send http request with axios and set the request timeout. We expect that request will fail with
|
|
248
|
+
// timeout error, we check it in the catch block and wait breakpoint activating in the WebDriver after this.
|
|
249
|
+
async function sendRequestToDebugApp(urlToApp) {
|
|
250
|
+
const httpClient = axios_1.default.create();
|
|
251
|
+
httpClient.defaults.timeout = 1000;
|
|
252
|
+
try {
|
|
253
|
+
await httpClient.get(urlToApp);
|
|
254
|
+
}
|
|
255
|
+
catch (error) {
|
|
256
|
+
if (error.message === 'timeout of 1000ms exceeded') {
|
|
257
|
+
console.log('>>>>The debugger is set >>>>>>>>>>>>>>>>>>> ' + error.message);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
async function waitDebugToConnect() {
|
|
262
|
+
try {
|
|
263
|
+
await debugView.waitForDebuggerToConnect();
|
|
264
|
+
}
|
|
265
|
+
catch (err) {
|
|
266
|
+
Logger_1.Logger.debug('Workaround for the https://github.com/eclipse/che/issues/18034 issue.');
|
|
267
|
+
await debugView.clickOnThreadsViewTitle();
|
|
268
|
+
await debugView.waitForDebuggerToConnect();
|
|
269
|
+
}
|
|
270
|
+
}
|
|
200
271
|
//# sourceMappingURL=DevWorkspaceHappyPath.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevWorkspaceHappyPath.spec.js","sourceRoot":"","sources":["../../../tests/e2e_happy_path/DevWorkspaceHappyPath.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DevWorkspaceHappyPath.spec.js","sourceRoot":"","sources":["../../../tests/e2e_happy_path/DevWorkspaceHappyPath.spec.ts"],"names":[],"mappings":"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"}
|
package/initDevfileTests.sh
CHANGED
|
@@ -8,21 +8,21 @@ launchAllUserstories(){
|
|
|
8
8
|
echo ""
|
|
9
9
|
echo "Launching all userstories";
|
|
10
10
|
echo ""
|
|
11
|
-
|
|
12
|
-
npm run lint && npm run tsc && mocha --
|
|
11
|
+
|
|
12
|
+
npm run lint && npm run tsc && mocha --config mocha-all-devfiles.json ;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
launchSingleUserstory(){
|
|
16
16
|
echo ""
|
|
17
17
|
echo "Launching the \"${USERSTORY}\" userstory";
|
|
18
18
|
echo ""
|
|
19
|
-
|
|
20
|
-
tsc && mocha --
|
|
19
|
+
|
|
20
|
+
tsc && mocha --config mocha-single-devfile.json --spec dist/tests/login/Login.spec.js --spec dist/tests/devfiles/${USERSTORY}.spec.js ;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
checkUserstoryName(){
|
|
24
24
|
local checkedName="$(ls tests/devfiles | grep ${USERSTORY}.spec.ts)";
|
|
25
|
-
|
|
25
|
+
|
|
26
26
|
if [ -z "$checkedName" ]; then
|
|
27
27
|
echo ""
|
|
28
28
|
echo "Current value USERSTORY=\"${USERSTORY}\" doesn't match to any existed test:"
|
|
@@ -31,7 +31,7 @@ checkUserstoryName(){
|
|
|
31
31
|
echo ""
|
|
32
32
|
echo "Please choose one of the tests above, or unset the \"USERSTORY\" variable for launching all of them."
|
|
33
33
|
echo ""
|
|
34
|
-
|
|
34
|
+
|
|
35
35
|
exit 1;
|
|
36
36
|
fi
|
|
37
37
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"timeout": "2200000",
|
|
3
|
+
"reporter": "dist/driver/CheReporter.js",
|
|
4
|
+
"ui": "tdd",
|
|
5
|
+
"full-trace": true,
|
|
6
|
+
"require": "source-map-support/register",
|
|
7
|
+
"spec": [
|
|
8
|
+
"dist/tests/login/Login.spec.js",
|
|
9
|
+
"dist/tests/devfiles/*.spec.js",
|
|
10
|
+
"dist/tests/e2e/FactoryUrl.spec.js"
|
|
11
|
+
]
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"timeout": "2200000",
|
|
3
|
+
"reporter": "dist/driver/CheReporter.js",
|
|
4
|
+
"ui": "tdd",
|
|
5
|
+
"bail": true,
|
|
6
|
+
"full-trace": true,
|
|
7
|
+
"require": "source-map-support/register",
|
|
8
|
+
"spec": [
|
|
9
|
+
"dist/tests/login/Login.spec.js",
|
|
10
|
+
"dist/tests/e2e/factories/*.spec.js"
|
|
11
|
+
]
|
|
12
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"timeout": "2200000",
|
|
3
|
+
"reporter": "dist/driver/CheReporter.js",
|
|
4
|
+
"ui": "tdd",
|
|
5
|
+
"full-trace": true,
|
|
6
|
+
"require": "source-map-support/register",
|
|
7
|
+
"spec": [
|
|
8
|
+
"dist/tests/login/Login.spec.js",
|
|
9
|
+
"dist/tests/e2e_happy_path/DevWorkspaceHappyPath.spec.js"
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"timeout": "2200000",
|
|
3
|
+
"reporter": "dist/driver/CheReporter.js",
|
|
4
|
+
"ui": "tdd",
|
|
5
|
+
"bail": true,
|
|
6
|
+
"full-trace": true,
|
|
7
|
+
"require": "source-map-support/register",
|
|
8
|
+
"spec": [
|
|
9
|
+
"dist/tests/login/Login.spec.js",
|
|
10
|
+
"dist/tests/e2e_happy_path/HappyPath.spec.js"
|
|
11
|
+
]
|
|
12
|
+
}
|
package/mocha-load.json
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"timeout": "1200000",
|
|
3
|
+
"reporter": "dist/driver/CheReporter.js",
|
|
4
|
+
"ui": "tdd",
|
|
5
|
+
"bail": true,
|
|
6
|
+
"full-trace": true,
|
|
7
|
+
"support": "source-map-support/register",
|
|
8
|
+
"spec": ["./dist/tests/login/Login.spec.js", "./dist/tests/intelij/IntelijOpenWorkspace.spec.js"]
|
|
9
|
+
}
|
package/mocha.json
ADDED
package/package.json
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eclipse-che/che-e2e",
|
|
3
|
-
"version": "7.41.0
|
|
3
|
+
"version": "7.41.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"cleanup-docker": "if [ $(docker ps -a | grep -c selenium-e2e) -gt 0 ]; then docker rm -f $(docker ps --filter \"name=selenium-e2e\" -aq); fi;",
|
|
8
8
|
"test-docker": "npm run cleanup-docker && docker run -it --shm-size=2g -p 5920:5920 --name selenium-e2e -e TS_SELENIUM_BASE_URL=$TS_SELENIUM_BASE_URL eclipse/che-e2e:nightly",
|
|
9
9
|
"test-docker-mount-e2e": "npm run cleanup-docker && docker run -it --shm-size=2g -p 5920:5920 --name selenium-e2e -e TS_SELENIUM_BASE_URL=$TS_SELENIUM_BASE_URL -v $(pwd):/tmp/e2e:Z eclipse/che-e2e:nightly",
|
|
10
|
-
"test": "./generateIndex.sh && npm run lint && npm run tsc && mocha --
|
|
11
|
-
"load-test": "./generateIndex.sh && npm run lint && npm run tsc && mocha --
|
|
12
|
-
"test-happy-path": "./generateIndex.sh && npm run lint && npm run tsc && mocha --
|
|
13
|
-
"test-devworkspace-happy-path": "./generateIndex.sh && npm run lint && npm run tsc && mocha --
|
|
14
|
-
"test-wkspc-creation-and-ls": "./generateIndex.sh && npm run lint && npm run tsc && mocha --
|
|
15
|
-
"test-java-vertx": "./generateIndex.sh && npm run lint && npm run tsc && mocha --
|
|
16
|
-
"test-git-ssh": "./generateIndex.sh && npm run lint && npm run tsc && mocha --
|
|
17
|
-
"test-git-self-sign-cert": "./generateIndex.sh && npm run lint && npm run tsc && mocha --
|
|
18
|
-
"test-git-publish-branch": "./generateIndex.sh && npm run lint && npm run tsc && mocha --
|
|
19
|
-
"test-openshift-connector": "./generateIndex.sh && npm run lint && npm run tsc && mocha --
|
|
10
|
+
"test": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha.json",
|
|
11
|
+
"load-test": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-load.json",
|
|
12
|
+
"test-happy-path": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-happy-path.json",
|
|
13
|
+
"test-devworkspace-happy-path": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-devworkspace-happy-path.json",
|
|
14
|
+
"test-wkspc-creation-and-ls": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-wkspc-creation-and-ls",
|
|
15
|
+
"test-java-vertx": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-java-vertx.json",
|
|
16
|
+
"test-git-ssh": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-git-ssh.json",
|
|
17
|
+
"test-git-self-sign-cert": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-git-self-sign-cert.json",
|
|
18
|
+
"test-git-publish-branch": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-git-publish-branch.json",
|
|
19
|
+
"test-openshift-connector": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-connector.json",
|
|
20
20
|
"test-all-devfiles": "./generateIndex.sh && ./initDevfileTests.sh",
|
|
21
|
-
"test-factory": "./generateIndex.sh && npm run lint && npm run tsc && mocha --
|
|
22
|
-
"test-all-factories": "./generateIndex.sh && npm run lint && npm run tsc && mocha --
|
|
23
|
-
"test-intelij": "tsc && mocha --
|
|
24
|
-
"test-oauth": "tsc && mocha --
|
|
21
|
+
"test-factory": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-factory.json",
|
|
22
|
+
"test-all-factories": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-all-factories.json",
|
|
23
|
+
"test-intelij": "tsc && mocha --config mocha.intelij.json",
|
|
24
|
+
"test-oauth": "tsc && mocha --config mocha.ocp.link.json",
|
|
25
25
|
"lint": "tslint --fix -p .",
|
|
26
26
|
"tsc": "tsc -p .",
|
|
27
|
-
"init-mocha-opts": "tsc && mocha --
|
|
27
|
+
"init-mocha-opts": "tsc && mocha --config mocha-single-devfile.json --spec dist/tests/login/Login.spec.js",
|
|
28
28
|
"test-plugin": "./initPluginTest.sh",
|
|
29
29
|
"test-plugin-ci": "export TS_DELETE_PLUGINS_TEST_WORKSPACE=false && npm run init-mocha-opts -- --spec dist/tests/plugins/${USERSTORY}.spec.js",
|
|
30
|
-
"test-all-plugins": "tsc && mocha --
|
|
30
|
+
"test-all-plugins": "tsc && mocha --config mocha-all-plugins.json"
|
|
31
31
|
},
|
|
32
32
|
"author": "Ihor Okhrimenko (iokhrime@redhat.com)",
|
|
33
33
|
"license": "ISC",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"axios": "0.21.2",
|
|
41
41
|
"chai": "4.2.0",
|
|
42
42
|
"chromedriver": "95.0.0",
|
|
43
|
-
"mocha": "
|
|
43
|
+
"mocha": "^9.1.3",
|
|
44
44
|
"rimraf": "2.6.2",
|
|
45
45
|
"selenium-webdriver": "3.6.0",
|
|
46
46
|
"ts-node": "8.0.3",
|
|
@@ -7,23 +7,24 @@
|
|
|
7
7
|
// *
|
|
8
8
|
// * SPDX-License-Identifier: EPL-2.0
|
|
9
9
|
// **********************************************************************/
|
|
10
|
-
|
|
11
|
-
import { e2eContainer } from '../../inversify.config';
|
|
12
|
-
import { CLASSES } from '../../inversify.types';
|
|
13
|
-
import CheReporter from '../../driver/CheReporter';
|
|
14
10
|
import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil';
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
11
|
+
import { CLASSES } from '../../inversify.types';
|
|
12
|
+
import { DebugView } from '../../pageobjects/ide/DebugView';
|
|
13
|
+
import { DialogWindow } from '../../pageobjects/ide/DialogWindow';
|
|
14
|
+
import { DriverHelper } from '../../utils/DriverHelper';
|
|
15
|
+
import { e2eContainer } from '../../inversify.config';
|
|
20
16
|
import { Editor } from '../../pageobjects/ide/Editor';
|
|
17
|
+
import { Ide, LeftToolbarButton } from '../../pageobjects/ide/Ide';
|
|
21
18
|
import { Key, error, By } from 'selenium-webdriver';
|
|
22
|
-
import { DriverHelper } from '../../utils/DriverHelper';
|
|
23
19
|
import { Logger } from '../../utils/Logger';
|
|
20
|
+
import { ProjectTree } from '../../pageobjects/ide/ProjectTree';
|
|
24
21
|
import { Terminal } from '../../pageobjects/ide/Terminal';
|
|
25
|
-
import {
|
|
22
|
+
import { TestConstants } from '../../TestConstants';
|
|
23
|
+
import { TimeoutConstants } from '../../TimeoutConstants';
|
|
24
|
+
import { TopMenu } from '../../pageobjects/ide/TopMenu';
|
|
26
25
|
import * as fs from 'fs';
|
|
26
|
+
import axios from 'axios';
|
|
27
|
+
import CheReporter from '../../driver/CheReporter';
|
|
27
28
|
|
|
28
29
|
const ide: Ide = e2eContainer.get(CLASSES.Ide);
|
|
29
30
|
const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree);
|
|
@@ -40,6 +41,8 @@ const topMenu: TopMenu = e2eContainer.get(CLASSES.TopMenu);
|
|
|
40
41
|
const globalTaskScope = 'Global';
|
|
41
42
|
const terminal: Terminal = e2eContainer.get(CLASSES.Terminal);
|
|
42
43
|
const warningDialog: DialogWindow = e2eContainer.get(CLASSES.DialogWindow);
|
|
44
|
+
const debugView: DebugView = e2eContainer.get(CLASSES.DebugView);
|
|
45
|
+
const welcomeControllerJavaFileName: string = 'WelcomeController.java';
|
|
43
46
|
|
|
44
47
|
|
|
45
48
|
const SpringAppLocators = {
|
|
@@ -161,6 +164,51 @@ suite('Workspace creation via factory url', async () => {
|
|
|
161
164
|
});
|
|
162
165
|
});
|
|
163
166
|
|
|
167
|
+
suite('Validation of debug functionality', async () => {
|
|
168
|
+
let urlToPetClinicApp = '';
|
|
169
|
+
test('Launch debug', async () => {
|
|
170
|
+
const taskName: string = 'run-debug';
|
|
171
|
+
await topMenu.runTask(`${taskName}, ${globalTaskScope}`);
|
|
172
|
+
await ide.waitNotification('Process 8080-tcp is now listening on port 8080. Open it ?', 180_000);
|
|
173
|
+
await ide.clickOnNotificationButton('Process 8080-tcp is now listening on port 8080. Open it ?', 'Open In New Tab');
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
test('Check content of the launched application', async () => {
|
|
177
|
+
const mainWindowHandle: string = await browserTabsUtil.getCurrentWindowHandle();
|
|
178
|
+
await browserTabsUtil.waitAndSwitchToAnotherWindow(mainWindowHandle, TimeoutConstants.TS_EDITOR_TAB_INTERACTION_TIMEOUT);
|
|
179
|
+
urlToPetClinicApp = await browserTabsUtil.getCurrentUrl();
|
|
180
|
+
await browserTabsUtil.switchToWindow(mainWindowHandle);
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
test('Open debug view', async () => {
|
|
184
|
+
await projectTree.expandPathAndOpenFile(pathToJavaFolder + '/system', welcomeControllerJavaFileName);
|
|
185
|
+
await editor.selectTab(welcomeControllerJavaFileName);
|
|
186
|
+
await topMenu.selectOption('View', 'Debug');
|
|
187
|
+
await ide.waitLeftToolbarButton(LeftToolbarButton.Debug);
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
test('Choose debug configuration', async () => {
|
|
191
|
+
await debugView.clickOnDebugConfigurationDropDown();
|
|
192
|
+
await debugView.clickOnDebugConfigurationItem('Debug (Attach) - Remote (java-spring-petclinic)');
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
test('Run debug', async () => {
|
|
196
|
+
await debugView.clickOnRunDebugButton();
|
|
197
|
+
await waitDebugToConnect();
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
test('Activate breakpoint', async () => {
|
|
201
|
+
await editor.selectTab(welcomeControllerJavaFileName);
|
|
202
|
+
await editor.activateBreakpoint(welcomeControllerJavaFileName, 27);
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
test('Check debugger stop at the breakpoint', async () => {
|
|
206
|
+
await sendRequestToDebugApp(urlToPetClinicApp);
|
|
207
|
+
await waitStoppedBreakpoint(27);
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
});
|
|
211
|
+
|
|
164
212
|
async function checkJavaPathCompletion() {
|
|
165
213
|
if (await ide.isNotificationPresent('Classpath is incomplete. Only syntax errors will be reported')) {
|
|
166
214
|
const classpathText: string = fs.readFileSync('./files/happy-path/petclinic-classpath.txt', 'utf8');
|
|
@@ -200,5 +248,44 @@ async function switchAppWindowAndCheck(contentLocator: By) {
|
|
|
200
248
|
}
|
|
201
249
|
}
|
|
202
250
|
await driverHelper.waitVisibility(contentLocator);
|
|
251
|
+
await driverHelper.getDriver().close();
|
|
203
252
|
await browserTabsUtil.switchToWindow(mainWindowHandle);
|
|
204
253
|
}
|
|
254
|
+
|
|
255
|
+
async function waitStoppedBreakpoint(lineNumber: number) {
|
|
256
|
+
try {
|
|
257
|
+
await editor.waitStoppedDebugBreakpoint(welcomeControllerJavaFileName, lineNumber);
|
|
258
|
+
} catch (err) {
|
|
259
|
+
const mainWindowHandle: string = await browserTabsUtil.getCurrentWindowHandle();
|
|
260
|
+
await browserTabsUtil.waitAndSwitchToAnotherWindow(mainWindowHandle, TimeoutConstants.TS_EDITOR_TAB_INTERACTION_TIMEOUT);
|
|
261
|
+
await driverHelper.getDriver().navigate().refresh();
|
|
262
|
+
await browserTabsUtil.switchToWindow(mainWindowHandle);
|
|
263
|
+
await editor.waitStoppedDebugBreakpoint(welcomeControllerJavaFileName, lineNumber);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
// we need to send a request to test app. under debugging because when we try to make it with WebDriver
|
|
267
|
+
// the WebDriver will hang. Because the test application does not respond under debugging,
|
|
268
|
+
// for avoiding this problem we send http request with axios and set the request timeout. We expect that request will fail with
|
|
269
|
+
// timeout error, we check it in the catch block and wait breakpoint activating in the WebDriver after this.
|
|
270
|
+
async function sendRequestToDebugApp(urlToApp: string) {
|
|
271
|
+
const httpClient = axios.create();
|
|
272
|
+
httpClient.defaults.timeout = 1000;
|
|
273
|
+
try {
|
|
274
|
+
await httpClient.get(urlToApp);
|
|
275
|
+
} catch (error) {
|
|
276
|
+
if (error.message === 'timeout of 1000ms exceeded') {
|
|
277
|
+
console.log('>>>>The debugger is set >>>>>>>>>>>>>>>>>>> ' + error.message);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
async function waitDebugToConnect() {
|
|
283
|
+
try {
|
|
284
|
+
await debugView.waitForDebuggerToConnect();
|
|
285
|
+
} catch (err) {
|
|
286
|
+
Logger.debug('Workaround for the https://github.com/eclipse/che/issues/18034 issue.');
|
|
287
|
+
await debugView.clickOnThreadsViewTitle();
|
|
288
|
+
await debugView.waitForDebuggerToConnect();
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
|
package/mocha-all-devfiles.opts
DELETED
package/mocha-all-factories.opts
DELETED
package/mocha-all-plugins.opts
DELETED
package/mocha-connector.opts
DELETED
package/mocha-factory.opts
DELETED
package/mocha-git-ssh.opts
DELETED
package/mocha-happy-path.opts
DELETED
package/mocha-java-vertx.opts
DELETED
package/mocha-load.opts
DELETED
package/mocha.intelij.opts
DELETED
package/mocha.ocp.link.opts
DELETED
package/mocha.opts
DELETED