@eclipse-che/che-e2e 7.64.0-dev-6e179e6 → 7.64.0-dev-d1061f5

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.
@@ -5,11 +5,10 @@ ENV DISPLAY=':20'
5
5
  USER root
6
6
 
7
7
  RUN apt-get update && apt-get install && \
8
- apt-get install -y ftp && \
8
+ apt-get install -y ftp x11vnc ffmpeg libvpx6 && \
9
9
  curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - && \
10
10
  apt-get install -y nodejs && \
11
11
  npm install -g typescript && \
12
- apt-get install x11vnc ffmpeg -y && \
13
12
  node -v
14
13
 
15
14
  COPY --chown=0:0 build/dockerfiles/entrypoint.sh /tmp/
@@ -98,7 +98,7 @@ else
98
98
  if [ "${SCREEN_RECORDING}" == "true" ]; then
99
99
  echo "Starting ffmpeg recording..."
100
100
  mkdir -p /tmp/ffmpeg_report
101
- nohup ffmpeg -y -video_size 1920x1080 -framerate 24 -f x11grab -i :20.0 /tmp/ffmpeg_report/output.mp4 2> /tmp/ffmpeg_report/ffmpeg_err.txt > /tmp/ffmpeg_report/ffmpeg_std.txt &
101
+ nohup ffmpeg -y -video_size 1920x1080 -framerate 30 -f x11grab -i :20.0 -c:a libvpx /tmp/ffmpeg_report/output.webm 2> /tmp/ffmpeg_report/ffmpeg_err.txt > /tmp/ffmpeg_report/ffmpeg_std.txt &
102
102
  ffmpeg_pid=$!
103
103
  trap kill_ffmpeg 2 15
104
104
  fi
@@ -226,6 +226,6 @@ export const TimeoutConstants: any = {
226
226
  /**
227
227
  * Common timeout for plugins.
228
228
  */
229
- TS_COMMON_PLUGIN_TEST_TIMEOUT: Number(process.env.TS_COMMON_PLUGIN_TEST_TIMEOUT) || 20_000
229
+ TS_COMMON_PLUGIN_TEST_TIMEOUT: Number(process.env.TS_COMMON_PLUGIN_TEST_TIMEOUT) || 15_000
230
230
 
231
231
  };
@@ -179,6 +179,6 @@ exports.TimeoutConstants = {
179
179
  /**
180
180
  * Common timeout for plugins.
181
181
  */
182
- TS_COMMON_PLUGIN_TEST_TIMEOUT: Number(process.env.TS_COMMON_PLUGIN_TEST_TIMEOUT) || 20000
182
+ TS_COMMON_PLUGIN_TEST_TIMEOUT: Number(process.env.TS_COMMON_PLUGIN_TEST_TIMEOUT) || 15000
183
183
  };
184
184
  //# sourceMappingURL=TimeoutConstants.js.map
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ /*********************************************************************
3
+ * Copyright (c) 2019-2023 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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const monaco_page_objects_1 = require("monaco-page-objects");
13
+ const MochaHooks_1 = require("../MochaHooks");
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 Logger_1 = require("../../utils/Logger");
18
+ const CheCodeLocatorLoader_1 = require("../../pageobjects/ide/CheCodeLocatorLoader");
19
+ const chai_1 = require("chai");
20
+ const TimeoutConstants_1 = require("../../constants/TimeoutConstants");
21
+ const TestConstants_1 = require("../../constants/TestConstants");
22
+ const projectAndFileTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ProjectAndFileTests);
23
+ const workspaceHandlingTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.WorkspaceHandlingTests);
24
+ const loginTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.LoginTests);
25
+ const driverHelper = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.DriverHelper);
26
+ const webCheCodeLocators = new CheCodeLocatorLoader_1.CheCodeLocatorLoader().webCheCodeLocators;
27
+ const samples = ['Node.js MongoDB', 'Node.js Express'];
28
+ suite(`Check if recommended extensions installed for ${samples}`, async function () {
29
+ let projectSection;
30
+ let extensionsView;
31
+ let extensionSection;
32
+ const extensionsListFileName = 'extensions.json';
33
+ let recommendedExtensions = {
34
+ recommendations: []
35
+ };
36
+ loginTests.loginIntoChe();
37
+ for (const sample of samples) {
38
+ workspaceHandlingTests.createAndOpenWorkspace(sample);
39
+ workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
40
+ test('Registering the running workspace', async function () {
41
+ MochaHooks_1.registerRunningWorkspace(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
42
+ });
43
+ test('Wait workspace readiness', async function () {
44
+ await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
45
+ });
46
+ test('Wait until the project will be imported and accept it as trusted one', async function () {
47
+ [projectSection] = await new monaco_page_objects_1.SideBarView().getContent().getSections();
48
+ const label = TestConstants_1.TestConstants.TS_SELENIUM_PROJECT_ROOT_FILE_NAME;
49
+ Logger_1.Logger.debug(`projectSection.findItem: find ${label}`);
50
+ const isFileImported = await projectSection.findItem(label);
51
+ chai_1.expect(isFileImported).not.eqls(undefined);
52
+ try {
53
+ const buttonYesITrustTheAuthors = `Yes, I trust the authors`;
54
+ await driverHelper.waitVisibility(webCheCodeLocators.WelcomeContent.button, TimeoutConstants_1.TimeoutConstants.TS_DIALOG_WINDOW_DEFAULT_TIMEOUT);
55
+ const trustedProjectDialog = new monaco_page_objects_1.ModalDialog();
56
+ Logger_1.Logger.debug(`trustedProjectDialog.pushButton: "${buttonYesITrustTheAuthors}"`);
57
+ await trustedProjectDialog.pushButton(buttonYesITrustTheAuthors);
58
+ }
59
+ catch (e) {
60
+ Logger_1.Logger.warn(`Welcome modal dialog was not shown: ${e}`);
61
+ }
62
+ });
63
+ test(`Get recommended extensions list from ${extensionsListFileName}`, async function () {
64
+ var _a, _b;
65
+ Logger_1.Logger.debug(`projectSection.findItem(item))?.select(): expand .vscode folder and open extensions.json.`);
66
+ await ((_a = (await projectSection.findItem('.vscode'))) === null || _a === void 0 ? void 0 : _a.select());
67
+ // time to expand project tree
68
+ await driverHelper.wait(TimeoutConstants_1.TimeoutConstants.TS_EXPAND_PROJECT_TREE_ITEM_TIMEOUT);
69
+ await ((_b = (await projectSection.findItem(extensionsListFileName))) === null || _b === void 0 ? void 0 : _b.select());
70
+ Logger_1.Logger.debug(`EditorView().openEditor(${extensionsListFileName})`);
71
+ const editor = await new monaco_page_objects_1.EditorView().openEditor(extensionsListFileName);
72
+ await driverHelper.waitVisibility(webCheCodeLocators.Editor.inputArea);
73
+ Logger_1.Logger.debug(`editor.getText(): get recommended extensions as text from editor, delete comments and parse to object.`);
74
+ recommendedExtensions = JSON.parse((await editor.getText()).replace(/\/\*[\s\S]*?\*\/|(?<=[^:])\/\/.*|^\/\/.*/g, '').trim());
75
+ Logger_1.Logger.debug(`recommendedExtensions.recommendations: Get recommendations clear names using map().`);
76
+ recommendedExtensions.recommendations = recommendedExtensions.recommendations.map((r) => r.substring(r.indexOf('.') + 1, r.length));
77
+ });
78
+ test(`Open "Extensions" view section`, async function () {
79
+ var _a;
80
+ Logger_1.Logger.debug(`ActivityBar().getViewControl('Extensions'))?.openView(): open Extensions view.`);
81
+ extensionsView = await ((_a = (await new monaco_page_objects_1.ActivityBar().getViewControl('Extensions'))) === null || _a === void 0 ? void 0 : _a.openView());
82
+ Logger_1.Logger.debug(`extensionsView?.getContent().getSections(): get current section.`);
83
+ [extensionSection] = await (extensionsView === null || extensionsView === void 0 ? void 0 : extensionsView.getContent().getSections());
84
+ });
85
+ test(`Wait until extensions starts installation`, async function () {
86
+ Logger_1.Logger.info(`Time for extensions installation TimeoutConstants.TS_COMMON_PLUGIN_TEST_TIMEOUT=${TimeoutConstants_1.TimeoutConstants.TS_COMMON_PLUGIN_TEST_TIMEOUT}`);
87
+ await driverHelper.wait(TimeoutConstants_1.TimeoutConstants.TS_COMMON_PLUGIN_TEST_TIMEOUT);
88
+ });
89
+ test(`Check if extensions is installed and enabled`, async function () {
90
+ Logger_1.Logger.info(`Check if recommendedExtensions.recommendations are installed: ${recommendedExtensions.recommendations}.`);
91
+ for (const extension of recommendedExtensions.recommendations) {
92
+ Logger_1.Logger.debug(`extensionSection.findItem(${extension}).`);
93
+ await extensionSection.findItem(extension);
94
+ Logger_1.Logger.debug(`extensionsView?.getContent().getSections(): switch to marketplace section.`);
95
+ const [marketplaceSection] = await (extensionsView === null || extensionsView === void 0 ? void 0 : extensionsView.getContent().getSections());
96
+ await driverHelper.waitVisibility(webCheCodeLocators.ExtensionsViewSection.items, TimeoutConstants_1.TimeoutConstants.TS_COMMON_PLUGIN_TEST_TIMEOUT);
97
+ Logger_1.Logger.debug(`marketplaceSection.getVisibleItems(): get first item.`);
98
+ const [firstFoundItem] = await marketplaceSection.getVisibleItems();
99
+ Logger_1.Logger.debug(`firstFoundItem?.isInstalled()`);
100
+ const isInstalled = await (firstFoundItem === null || firstFoundItem === void 0 ? void 0 : firstFoundItem.isInstalled());
101
+ Logger_1.Logger.debug(`firstFoundItem?.isInstalled(): ${isInstalled}.`);
102
+ chai_1.expect(isInstalled).eqls(true);
103
+ Logger_1.Logger.debug(`firstFoundItem.manage(): get context menu.`);
104
+ const extensionManageMenu = await firstFoundItem.manage();
105
+ Logger_1.Logger.debug(`extensionManageMenu.getItems(): get menu items.`);
106
+ const extensionMenuItems = await extensionManageMenu.getItems();
107
+ let extensionMenuItemLabels = '';
108
+ for (const item of extensionMenuItems) {
109
+ Logger_1.Logger.trace(`extensionMenuItems -> item.getLabel(): get menu items names.`);
110
+ extensionMenuItemLabels += (await item.getLabel()) + ' ';
111
+ }
112
+ Logger_1.Logger.debug(`extensionMenuItemLabels: ${extensionMenuItemLabels}.`);
113
+ chai_1.expect(extensionMenuItemLabels).contains('Disable').and.not.contains('Enable');
114
+ }
115
+ });
116
+ test('Stopping and deleting the workspace', async function () {
117
+ await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
118
+ });
119
+ }
120
+ loginTests.logoutFromChe();
121
+ });
122
+ //# sourceMappingURL=RecomendedExtentions.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecomendedExtentions.spec.js","sourceRoot":"","sources":["../../../specs/dashboard-samples/RecomendedExtentions.spec.ts"],"names":[],"mappings":"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"}
@@ -56,6 +56,7 @@ let WorkspaceHandlingTests = WorkspaceHandlingTests_1 = class WorkspaceHandlingT
56
56
  }
57
57
  createAndOpenWorkspace(stack) {
58
58
  test(`Create and open new workspace, stack:${stack}`, async () => {
59
+ await this.dashboard.clickWorkspacesButton();
59
60
  await this.dashboard.waitPage();
60
61
  Logger_1.Logger.debug(`Fetching user kubernetes namespace, storing auth token by getting workspaces API URL.`);
61
62
  await this.apiUrlResolver.getWorkspacesApiUrl();
@@ -1 +1 @@
1
- {"version":3,"file":"WorkspaceHandlingTests.js","sourceRoot":"","sources":["../../tests-library/WorkspaceHandlingTests.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkspaceHandlingTests.js","sourceRoot":"","sources":["../../tests-library/WorkspaceHandlingTests.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-che/che-e2e",
3
- "version": "7.64.0-dev-6e179e6",
3
+ "version": "7.64.0-dev-d1061f5",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -0,0 +1,148 @@
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
+
11
+ import {
12
+ ActivityBar,
13
+ ContextMenu,
14
+ ContextMenuItem,
15
+ EditorView,
16
+ ExtensionsViewItem,
17
+ ExtensionsViewSection,
18
+ Locators,
19
+ ModalDialog,
20
+ SideBarView,
21
+ TextEditor,
22
+ ViewItem,
23
+ ViewSection
24
+ } from 'monaco-page-objects';
25
+ import { registerRunningWorkspace } from '../MochaHooks';
26
+ import { LoginTests } from '../../tests-library/LoginTests';
27
+ import { e2eContainer } from '../../configs/inversify.config';
28
+ import { CLASSES } from '../../configs/inversify.types';
29
+ import { WorkspaceHandlingTests } from '../../tests-library/WorkspaceHandlingTests';
30
+ import { ProjectAndFileTests } from '../../tests-library/ProjectAndFileTests';
31
+ import { Logger } from '../../utils/Logger';
32
+ import { DriverHelper } from '../../utils/DriverHelper';
33
+ import { CheCodeLocatorLoader } from '../../pageobjects/ide/CheCodeLocatorLoader';
34
+ import { expect } from 'chai';
35
+ import { TimeoutConstants } from '../../constants/TimeoutConstants';
36
+ import { TestConstants } from '../../constants/TestConstants';
37
+
38
+ const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests);
39
+ const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests);
40
+ const loginTests: LoginTests = e2eContainer.get(CLASSES.LoginTests);
41
+ const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper);
42
+
43
+ const webCheCodeLocators: Locators = new CheCodeLocatorLoader().webCheCodeLocators;
44
+ const samples: any = ['Node.js MongoDB', 'Node.js Express'];
45
+
46
+ suite(`Check if recommended extensions installed for ${samples}`, async function (): Promise<void> {
47
+ let projectSection: ViewSection;
48
+ let extensionsView: SideBarView | undefined;
49
+ let extensionSection: ExtensionsViewSection;
50
+
51
+ const extensionsListFileName: string = 'extensions.json';
52
+ let recommendedExtensions: any = {
53
+ recommendations: []
54
+ };
55
+
56
+ loginTests.loginIntoChe();
57
+
58
+ for (const sample of samples) {
59
+ workspaceHandlingTests.createAndOpenWorkspace(sample);
60
+ workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
61
+
62
+ test('Registering the running workspace', async function (): Promise<void> {
63
+ registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName());
64
+ });
65
+
66
+ test('Wait workspace readiness', async function (): Promise<void> {
67
+ await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
68
+ });
69
+
70
+ test('Wait until the project will be imported and accept it as trusted one', async function (): Promise<void> {
71
+ [projectSection] = await new SideBarView().getContent().getSections();
72
+ const label: string = TestConstants.TS_SELENIUM_PROJECT_ROOT_FILE_NAME;
73
+ Logger.debug(`projectSection.findItem: find ${label}`);
74
+ const isFileImported: ViewItem | undefined = await projectSection.findItem(label);
75
+ expect(isFileImported).not.eqls(undefined);
76
+ try {
77
+ const buttonYesITrustTheAuthors: string = `Yes, I trust the authors`;
78
+ await driverHelper.waitVisibility(webCheCodeLocators.WelcomeContent.button, TimeoutConstants.TS_DIALOG_WINDOW_DEFAULT_TIMEOUT);
79
+ const trustedProjectDialog: ModalDialog = new ModalDialog();
80
+ Logger.debug(`trustedProjectDialog.pushButton: "${buttonYesITrustTheAuthors}"`);
81
+ await trustedProjectDialog.pushButton(buttonYesITrustTheAuthors);
82
+ } catch (e) {
83
+ Logger.warn(`Welcome modal dialog was not shown: ${e}`);
84
+ }
85
+ });
86
+
87
+ test(`Get recommended extensions list from ${extensionsListFileName}`, async function (): Promise<void> {
88
+ Logger.debug(`projectSection.findItem(item))?.select(): expand .vscode folder and open extensions.json.`);
89
+ await (await projectSection.findItem('.vscode'))?.select();
90
+ // time to expand project tree
91
+ await driverHelper.wait(TimeoutConstants.TS_EXPAND_PROJECT_TREE_ITEM_TIMEOUT);
92
+ await (await projectSection.findItem(extensionsListFileName))?.select();
93
+ Logger.debug(`EditorView().openEditor(${extensionsListFileName})`);
94
+ const editor: TextEditor = await new EditorView().openEditor(extensionsListFileName) as TextEditor;
95
+ await driverHelper.waitVisibility(webCheCodeLocators.Editor.inputArea);
96
+ Logger.debug(`editor.getText(): get recommended extensions as text from editor, delete comments and parse to object.`);
97
+ recommendedExtensions = JSON.parse((await editor.getText()).replace(/\/\*[\s\S]*?\*\/|(?<=[^:])\/\/.*|^\/\/.*/g, '').trim());
98
+ Logger.debug(`recommendedExtensions.recommendations: Get recommendations clear names using map().`);
99
+ recommendedExtensions.recommendations = recommendedExtensions.recommendations.map((r: string) => r.substring(r.indexOf('.') + 1, r.length));
100
+ });
101
+
102
+ test(`Open "Extensions" view section`, async function (): Promise<void> {
103
+ Logger.debug(`ActivityBar().getViewControl('Extensions'))?.openView(): open Extensions view.`);
104
+ extensionsView = await (await new ActivityBar().getViewControl('Extensions'))?.openView();
105
+ Logger.debug(`extensionsView?.getContent().getSections(): get current section.`);
106
+ [extensionSection] = await extensionsView?.getContent().getSections() as ExtensionsViewSection[];
107
+ });
108
+
109
+ test(`Wait until extensions starts installation`, async function (): Promise<void> {
110
+ Logger.info(`Time for extensions installation TimeoutConstants.TS_COMMON_PLUGIN_TEST_TIMEOUT=${TimeoutConstants.TS_COMMON_PLUGIN_TEST_TIMEOUT}`);
111
+ await driverHelper.wait(TimeoutConstants.TS_COMMON_PLUGIN_TEST_TIMEOUT);
112
+ });
113
+
114
+ test(`Check if extensions is installed and enabled`, async function (): Promise<void> {
115
+ Logger.info(`Check if recommendedExtensions.recommendations are installed: ${recommendedExtensions.recommendations}.`);
116
+ for (const extension of recommendedExtensions.recommendations) {
117
+ Logger.debug(`extensionSection.findItem(${extension}).`);
118
+ await extensionSection.findItem(extension);
119
+ Logger.debug(`extensionsView?.getContent().getSections(): switch to marketplace section.`);
120
+ const [marketplaceSection]: ExtensionsViewSection[] = await extensionsView?.getContent().getSections() as ExtensionsViewSection[];
121
+ await driverHelper.waitVisibility(webCheCodeLocators.ExtensionsViewSection.items, TimeoutConstants.TS_COMMON_PLUGIN_TEST_TIMEOUT);
122
+ Logger.debug(`marketplaceSection.getVisibleItems(): get first item.`);
123
+ const [firstFoundItem]: ExtensionsViewItem[] = await marketplaceSection.getVisibleItems();
124
+ Logger.debug(`firstFoundItem?.isInstalled()`);
125
+ const isInstalled: boolean = await firstFoundItem?.isInstalled() as boolean;
126
+ Logger.debug(`firstFoundItem?.isInstalled(): ${isInstalled}.`);
127
+ expect(isInstalled).eqls(true);
128
+ Logger.debug(`firstFoundItem.manage(): get context menu.`);
129
+ const extensionManageMenu: ContextMenu = await firstFoundItem.manage();
130
+ Logger.debug(`extensionManageMenu.getItems(): get menu items.`);
131
+ const extensionMenuItems: ContextMenuItem[] = await extensionManageMenu.getItems();
132
+ let extensionMenuItemLabels: string = '';
133
+ for (const item of extensionMenuItems) {
134
+ Logger.trace(`extensionMenuItems -> item.getLabel(): get menu items names.`);
135
+ extensionMenuItemLabels += (await item.getLabel()) + ' ';
136
+ }
137
+ Logger.debug(`extensionMenuItemLabels: ${extensionMenuItemLabels}.`);
138
+ expect(extensionMenuItemLabels).contains('Disable').and.not.contains('Enable');
139
+ }
140
+ });
141
+
142
+ test('Stopping and deleting the workspace', async function (): Promise<void> {
143
+ await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName());
144
+ });
145
+ }
146
+
147
+ loginTests.logoutFromChe();
148
+ });
@@ -51,6 +51,7 @@ export class WorkspaceHandlingTests {
51
51
 
52
52
  public createAndOpenWorkspace(stack: string): void {
53
53
  test(`Create and open new workspace, stack:${stack}`, async () => {
54
+ await this.dashboard.clickWorkspacesButton();
54
55
  await this.dashboard.waitPage();
55
56
  Logger.debug(`Fetching user kubernetes namespace, storing auth token by getting workspaces API URL.`);
56
57
  await this.apiUrlResolver.getWorkspacesApiUrl();