@eclipse-che/che-e2e 7.76.0-next-c26a986 → 7.76.0-next-0811b7e
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/constants/BASE_TEST_CONSTANTS.ts +1 -1
- package/dist/constants/BASE_TEST_CONSTANTS.js +1 -1
- package/dist/driver/ChromeDriver.js +1 -0
- package/dist/driver/ChromeDriver.js.map +1 -1
- package/dist/specs/dashboard-samples/Documentation.spec.js +22 -14
- package/dist/specs/dashboard-samples/Documentation.spec.js.map +1 -1
- package/dist/utils/CheReporter.js +13 -1
- package/dist/utils/CheReporter.js.map +1 -1
- package/driver/ChromeDriver.ts +1 -0
- package/package.json +2 -1
- package/specs/dashboard-samples/Documentation.spec.ts +26 -19
- package/utils/CheReporter.ts +14 -1
|
@@ -36,7 +36,7 @@ export const BASE_TEST_CONSTANTS: {
|
|
|
36
36
|
/**
|
|
37
37
|
* testing application version
|
|
38
38
|
*/
|
|
39
|
-
TESTING_APPLICATION_VERSION: process.env.TESTING_APPLICATION_VERSION || '3.
|
|
39
|
+
TESTING_APPLICATION_VERSION: process.env.TESTING_APPLICATION_VERSION || '3.9',
|
|
40
40
|
|
|
41
41
|
/**
|
|
42
42
|
* is "https://access.redhat.com/documentation/en-us/red_hat_openshift_dev_spaces/{TESTING_APPLICATION_VERSION}/" available online
|
|
@@ -23,7 +23,7 @@ exports.BASE_TEST_CONSTANTS = {
|
|
|
23
23
|
/**
|
|
24
24
|
* testing application version
|
|
25
25
|
*/
|
|
26
|
-
TESTING_APPLICATION_VERSION: process.env.TESTING_APPLICATION_VERSION || '3.
|
|
26
|
+
TESTING_APPLICATION_VERSION: process.env.TESTING_APPLICATION_VERSION || '3.9',
|
|
27
27
|
/**
|
|
28
28
|
* is "https://access.redhat.com/documentation/en-us/red_hat_openshift_dev_spaces/{TESTING_APPLICATION_VERSION}/" available online
|
|
29
29
|
* false by default
|
|
@@ -28,6 +28,7 @@ const CHROME_DRIVER_CONSTANTS_1 = require("../constants/CHROME_DRIVER_CONSTANTS"
|
|
|
28
28
|
let ChromeDriver = class ChromeDriver {
|
|
29
29
|
constructor() {
|
|
30
30
|
const options = this.getDriverOptions();
|
|
31
|
+
options.setLoggingPrefs({ performance: 'ALL' });
|
|
31
32
|
if (CHROME_DRIVER_CONSTANTS_1.CHROME_DRIVER_CONSTANTS.TS_USE_WEB_DRIVER_FOR_TEST) {
|
|
32
33
|
this.driver = this.getDriverBuilder(options).build();
|
|
33
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChromeDriver.js","sourceRoot":"","sources":["../../driver/ChromeDriver.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;wEAQwE;AACxE,wBAAsB;AACtB,4BAA0B;AAC1B,yCAAuC;AACvC,2DAAgE;AAEhE,sDAAoD;AACpD,kFAA+E;AAGxE,IAAM,YAAY,GAAlB,MAAM,YAAY;IAGxB;QACC,MAAM,OAAO,GAAY,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACjD,IAAI,iDAAuB,CAAC,0BAA0B,EAAE;YACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;SACrD;IACF,CAAC;IAED,GAAG;QACF,OAAO,IAAI,CAAC,MAA2B,CAAC;IACzC,CAAC;IAEO,gBAAgB;QACvB,IAAI,OAAO,GAAY,IAAI,gBAAO,EAAE;aAClC,YAAY,CAAC,cAAc,CAAC;aAC5B,YAAY,CAAC,wBAAwB,CAAC;aACtC,YAAY,CAAC,kCAAkC,CAAC;aAChD,YAAY,CAAC,6BAA6B,CAAC,CAAC;QAC9C,mCAAmC;QACnC,IAAI,iDAAuB,CAAC,oBAAoB,EAAE;YACjD,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;SAC3C;QACD,OAAO,OAAO,CAAC;IAChB,CAAC;IAEO,gBAAgB,CAAC,OAAgB;QACxC,MAAM,cAAc,GAAW,EAAE,oBAAoB,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;QACxE,IAAI,OAAO,GAAY,IAAI,4BAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEpF,sCAAsC;QACtC,IAAI,CAAC,iDAAuB,CAAC,6BAA6B,EAAE;YAC3D,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;SACxF;QAED,mCAAmC;QACnC,IAAI,iDAAuB,CAAC,6BAA6B,EAAE;YAC1D,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,iDAAuB,CAAC,6BAA6B,CAAC,CAAC;SACrF;QAED,OAAO,OAAO,CAAC;IAChB,CAAC;CACD,CAAA;
|
|
1
|
+
{"version":3,"file":"ChromeDriver.js","sourceRoot":"","sources":["../../driver/ChromeDriver.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;wEAQwE;AACxE,wBAAsB;AACtB,4BAA0B;AAC1B,yCAAuC;AACvC,2DAAgE;AAEhE,sDAAoD;AACpD,kFAA+E;AAGxE,IAAM,YAAY,GAAlB,MAAM,YAAY;IAGxB;QACC,MAAM,OAAO,GAAY,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACjD,OAAO,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QAChD,IAAI,iDAAuB,CAAC,0BAA0B,EAAE;YACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;SACrD;IACF,CAAC;IAED,GAAG;QACF,OAAO,IAAI,CAAC,MAA2B,CAAC;IACzC,CAAC;IAEO,gBAAgB;QACvB,IAAI,OAAO,GAAY,IAAI,gBAAO,EAAE;aAClC,YAAY,CAAC,cAAc,CAAC;aAC5B,YAAY,CAAC,wBAAwB,CAAC;aACtC,YAAY,CAAC,kCAAkC,CAAC;aAChD,YAAY,CAAC,6BAA6B,CAAC,CAAC;QAC9C,mCAAmC;QACnC,IAAI,iDAAuB,CAAC,oBAAoB,EAAE;YACjD,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;SAC3C;QACD,OAAO,OAAO,CAAC;IAChB,CAAC;IAEO,gBAAgB,CAAC,OAAgB;QACxC,MAAM,cAAc,GAAW,EAAE,oBAAoB,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;QACxE,IAAI,OAAO,GAAY,IAAI,4BAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEpF,sCAAsC;QACtC,IAAI,CAAC,iDAAuB,CAAC,6BAA6B,EAAE;YAC3D,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;SACxF;QAED,mCAAmC;QACnC,IAAI,iDAAuB,CAAC,6BAA6B,EAAE;YAC1D,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,iDAAuB,CAAC,6BAA6B,CAAC,CAAC;SACrF;QAED,OAAO,OAAO,CAAC;IAChB,CAAC;CACD,CAAA;AA5CY,YAAY;IADxB,IAAA,sBAAU,GAAE;;GACA,YAAY,CA4CxB;AA5CY,oCAAY"}
|
|
@@ -12,8 +12,10 @@ const inversify_types_1 = require("../../configs/inversify.types");
|
|
|
12
12
|
const axios_1 = __importDefault(require("axios"));
|
|
13
13
|
const BASE_TEST_CONSTANTS_1 = require("../../constants/BASE_TEST_CONSTANTS");
|
|
14
14
|
const OAUTH_CONSTANTS_1 = require("../../constants/OAUTH_CONSTANTS");
|
|
15
|
+
const Logger_1 = require("../../utils/Logger");
|
|
15
16
|
// suit works for DevSpaces
|
|
16
|
-
suite('Check links to documentation page in Dashboard
|
|
17
|
+
suite('Check links to documentation page in Dashboard', function () {
|
|
18
|
+
this.timeout(180000);
|
|
17
19
|
const pathToSampleFile = path_1.default.resolve('resources/default-devfile.yaml');
|
|
18
20
|
const workspaceName = yaml_1.default.parse(fs_1.default.readFileSync(pathToSampleFile, 'utf8')).metadata.name;
|
|
19
21
|
const kubernetesCommandLineToolsExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.KubernetesCommandLineToolsExecutor);
|
|
@@ -34,15 +36,18 @@ suite('Check links to documentation page in Dashboard.', function () {
|
|
|
34
36
|
shellExecutor.wait(5);
|
|
35
37
|
});
|
|
36
38
|
suiteSetup('Get links from product version github branch', function () {
|
|
37
|
-
|
|
39
|
+
try {
|
|
40
|
+
({ docs, links, productVersion } = JSON.parse(shellExecutor.curl(`https://raw.githubusercontent.com/redhat-developer/devspaces-images/devspaces-${testingVersion}-rhel-8/devspaces-dashboard/packages/dashboard-frontend/assets/branding/product.json`)));
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
Logger_1.Logger.error('Cannot fetch documentation links');
|
|
44
|
+
throw e;
|
|
45
|
+
}
|
|
38
46
|
({ webSocketTroubleshooting, workspace, devfile, general, storageTypes } = docs);
|
|
39
47
|
});
|
|
40
|
-
suiteTeardown('Delete default DevWorkspace', function () {
|
|
41
|
-
kubernetesCommandLineToolsExecutor.deleteDevWorkspace();
|
|
42
|
-
});
|
|
43
48
|
test('Check if product.json config contains correct application version', function () {
|
|
44
49
|
[productVersion, links[1].href, devfile, workspace, general, storageTypes, webSocketTroubleshooting].forEach((e) => {
|
|
45
|
-
(0, chai_1.expect)(e).contains(testingVersion);
|
|
50
|
+
(0, chai_1.expect)(e, 'Fetched links not matches with tested product version').contains(testingVersion);
|
|
46
51
|
});
|
|
47
52
|
});
|
|
48
53
|
loginTests.loginIntoChe();
|
|
@@ -55,7 +60,7 @@ suite('Check links to documentation page in Dashboard.', function () {
|
|
|
55
60
|
await dashboard.selectAboutMenuItem(link.text);
|
|
56
61
|
await browserTabsUtil.waitAndSwitchToAnotherWindow(parentGUID);
|
|
57
62
|
const currentUrl = await browserTabsUtil.getCurrentUrl();
|
|
58
|
-
(0, chai_1.expect)(link.href).oneOf([currentUrl, currentUrl + '/']);
|
|
63
|
+
(0, chai_1.expect)(link.href, `${link.href} not includes ${currentUrl}`).oneOf([currentUrl, currentUrl + '/']);
|
|
59
64
|
await browserTabsUtil.switchToWindow(parentGUID);
|
|
60
65
|
await browserTabsUtil.closeAllTabsExceptCurrent();
|
|
61
66
|
}
|
|
@@ -63,25 +68,25 @@ suite('Check links to documentation page in Dashboard.', function () {
|
|
|
63
68
|
test('Check if "About" dialog menu contains correct application version and username', async function () {
|
|
64
69
|
await dashboard.selectAboutMenuItem('About');
|
|
65
70
|
await dashboard.waitAboutDialogWindowMenuElements();
|
|
66
|
-
(0, chai_1.expect)(await dashboard.getApplicationVersionFromAboutDialogWindow()).eqls(productVersion);
|
|
67
|
-
(0, chai_1.expect)(await dashboard.getUsernameFromAboutDialogWindow()).eqls(OAUTH_CONSTANTS_1.OAUTH_CONSTANTS.TS_SELENIUM_OCP_USERNAME);
|
|
71
|
+
(0, chai_1.expect)(await dashboard.getApplicationVersionFromAboutDialogWindow(), 'Wrong product version').eqls(productVersion);
|
|
72
|
+
(0, chai_1.expect)(await dashboard.getUsernameFromAboutDialogWindow(), 'Wrong username').eqls(OAUTH_CONSTANTS_1.OAUTH_CONSTANTS.TS_SELENIUM_OCP_USERNAME);
|
|
68
73
|
await dashboard.closeAboutDialogWindow();
|
|
69
74
|
});
|
|
70
75
|
test('Check if Workspaces page contains "Learn More" documentation link', async function () {
|
|
71
76
|
await dashboard.clickWorkspacesButton();
|
|
72
77
|
await workspaces.waitPage();
|
|
73
|
-
(0, chai_1.expect)(await workspaces.getLearnMoreDocumentationLink()).eqls(workspace);
|
|
78
|
+
(0, chai_1.expect)(await workspaces.getLearnMoreDocumentationLink(), '"Learn More" doc link is broken').eqls(workspace);
|
|
74
79
|
});
|
|
75
80
|
test('Check if Workspace Details page contains "Storage types" documentation link', async function () {
|
|
76
81
|
await workspaces.clickWorkspaceListItemLink(workspaceName);
|
|
77
82
|
await workspaceDetails.waitWorkspaceTitle(workspaceName);
|
|
78
83
|
await workspaceDetails.clickStorageTypeInfo();
|
|
79
|
-
(0, chai_1.expect)(await workspaceDetails.getOpenStorageTypeDocumentationLink()).eqls(storageTypes);
|
|
84
|
+
(0, chai_1.expect)(await workspaceDetails.getOpenStorageTypeDocumentationLink(), '"Storage types" doc link is broken').eqls(storageTypes);
|
|
80
85
|
});
|
|
81
86
|
test('Check if Workspace Details page contains "Devfile" documentation link', async function () {
|
|
82
87
|
await workspaceDetails.closeStorageTypeInfo();
|
|
83
88
|
await workspaceDetails.selectTab('Devfile');
|
|
84
|
-
(0, chai_1.expect)(await workspaceDetails.getDevfileDocumentationLink()).eqls(devfile);
|
|
89
|
+
(0, chai_1.expect)(await workspaceDetails.getDevfileDocumentationLink(), '"Devfile" doc link is broken').eqls(devfile);
|
|
85
90
|
});
|
|
86
91
|
if (BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.IS_PRODUCT_DOCUMENTATION_RELEASED) {
|
|
87
92
|
test('Check if product.json documentation links returns status code 200', async function () {
|
|
@@ -98,11 +103,14 @@ suite('Check links to documentation page in Dashboard.', function () {
|
|
|
98
103
|
responseData = e;
|
|
99
104
|
}
|
|
100
105
|
finally {
|
|
101
|
-
(0, chai_1.expect)(responseData.status).eqls(200);
|
|
106
|
+
(0, chai_1.expect)(responseData.status, `Wrong status code ${responseData.status}`).eqls(200);
|
|
102
107
|
}
|
|
103
108
|
}
|
|
104
109
|
});
|
|
105
110
|
}
|
|
106
|
-
loginTests.
|
|
111
|
+
loginTests.logoutFromChe();
|
|
112
|
+
suiteTeardown('Delete default DevWorkspace', function () {
|
|
113
|
+
kubernetesCommandLineToolsExecutor.deleteDevWorkspace();
|
|
114
|
+
});
|
|
107
115
|
});
|
|
108
116
|
//# sourceMappingURL=Documentation.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Documentation.spec.js","sourceRoot":"","sources":["../../../specs/dashboard-samples/Documentation.spec.ts"],"names":[],"mappings":";;;;;AAUA,4CAAoB;AACpB,gDAAwB;AACxB,gDAAwB;AACxB,+BAA8B;AAC9B,qEAA8D;AAC9D,mEAAwD;AAOxD,kDAA0B;AAC1B,6EAA0E;AAC1E,qEAAkE;
|
|
1
|
+
{"version":3,"file":"Documentation.spec.js","sourceRoot":"","sources":["../../../specs/dashboard-samples/Documentation.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,6 +44,9 @@ var CheReporter_1;
|
|
|
44
44
|
*
|
|
45
45
|
* SPDX-License-Identifier: EPL-2.0
|
|
46
46
|
**********************************************************************/
|
|
47
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
48
|
+
// @ts-ignore
|
|
49
|
+
const chromeHar = __importStar(require("chrome-har"));
|
|
47
50
|
const mocha = __importStar(require("mocha"));
|
|
48
51
|
const inversify_types_1 = require("../configs/inversify.types");
|
|
49
52
|
const fs = __importStar(require("fs"));
|
|
@@ -89,7 +92,7 @@ let CheReporter = CheReporter_1 = class CheReporter extends mocha.reporters.Spec
|
|
|
89
92
|
|
|
90
93
|
TS_SAMPLE_LIST: ${PLUGIN_TEST_CONSTANTS_1.PLUGIN_TEST_CONSTANTS.TS_SAMPLE_LIST}
|
|
91
94
|
|
|
92
|
-
${process.env.MOCHA_DIRECTORY ? 'MOCHA_DIRECTORY: ' + process.env.MOCHA_DIRECTORY : '
|
|
95
|
+
${process.env.MOCHA_DIRECTORY ? 'MOCHA_DIRECTORY: ' + process.env.MOCHA_DIRECTORY : 'MOCHA_DIRECTORY is not set'}
|
|
93
96
|
${process.env.USERSTORY ? 'USERSTORY: ' + process.env.USERSTORY : 'USERSTORY is not set'}
|
|
94
97
|
`;
|
|
95
98
|
if (REPORTER_CONSTANTS_1.REPORTER_CONSTANTS.TS_SELENIUM_PRINT_TIMEOUT_VARIABLES) {
|
|
@@ -147,6 +150,7 @@ let CheReporter = CheReporter_1 = class CheReporter extends mocha.reporters.Spec
|
|
|
147
150
|
const screenshotFileName = `${testReportDirPath}/screenshot-${testTitle}.png`;
|
|
148
151
|
const pageSourceFileName = `${testReportDirPath}/pagesource-${testTitle}.html`;
|
|
149
152
|
const browserLogsFileName = `${testReportDirPath}/browserlogs-${testTitle}.txt`;
|
|
153
|
+
const harFileName = `${testReportDirPath}/har-${testTitle}.har`;
|
|
150
154
|
// create reporter dir if not exist
|
|
151
155
|
const reportDirExists = fs.existsSync(REPORTER_CONSTANTS_1.REPORTER_CONSTANTS.TS_SELENIUM_REPORT_FOLDER);
|
|
152
156
|
if (!reportDirExists) {
|
|
@@ -175,6 +179,14 @@ let CheReporter = CheReporter_1 = class CheReporter extends mocha.reporters.Spec
|
|
|
175
179
|
browserLogsStream.write(Buffer.from(browserLogs), () => {
|
|
176
180
|
browserLogsStream.end();
|
|
177
181
|
});
|
|
182
|
+
// take networking logs and write to file
|
|
183
|
+
const networkLogsEntries = await this.driverHelper.getDriver().manage().logs().get('performance');
|
|
184
|
+
const events = networkLogsEntries.map((entry) => JSON.parse(entry.message).message);
|
|
185
|
+
const har = chromeHar.harFromMessages(events, { includeTextFromResponseBody: true });
|
|
186
|
+
const networkLogsStream = fs.createWriteStream(harFileName);
|
|
187
|
+
networkLogsStream.write(Buffer.from(JSON.stringify(har)), () => {
|
|
188
|
+
networkLogsStream.end();
|
|
189
|
+
});
|
|
178
190
|
});
|
|
179
191
|
}
|
|
180
192
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheReporter.js","sourceRoot":"","sources":["../../utils/CheReporter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;wEAQwE;AACxE,6CAA+B;AAC/B,gEAAqD;AACrD,uCAAyB;AAEzB,2CAA6B;AAE7B,iDAA8C;AAC9C,mDAAgD;AAChD,sEAAmE;AACnE,qCAAkC;AAClC,6CAA0C;AAC1C,0EAAuE;AACvE,kFAA+E;AAC/E,kEAA+D;AAC/D,wEAAqE;AACrE,8EAA2E;AAC3E,yCAAuC;AACvC,8FAAwD;AACxD,kEAA2D;AAE3D,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,qCAAa,EAAC,+BAAY,CAAC,CAAC;AAEnD,IACM,WAAW,mBADjB,MACM,WAAY,SAAQ,KAAK,CAAC,SAAS,CAAC,IAAI;IAQ7C,YAAY,MAAoB,EAAE,OAA2B;QAC5D,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEvB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAS,EAAE;YAC7B,IAAI,iBAAiB,GAAW;;8BAEL,yCAAmB,CAAC,oBAAoB;8BACxC,iDAAuB,CAAC,oBAAoB;kCACxC,iCAAe,CAAC,wBAAwB;8BAC5C,yCAAmB,CAAC,kBAAkB;;+CAErB,yCAAmB,CAAC,qCAAqC;+CACzD,uCAAkB,CAAC,qCAAqC;mCACpE,uCAAkB,CAAC,yBAAyB;0CACrC,uCAAkB,CAAC,gCAAgC;wCACrD,uCAAkB,CAAC,8BAA8B;uCAClD,iDAAuB,CAAC,6BAA6B;yCACnD,yCAAmB,CAAC,+BAA+B;+BAC7D,uCAAkB,CAAC,qBAAqB;uCAChC,iDAAuB,CAAC,6BAA6B;;0CAElD,qCAAiB,CAAC,gCAAgC;6CAC/C,qCAAiB,CAAC,mCAAmC;yCACzD,qCAAiB,CAAC,+BAA+B;;wBAElE,6CAAqB,CAAC,cAAc;;QAEpD,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"CheReporter.js","sourceRoot":"","sources":["../../utils/CheReporter.ts"],"names":[],"mappings":"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"}
|
package/driver/ChromeDriver.ts
CHANGED
|
@@ -21,6 +21,7 @@ export class ChromeDriver implements IDriver {
|
|
|
21
21
|
|
|
22
22
|
constructor() {
|
|
23
23
|
const options: Options = this.getDriverOptions();
|
|
24
|
+
options.setLoggingPrefs({ performance: 'ALL' });
|
|
24
25
|
if (CHROME_DRIVER_CONSTANTS.TS_USE_WEB_DRIVER_FOR_TEST) {
|
|
25
26
|
this.driver = this.getDriverBuilder(options).build();
|
|
26
27
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eclipse-che/che-e2e",
|
|
3
|
-
"version": "7.76.0-next-
|
|
3
|
+
"version": "7.76.0-next-0811b7e",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"@typescript-eslint/parser": "^6.1.0",
|
|
39
39
|
"axios": "^0.25.0",
|
|
40
40
|
"chai": "^4.3.4",
|
|
41
|
+
"chrome-har": "^0.13.2",
|
|
41
42
|
"chromedriver": "^117.0.3",
|
|
42
43
|
"clone-deep": "^4.0.1",
|
|
43
44
|
"eslint": "^8.45.0",
|
|
@@ -23,9 +23,11 @@ import { WorkspaceDetails } from '../../pageobjects/dashboard/workspace-details/
|
|
|
23
23
|
import axios from 'axios';
|
|
24
24
|
import { BASE_TEST_CONSTANTS } from '../../constants/BASE_TEST_CONSTANTS';
|
|
25
25
|
import { OAUTH_CONSTANTS } from '../../constants/OAUTH_CONSTANTS';
|
|
26
|
+
import { Logger } from '../../utils/Logger';
|
|
26
27
|
|
|
27
28
|
// suit works for DevSpaces
|
|
28
|
-
suite('Check links to documentation page in Dashboard
|
|
29
|
+
suite('Check links to documentation page in Dashboard', function (): void {
|
|
30
|
+
this.timeout(180000);
|
|
29
31
|
const pathToSampleFile: string = path.resolve('resources/default-devfile.yaml');
|
|
30
32
|
const workspaceName: string = YAML.parse(fs.readFileSync(pathToSampleFile, 'utf8')).metadata.name;
|
|
31
33
|
const kubernetesCommandLineToolsExecutor: KubernetesCommandLineToolsExecutor = e2eContainer.get(
|
|
@@ -50,21 +52,22 @@ suite('Check links to documentation page in Dashboard.', function (): void {
|
|
|
50
52
|
});
|
|
51
53
|
|
|
52
54
|
suiteSetup('Get links from product version github branch', function (): void {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
try {
|
|
56
|
+
({ docs, links, productVersion } = JSON.parse(
|
|
57
|
+
shellExecutor.curl(
|
|
58
|
+
`https://raw.githubusercontent.com/redhat-developer/devspaces-images/devspaces-${testingVersion}-rhel-8/devspaces-dashboard/packages/dashboard-frontend/assets/branding/product.json`
|
|
59
|
+
)
|
|
60
|
+
));
|
|
61
|
+
} catch (e) {
|
|
62
|
+
Logger.error('Cannot fetch documentation links');
|
|
63
|
+
throw e;
|
|
64
|
+
}
|
|
58
65
|
({ webSocketTroubleshooting, workspace, devfile, general, storageTypes } = docs);
|
|
59
66
|
});
|
|
60
67
|
|
|
61
|
-
suiteTeardown('Delete default DevWorkspace', function (): void {
|
|
62
|
-
kubernetesCommandLineToolsExecutor.deleteDevWorkspace();
|
|
63
|
-
});
|
|
64
|
-
|
|
65
68
|
test('Check if product.json config contains correct application version', function (): void {
|
|
66
69
|
[productVersion, links[1].href, devfile, workspace, general, storageTypes, webSocketTroubleshooting].forEach((e): void => {
|
|
67
|
-
expect(e).contains(testingVersion);
|
|
70
|
+
expect(e, 'Fetched links not matches with tested product version').contains(testingVersion);
|
|
68
71
|
});
|
|
69
72
|
});
|
|
70
73
|
|
|
@@ -80,7 +83,7 @@ suite('Check links to documentation page in Dashboard.', function (): void {
|
|
|
80
83
|
await dashboard.selectAboutMenuItem(link.text);
|
|
81
84
|
await browserTabsUtil.waitAndSwitchToAnotherWindow(parentGUID);
|
|
82
85
|
const currentUrl: string = await browserTabsUtil.getCurrentUrl();
|
|
83
|
-
expect(link.href).oneOf([currentUrl, currentUrl + '/']);
|
|
86
|
+
expect(link.href, `${link.href} not includes ${currentUrl}`).oneOf([currentUrl, currentUrl + '/']);
|
|
84
87
|
await browserTabsUtil.switchToWindow(parentGUID);
|
|
85
88
|
await browserTabsUtil.closeAllTabsExceptCurrent();
|
|
86
89
|
}
|
|
@@ -89,28 +92,28 @@ suite('Check links to documentation page in Dashboard.', function (): void {
|
|
|
89
92
|
test('Check if "About" dialog menu contains correct application version and username', async function (): Promise<void> {
|
|
90
93
|
await dashboard.selectAboutMenuItem('About');
|
|
91
94
|
await dashboard.waitAboutDialogWindowMenuElements();
|
|
92
|
-
expect(await dashboard.getApplicationVersionFromAboutDialogWindow()).eqls(productVersion);
|
|
93
|
-
expect(await dashboard.getUsernameFromAboutDialogWindow()).eqls(OAUTH_CONSTANTS.TS_SELENIUM_OCP_USERNAME);
|
|
95
|
+
expect(await dashboard.getApplicationVersionFromAboutDialogWindow(), 'Wrong product version').eqls(productVersion);
|
|
96
|
+
expect(await dashboard.getUsernameFromAboutDialogWindow(), 'Wrong username').eqls(OAUTH_CONSTANTS.TS_SELENIUM_OCP_USERNAME);
|
|
94
97
|
await dashboard.closeAboutDialogWindow();
|
|
95
98
|
});
|
|
96
99
|
|
|
97
100
|
test('Check if Workspaces page contains "Learn More" documentation link', async function (): Promise<void> {
|
|
98
101
|
await dashboard.clickWorkspacesButton();
|
|
99
102
|
await workspaces.waitPage();
|
|
100
|
-
expect(await workspaces.getLearnMoreDocumentationLink()).eqls(workspace);
|
|
103
|
+
expect(await workspaces.getLearnMoreDocumentationLink(), '"Learn More" doc link is broken').eqls(workspace);
|
|
101
104
|
});
|
|
102
105
|
|
|
103
106
|
test('Check if Workspace Details page contains "Storage types" documentation link', async function (): Promise<void> {
|
|
104
107
|
await workspaces.clickWorkspaceListItemLink(workspaceName);
|
|
105
108
|
await workspaceDetails.waitWorkspaceTitle(workspaceName);
|
|
106
109
|
await workspaceDetails.clickStorageTypeInfo();
|
|
107
|
-
expect(await workspaceDetails.getOpenStorageTypeDocumentationLink()).eqls(storageTypes);
|
|
110
|
+
expect(await workspaceDetails.getOpenStorageTypeDocumentationLink(), '"Storage types" doc link is broken').eqls(storageTypes);
|
|
108
111
|
});
|
|
109
112
|
|
|
110
113
|
test('Check if Workspace Details page contains "Devfile" documentation link', async function (): Promise<void> {
|
|
111
114
|
await workspaceDetails.closeStorageTypeInfo();
|
|
112
115
|
await workspaceDetails.selectTab('Devfile');
|
|
113
|
-
expect(await workspaceDetails.getDevfileDocumentationLink()).eqls(devfile);
|
|
116
|
+
expect(await workspaceDetails.getDevfileDocumentationLink(), '"Devfile" doc link is broken').eqls(devfile);
|
|
114
117
|
});
|
|
115
118
|
|
|
116
119
|
if (BASE_TEST_CONSTANTS.IS_PRODUCT_DOCUMENTATION_RELEASED) {
|
|
@@ -126,11 +129,15 @@ suite('Check links to documentation page in Dashboard.', function (): void {
|
|
|
126
129
|
} catch (e) {
|
|
127
130
|
responseData = e;
|
|
128
131
|
} finally {
|
|
129
|
-
expect(responseData.status).eqls(200);
|
|
132
|
+
expect(responseData.status, `Wrong status code ${responseData.status}`).eqls(200);
|
|
130
133
|
}
|
|
131
134
|
}
|
|
132
135
|
});
|
|
133
136
|
}
|
|
134
137
|
|
|
135
|
-
loginTests.
|
|
138
|
+
loginTests.logoutFromChe();
|
|
139
|
+
|
|
140
|
+
suiteTeardown('Delete default DevWorkspace', function (): void {
|
|
141
|
+
kubernetesCommandLineToolsExecutor.deleteDevWorkspace();
|
|
142
|
+
});
|
|
136
143
|
});
|
package/utils/CheReporter.ts
CHANGED
|
@@ -7,6 +7,9 @@
|
|
|
7
7
|
*
|
|
8
8
|
* SPDX-License-Identifier: EPL-2.0
|
|
9
9
|
**********************************************************************/
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
import * as chromeHar from 'chrome-har';
|
|
10
13
|
import * as mocha from 'mocha';
|
|
11
14
|
import { CLASSES } from '../configs/inversify.types';
|
|
12
15
|
import * as fs from 'fs';
|
|
@@ -65,7 +68,7 @@ class CheReporter extends mocha.reporters.Spec {
|
|
|
65
68
|
|
|
66
69
|
TS_SAMPLE_LIST: ${PLUGIN_TEST_CONSTANTS.TS_SAMPLE_LIST}
|
|
67
70
|
|
|
68
|
-
${process.env.MOCHA_DIRECTORY ? 'MOCHA_DIRECTORY: ' + process.env.MOCHA_DIRECTORY : '
|
|
71
|
+
${process.env.MOCHA_DIRECTORY ? 'MOCHA_DIRECTORY: ' + process.env.MOCHA_DIRECTORY : 'MOCHA_DIRECTORY is not set'}
|
|
69
72
|
${process.env.USERSTORY ? 'USERSTORY: ' + process.env.USERSTORY : 'USERSTORY is not set'}
|
|
70
73
|
`;
|
|
71
74
|
|
|
@@ -135,6 +138,7 @@ class CheReporter extends mocha.reporters.Spec {
|
|
|
135
138
|
const screenshotFileName: string = `${testReportDirPath}/screenshot-${testTitle}.png`;
|
|
136
139
|
const pageSourceFileName: string = `${testReportDirPath}/pagesource-${testTitle}.html`;
|
|
137
140
|
const browserLogsFileName: string = `${testReportDirPath}/browserlogs-${testTitle}.txt`;
|
|
141
|
+
const harFileName: string = `${testReportDirPath}/har-${testTitle}.har`;
|
|
138
142
|
|
|
139
143
|
// create reporter dir if not exist
|
|
140
144
|
const reportDirExists: boolean = fs.existsSync(REPORTER_CONSTANTS.TS_SELENIUM_REPORT_FOLDER);
|
|
@@ -172,6 +176,15 @@ class CheReporter extends mocha.reporters.Spec {
|
|
|
172
176
|
browserLogsStream.write(Buffer.from(browserLogs), (): void => {
|
|
173
177
|
browserLogsStream.end();
|
|
174
178
|
});
|
|
179
|
+
|
|
180
|
+
// take networking logs and write to file
|
|
181
|
+
const networkLogsEntries: logging.Entry[] = await this.driverHelper.getDriver().manage().logs().get('performance');
|
|
182
|
+
const events: any[] = networkLogsEntries.map((entry): any[] => JSON.parse(entry.message).message);
|
|
183
|
+
const har: any = chromeHar.harFromMessages(events, { includeTextFromResponseBody: true });
|
|
184
|
+
const networkLogsStream: WriteStream = fs.createWriteStream(harFileName);
|
|
185
|
+
networkLogsStream.write(Buffer.from(JSON.stringify(har)), (): void => {
|
|
186
|
+
networkLogsStream.end();
|
|
187
|
+
});
|
|
175
188
|
});
|
|
176
189
|
}
|
|
177
190
|
}
|