@eclipse-che/che-e2e 7.75.0-next-74f1046 → 7.75.0-next-2113c0d
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/.eslintrc.js +1 -1
- package/README.md +1 -0
- package/configs/mocharc.ts +2 -1
- package/configs/reporters-config.json +6 -0
- package/constants/PLUGIN_TEST_CONSTANTS.ts +3 -1
- package/constants/TIMEOUT_CONSTANTS.ts +8 -2
- package/dist/configs/mocharc.js +2 -1
- package/dist/configs/mocharc.js.map +1 -1
- package/dist/constants/PLUGIN_TEST_CONSTANTS.js +2 -1
- package/dist/constants/PLUGIN_TEST_CONSTANTS.js.map +1 -1
- package/dist/constants/TIMEOUT_CONSTANTS.js +6 -2
- package/dist/constants/TIMEOUT_CONSTANTS.js.map +1 -1
- package/dist/pageobjects/ide/CheCodeLocatorLoader.js +1 -1
- package/dist/pageobjects/ide/CheCodeLocatorLoader.js.map +1 -1
- package/dist/specs/MochaHooks.js +18 -4
- package/dist/specs/MochaHooks.js.map +1 -1
- package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js +3 -6
- package/dist/specs/api/DevfileAcceptanceTestAPI.spec.js.map +1 -1
- package/dist/specs/api/EmptyWorkspaceAPI.spec.js +1 -2
- package/dist/specs/api/EmptyWorkspaceAPI.spec.js.map +1 -1
- package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js +67 -73
- package/dist/specs/dashboard-samples/RecommendedExtensions.spec.js.map +1 -1
- package/dist/specs/factory/Factory.spec.js +1 -5
- package/dist/specs/factory/Factory.spec.js.map +1 -1
- package/dist/specs/factory/NoSetupRepoFactory.spec.js +1 -24
- package/dist/specs/factory/NoSetupRepoFactory.spec.js.map +1 -1
- package/dist/specs/factory/RefusedOAuthFactory.spec.js +1 -24
- package/dist/specs/factory/RefusedOAuthFactory.spec.js.map +1 -1
- package/dist/specs/miscellaneous/CreateWorkspaceWithExistedName.spec.js +2 -2
- package/dist/specs/miscellaneous/WorkpaseUsingParent.spec.js +2 -2
- package/dist/specs/miscellaneous/WorkpaseUsingParent.spec.js.map +1 -1
- package/dist/tests-library/ProjectAndFileTests.js +10 -14
- package/dist/tests-library/ProjectAndFileTests.js.map +1 -1
- package/dist/tests-library/WorkspaceHandlingTests.js +1 -1
- package/dist/tests-library/WorkspaceHandlingTests.js.map +1 -1
- package/dist/utils/CheReporter.js +21 -20
- package/dist/utils/CheReporter.js.map +1 -1
- package/dist/utils/DevWorkspaceConfigurationHelper.js +4 -1
- package/dist/utils/DevWorkspaceConfigurationHelper.js.map +1 -1
- package/dist/utils/DevfilesRegistryHelper.js +1 -1
- package/dist/utils/DevfilesRegistryHelper.js.map +1 -1
- package/dist/utils/DriverHelper.js +2 -2
- package/dist/utils/DriverHelper.js.map +1 -1
- package/dist/utils/workspace/TestWorkspaceUtil.js +2 -3
- package/dist/utils/workspace/TestWorkspaceUtil.js.map +1 -1
- package/package.json +9 -1
- package/pageobjects/ide/CheCodeLocatorLoader.ts +1 -1
- package/specs/MochaHooks.ts +17 -2
- package/specs/dashboard-samples/RecommendedExtensions.spec.ts +64 -71
- package/specs/factory/Factory.spec.ts +1 -6
- package/specs/factory/NoSetupRepoFactory.spec.ts +1 -26
- package/specs/factory/RefusedOAuthFactory.spec.ts +1 -26
- package/specs/miscellaneous/CreateWorkspaceWithExistedName.spec.ts +2 -2
- package/tests-library/ProjectAndFileTests.ts +17 -15
- package/tests-library/WorkspaceHandlingTests.ts +1 -1
- package/tsconfig.json +2 -2
- package/utils/CheReporter.ts +16 -22
- package/utils/DriverHelper.ts +1 -1
|
@@ -23,7 +23,7 @@ import { FACTORY_TEST_CONSTANTS } from '../../constants/FACTORY_TEST_CONSTANTS';
|
|
|
23
23
|
const stackName: string = BASE_TEST_CONSTANTS.TS_SELENIUM_DASHBOARD_SAMPLE_NAME || 'Python';
|
|
24
24
|
const projectName: string = FACTORY_TEST_CONSTANTS.TS_SELENIUM_PROJECT_NAME || 'python-hello-world';
|
|
25
25
|
|
|
26
|
-
suite(
|
|
26
|
+
suite('"Start workspace with existed workspace name" test', function (): void {
|
|
27
27
|
const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests);
|
|
28
28
|
const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests);
|
|
29
29
|
const loginTests: LoginTests = e2eContainer.get(CLASSES.LoginTests);
|
|
@@ -47,7 +47,7 @@ suite(`"Start workspace with existed workspace name" test`, function (): void {
|
|
|
47
47
|
expect(isFileImported).not.eqls(undefined);
|
|
48
48
|
});
|
|
49
49
|
|
|
50
|
-
test(
|
|
50
|
+
test('Stop created workspace', async function (): Promise<void> {
|
|
51
51
|
existedWorkspaceName = WorkspaceHandlingTests.getWorkspaceName();
|
|
52
52
|
await workspaceHandlingTests.stopWorkspace(existedWorkspaceName);
|
|
53
53
|
await browserTabsUtil.closeAllTabsExceptCurrent();
|
|
@@ -10,30 +10,29 @@
|
|
|
10
10
|
|
|
11
11
|
import 'reflect-metadata';
|
|
12
12
|
import { inject, injectable } from 'inversify';
|
|
13
|
-
import { By, until } from 'selenium-webdriver';
|
|
14
13
|
import { DriverHelper } from '../utils/DriverHelper';
|
|
15
14
|
import { CLASSES } from '../configs/inversify.types';
|
|
16
15
|
import { Logger } from '../utils/Logger';
|
|
17
16
|
import { TIMEOUT_CONSTANTS } from '../constants/TIMEOUT_CONSTANTS';
|
|
18
|
-
import { Locators, ModalDialog } from 'monaco-page-objects';
|
|
19
17
|
import { CheCodeLocatorLoader } from '../pageobjects/ide/CheCodeLocatorLoader';
|
|
20
18
|
|
|
21
|
-
const webCheCodeLocators: Locators = new CheCodeLocatorLoader().webCheCodeLocators;
|
|
22
|
-
|
|
23
19
|
@injectable()
|
|
24
20
|
export class ProjectAndFileTests {
|
|
25
21
|
constructor(
|
|
26
22
|
@inject(CLASSES.DriverHelper)
|
|
27
|
-
private readonly driverHelper: DriverHelper
|
|
23
|
+
private readonly driverHelper: DriverHelper,
|
|
24
|
+
@inject(CLASSES.CheCodeLocatorLoader)
|
|
25
|
+
private readonly cheCodeLocatorLoader: CheCodeLocatorLoader
|
|
28
26
|
) {}
|
|
29
27
|
|
|
30
28
|
async waitWorkspaceReadinessForCheCodeEditor(): Promise<void> {
|
|
31
29
|
Logger.debug('waiting for editor.');
|
|
32
30
|
try {
|
|
33
31
|
const start: number = new Date().getTime();
|
|
34
|
-
await this.driverHelper
|
|
35
|
-
.
|
|
36
|
-
|
|
32
|
+
await this.driverHelper.waitVisibility(
|
|
33
|
+
this.cheCodeLocatorLoader.webCheCodeLocators.Workbench.constructor,
|
|
34
|
+
TIMEOUT_CONSTANTS.TS_SELENIUM_START_WORKSPACE_TIMEOUT
|
|
35
|
+
);
|
|
37
36
|
const end: number = new Date().getTime();
|
|
38
37
|
Logger.debug(`editor was opened in ${end - start} seconds.`);
|
|
39
38
|
} catch (err) {
|
|
@@ -43,17 +42,20 @@ export class ProjectAndFileTests {
|
|
|
43
42
|
}
|
|
44
43
|
|
|
45
44
|
async performTrustAuthorDialog(): Promise<void> {
|
|
45
|
+
Logger.debug();
|
|
46
|
+
|
|
47
|
+
await this.driverHelper.waitAndClick(
|
|
48
|
+
this.cheCodeLocatorLoader.webCheCodeLocators.WelcomeContent.button,
|
|
49
|
+
TIMEOUT_CONSTANTS.TS_DIALOG_WINDOW_DEFAULT_TIMEOUT
|
|
50
|
+
);
|
|
51
|
+
|
|
46
52
|
try {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
webCheCodeLocators.WelcomeContent.button,
|
|
53
|
+
await this.driverHelper.waitAndClick(
|
|
54
|
+
this.cheCodeLocatorLoader.webCheCodeLocators.WelcomeContent.button,
|
|
50
55
|
TIMEOUT_CONSTANTS.TS_DIALOG_WINDOW_DEFAULT_TIMEOUT
|
|
51
56
|
);
|
|
52
|
-
const trustedProjectDialog: ModalDialog = new ModalDialog();
|
|
53
|
-
Logger.debug(`trustedProjectDialog.pushButton: "${buttonYesITrustTheAuthors}"`);
|
|
54
|
-
await trustedProjectDialog.pushButton(buttonYesITrustTheAuthors);
|
|
55
57
|
} catch (e) {
|
|
56
|
-
Logger.
|
|
58
|
+
Logger.info('Second welcome content dialog box was not shown');
|
|
57
59
|
}
|
|
58
60
|
}
|
|
59
61
|
}
|
|
@@ -81,7 +81,7 @@ export class WorkspaceHandlingTests {
|
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
async obtainWorkspaceNameFromStartingPage(): Promise<void> {
|
|
84
|
-
const timeout: number = TIMEOUT_CONSTANTS.
|
|
84
|
+
const timeout: number = TIMEOUT_CONSTANTS.TS_SELENIUM_START_WORKSPACE_TIMEOUT;
|
|
85
85
|
const polling: number = TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING;
|
|
86
86
|
const attempts: number = Math.ceil(timeout / polling);
|
|
87
87
|
|
package/tsconfig.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
3
|
"skipLibCheck": true,
|
|
4
|
-
"target": "
|
|
4
|
+
"target": "es2021",
|
|
5
5
|
"module": "commonjs",
|
|
6
6
|
"strict": true,
|
|
7
7
|
"esModuleInterop": true,
|
|
8
8
|
"outDir": "dist",
|
|
9
|
-
"lib": ["
|
|
9
|
+
"lib": ["es2021", "dom"],
|
|
10
10
|
"types": ["reflect-metadata", "@types/mocha", "@types/node"],
|
|
11
11
|
"experimentalDecorators": true,
|
|
12
12
|
"emitDecoratorMetadata": true,
|
package/utils/CheReporter.ts
CHANGED
|
@@ -23,21 +23,22 @@ import { CHROME_DRIVER_CONSTANTS } from '../constants/CHROME_DRIVER_CONSTANTS';
|
|
|
23
23
|
import { OAUTH_CONSTANTS } from '../constants/OAUTH_CONSTANTS';
|
|
24
24
|
import { REPORTER_CONSTANTS } from '../constants/REPORTER_CONSTANTS';
|
|
25
25
|
import { PLUGIN_TEST_CONSTANTS } from '../constants/PLUGIN_TEST_CONSTANTS';
|
|
26
|
-
import {
|
|
26
|
+
import { injectable } from 'inversify';
|
|
27
|
+
import getDecorators from 'inversify-inject-decorators';
|
|
28
|
+
import { e2eContainer } from '../configs/inversify.config';
|
|
29
|
+
|
|
30
|
+
const { lazyInject } = getDecorators(e2eContainer);
|
|
27
31
|
|
|
28
32
|
@injectable()
|
|
29
33
|
class CheReporter extends mocha.reporters.Spec {
|
|
30
34
|
private static methodIndex: number = 0;
|
|
31
35
|
private static deleteScreencast: boolean = true;
|
|
36
|
+
@lazyInject(CLASSES.DriverHelper)
|
|
37
|
+
private readonly driverHelper!: DriverHelper;
|
|
38
|
+
@lazyInject(CLASSES.ScreenCatcher)
|
|
39
|
+
private readonly screenCatcher!: ScreenCatcher;
|
|
32
40
|
|
|
33
|
-
constructor(
|
|
34
|
-
runner: mocha.Runner,
|
|
35
|
-
options: mocha.MochaOptions,
|
|
36
|
-
@inject(CLASSES.DriverHelper)
|
|
37
|
-
private readonly driverHelper: DriverHelper,
|
|
38
|
-
@inject(CLASSES.ScreenCatcher)
|
|
39
|
-
private readonly screenCatcher: ScreenCatcher
|
|
40
|
-
) {
|
|
41
|
+
constructor(runner: mocha.Runner, options: mocha.MochaOptions) {
|
|
41
42
|
super(runner, options);
|
|
42
43
|
|
|
43
44
|
runner.on('start', (): void => {
|
|
@@ -111,13 +112,7 @@ class CheReporter extends mocha.reporters.Spec {
|
|
|
111
112
|
}
|
|
112
113
|
});
|
|
113
114
|
|
|
114
|
-
runner.on('end',
|
|
115
|
-
// ensure that fired events done
|
|
116
|
-
await this.driverHelper.wait(5000);
|
|
117
|
-
|
|
118
|
-
// close driver
|
|
119
|
-
await this.driverHelper.getDriver().quit();
|
|
120
|
-
|
|
115
|
+
runner.on('end', (): void => {
|
|
121
116
|
// delete screencast folder if conditions matched
|
|
122
117
|
if (CheReporter.deleteScreencast && REPORTER_CONSTANTS.DELETE_SCREENCAST_IF_TEST_PASS) {
|
|
123
118
|
rm.sync(REPORTER_CONSTANTS.TS_SELENIUM_REPORT_FOLDER);
|
|
@@ -158,14 +153,12 @@ class CheReporter extends mocha.reporters.Spec {
|
|
|
158
153
|
// take screenshot and write to file
|
|
159
154
|
const screenshot: string = await this.driverHelper.getDriver().takeScreenshot();
|
|
160
155
|
const screenshotStream: WriteStream = fs.createWriteStream(screenshotFileName);
|
|
161
|
-
screenshotStream.write(Buffer.from(screenshot, 'base64'));
|
|
162
|
-
screenshotStream.end();
|
|
156
|
+
screenshotStream.write(Buffer.from(screenshot, 'base64'), (): void => screenshotStream.end());
|
|
163
157
|
|
|
164
158
|
// take page source and write to file
|
|
165
159
|
const pageSource: string = await this.driverHelper.getDriver().getPageSource();
|
|
166
160
|
const pageSourceStream: WriteStream = fs.createWriteStream(pageSourceFileName);
|
|
167
|
-
pageSourceStream.write(Buffer.from(pageSource));
|
|
168
|
-
pageSourceStream.end();
|
|
161
|
+
pageSourceStream.write(Buffer.from(pageSource), (): void => pageSourceStream.end());
|
|
169
162
|
|
|
170
163
|
// take browser console logs and write to file
|
|
171
164
|
const browserLogsEntries: logging.Entry[] = await this.driverHelper.getDriver().manage().logs().get('browser');
|
|
@@ -176,8 +169,9 @@ class CheReporter extends mocha.reporters.Spec {
|
|
|
176
169
|
});
|
|
177
170
|
|
|
178
171
|
const browserLogsStream: WriteStream = fs.createWriteStream(browserLogsFileName);
|
|
179
|
-
browserLogsStream.write(Buffer.from(browserLogs))
|
|
180
|
-
|
|
172
|
+
browserLogsStream.write(Buffer.from(browserLogs), (): void => {
|
|
173
|
+
browserLogsStream.end();
|
|
174
|
+
});
|
|
181
175
|
});
|
|
182
176
|
}
|
|
183
177
|
}
|
package/utils/DriverHelper.ts
CHANGED
|
@@ -398,7 +398,7 @@ export class DriverHelper {
|
|
|
398
398
|
}
|
|
399
399
|
|
|
400
400
|
throw new error.TimeoutError(
|
|
401
|
-
`Exceeded maximum
|
|
401
|
+
`Exceeded maximum getting of the '${cssAttribute}' css attribute attempts, from the '${elementLocator}' element`
|
|
402
402
|
);
|
|
403
403
|
}
|
|
404
404
|
|