@eclipse-che/che-e2e 7.109.0-next-55ab807 → 7.109.0-next-b680b0d
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/CODE_STYLE.md +5 -0
- package/dist/pageobjects/dashboard/Workspaces.js +1 -1
- package/dist/pageobjects/dashboard/Workspaces.js.map +1 -1
- package/dist/specs/miscellaneous/ExtensionActivationTest.spec.js +132 -0
- package/dist/specs/miscellaneous/ExtensionActivationTest.spec.js.map +1 -0
- package/package.json +1 -1
- package/pageobjects/dashboard/Workspaces.ts +1 -1
- package/specs/miscellaneous/ExtensionActivationTest.spec.ts +172 -0
package/CODE_STYLE.md
CHANGED
|
@@ -28,6 +28,7 @@ Automated lint checking and code format performs with ESLint and Prettier tools
|
|
|
28
28
|
### Preferable code style
|
|
29
29
|
|
|
30
30
|
1. Page-object and util classes
|
|
31
|
+
|
|
31
32
|
1. ✔ Class declaration using dependency injection (inversify library)
|
|
32
33
|
|
|
33
34
|
```
|
|
@@ -37,6 +38,7 @@ Automated lint checking and code format performs with ESLint and Prettier tools
|
|
|
37
38
|
```
|
|
38
39
|
|
|
39
40
|
2. Public methods
|
|
41
|
+
|
|
40
42
|
- ✔ Declare public methods without "public "keyword
|
|
41
43
|
- ✔ Add Logger.debug() inside method to log its name (with optional message)
|
|
42
44
|
|
|
@@ -49,6 +51,7 @@ Automated lint checking and code format performs with ESLint and Prettier tools
|
|
|
49
51
|
```
|
|
50
52
|
|
|
51
53
|
3. Locators
|
|
54
|
+
|
|
52
55
|
- ✔ For static locators - private static readonly fields type of By
|
|
53
56
|
|
|
54
57
|
```
|
|
@@ -102,6 +105,7 @@ Automated lint checking and code format performs with ESLint and Prettier tools
|
|
|
102
105
|
```
|
|
103
106
|
|
|
104
107
|
2. Mocha framework
|
|
108
|
+
|
|
105
109
|
- ✔ TDD framework (`suite()`, `test()`)
|
|
106
110
|
- ✔ Inject class instances, declare all test data inside test `suit()` function to avoid unnecessary code execution if test suit will not be run
|
|
107
111
|
|
|
@@ -118,6 +122,7 @@ Automated lint checking and code format performs with ESLint and Prettier tools
|
|
|
118
122
|
- ✔ Use test [./constants](constants) to make test flexible
|
|
119
123
|
|
|
120
124
|
3. Packages
|
|
125
|
+
|
|
121
126
|
1. Add packages as dev dependencies
|
|
122
127
|
2. If any changes re-create package-lock.json before push
|
|
123
128
|
|
|
@@ -165,7 +165,7 @@ let Workspaces = Workspaces_1 = class Workspaces {
|
|
|
165
165
|
return selenium_webdriver_1.By.xpath(`${this.getWorkspaceListItemLocator(workspaceName).value}//button[text()='${buttonText}']`);
|
|
166
166
|
}
|
|
167
167
|
getOpenButtonLocator(workspaceName) {
|
|
168
|
-
return selenium_webdriver_1.By.xpath(`${this.getWorkspaceListItemLocator(workspaceName).value}//td[@data-key=5]//
|
|
168
|
+
return selenium_webdriver_1.By.xpath(`${this.getWorkspaceListItemLocator(workspaceName).value}//td[@data-key=5]//button[text()='Open']`);
|
|
169
169
|
}
|
|
170
170
|
getOpenWorkspaceDetailsLinkLocator(workspaceName) {
|
|
171
171
|
return selenium_webdriver_1.By.xpath(`${this.getWorkspaceListItemLocator(workspaceName).value}//a[text()='${workspaceName}']`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Workspaces.js","sourceRoot":"","sources":["../../../pageobjects/dashboard/Workspaces.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Workspaces.js","sourceRoot":"","sources":["../../../pageobjects/dashboard/Workspaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** *******************************************************************
|
|
3
|
+
* copyright (c) 2025 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 inversify_config_1 = require("../../configs/inversify.config");
|
|
13
|
+
const inversify_types_1 = require("../../configs/inversify.types");
|
|
14
|
+
const WorkspaceHandlingTests_1 = require("../../tests-library/WorkspaceHandlingTests");
|
|
15
|
+
const MochaHooks_1 = require("../MochaHooks");
|
|
16
|
+
const chai_1 = require("chai");
|
|
17
|
+
const TIMEOUT_CONSTANTS_1 = require("../../constants/TIMEOUT_CONSTANTS");
|
|
18
|
+
const selenium_webdriver_1 = require("selenium-webdriver");
|
|
19
|
+
const BASE_TEST_CONSTANTS_1 = require("../../constants/BASE_TEST_CONSTANTS");
|
|
20
|
+
const FACTORY_TEST_CONSTANTS_1 = require("../../constants/FACTORY_TEST_CONSTANTS");
|
|
21
|
+
suite(`Extension Activation Test ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
|
|
22
|
+
const workspaceHandlingTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.WorkspaceHandlingTests);
|
|
23
|
+
const projectAndFileTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ProjectAndFileTests);
|
|
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 browserTabsUtil = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.BrowserTabsUtil);
|
|
27
|
+
const dashboard = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.Dashboard);
|
|
28
|
+
const testWorkspaceUtil = inversify_config_1.e2eContainer.get(inversify_types_1.TYPES.WorkspaceUtil);
|
|
29
|
+
const workspaces = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.Workspaces);
|
|
30
|
+
const factoryUrl = BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()
|
|
31
|
+
? FACTORY_TEST_CONSTANTS_1.FACTORY_TEST_CONSTANTS.TS_SELENIUM_AIRGAP_FACTORY_GIT_REPO_URL ||
|
|
32
|
+
'https://gh.crw-qe.com/test-automation-only/python-hello-world/tree/test-vscode-extensions'
|
|
33
|
+
: FACTORY_TEST_CONSTANTS_1.FACTORY_TEST_CONSTANTS.TS_SELENIUM_FACTORY_GIT_REPO_URL ||
|
|
34
|
+
'https://github.com/crw-qe/python-hello-world/tree/test-vscode-extensions';
|
|
35
|
+
const PROJECT_NAME = 'python-hello-world';
|
|
36
|
+
const PYTHON_FILE_NAME = 'hello-world.py';
|
|
37
|
+
const RUN_PYTHON_BUTTON = selenium_webdriver_1.By.xpath('//a[@aria-label="Run Python File"]');
|
|
38
|
+
const TERMINAL_OUTPUT = selenium_webdriver_1.By.className('xterm-screen');
|
|
39
|
+
const OUTPUT_PANEL_TAB = selenium_webdriver_1.By.xpath('//a[contains(@aria-label, "Output")]');
|
|
40
|
+
const PYTHON_OUTPUT_OPTION = selenium_webdriver_1.By.xpath('//option[text()="Python"]');
|
|
41
|
+
const MONACO_SELECT_BOX = selenium_webdriver_1.By.css('select.monaco-select-box');
|
|
42
|
+
const OUTPUT_PANEL_CONTENT = selenium_webdriver_1.By.xpath('//div[contains(@class, "output")]//div[contains(@class, "view-lines")]');
|
|
43
|
+
const WORKSPACE_RESTART_TIMEOUT = 300000;
|
|
44
|
+
let workspaceName = '';
|
|
45
|
+
suiteSetup('Login to DevSpaces', async function () {
|
|
46
|
+
await loginTests.loginIntoChe();
|
|
47
|
+
});
|
|
48
|
+
test('Create and open workspace from factory URL', async function () {
|
|
49
|
+
await workspaceHandlingTests.createAndOpenWorkspaceFromGitRepository(factoryUrl);
|
|
50
|
+
await workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
|
|
51
|
+
workspaceName = WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName();
|
|
52
|
+
(0, chai_1.expect)(workspaceName, 'Workspace name was not detected').not.empty;
|
|
53
|
+
(0, MochaHooks_1.registerRunningWorkspace)(workspaceName);
|
|
54
|
+
});
|
|
55
|
+
test('Wait for workspace readiness and handle trust dialogs', async function () {
|
|
56
|
+
await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
|
|
57
|
+
await projectAndFileTests.performTrustDialogs();
|
|
58
|
+
});
|
|
59
|
+
test('Open Python file and run it', async function () {
|
|
60
|
+
const projectSection = await projectAndFileTests.getProjectViewSession();
|
|
61
|
+
await projectSection.openItem(PROJECT_NAME, PYTHON_FILE_NAME);
|
|
62
|
+
await driverHelper.wait(TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM);
|
|
63
|
+
await driverHelper.waitAndClick(RUN_PYTHON_BUTTON);
|
|
64
|
+
await driverHelper.wait(TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_DIALOG_WINDOW_DEFAULT_TIMEOUT);
|
|
65
|
+
});
|
|
66
|
+
test('Check terminal output shows "Hello, world!"', async function () {
|
|
67
|
+
const terminalOutput = await driverHelper.waitAndGetText(TERMINAL_OUTPUT, TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_COMMON_PLUGIN_TEST_TIMEOUT);
|
|
68
|
+
(0, chai_1.expect)(terminalOutput).to.include('Hello, world!');
|
|
69
|
+
});
|
|
70
|
+
test('Check Output panel for Python activation errors', async function () {
|
|
71
|
+
await driverHelper.waitAndClick(OUTPUT_PANEL_TAB);
|
|
72
|
+
await driverHelper.wait(TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING);
|
|
73
|
+
await driverHelper.waitAndClick(MONACO_SELECT_BOX);
|
|
74
|
+
await driverHelper.waitAndClick(PYTHON_OUTPUT_OPTION);
|
|
75
|
+
await driverHelper.wait(TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING);
|
|
76
|
+
const outputText = await driverHelper.waitAndGetText(OUTPUT_PANEL_CONTENT, TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_COMMON_PLUGIN_TEST_TIMEOUT);
|
|
77
|
+
(0, chai_1.expect)(outputText).to.not.include('Failed to activate a workspace');
|
|
78
|
+
(0, chai_1.expect)(outputText).to.not.include('Missing required @injectable annotation');
|
|
79
|
+
});
|
|
80
|
+
test('Refresh page and verify extension still works', async function () {
|
|
81
|
+
await browserTabsUtil.refreshPage();
|
|
82
|
+
await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
|
|
83
|
+
await driverHelper.wait(TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_IDE_LOAD_TIMEOUT);
|
|
84
|
+
const projectSection = await projectAndFileTests.getProjectViewSession();
|
|
85
|
+
await projectSection.openItem(PROJECT_NAME, PYTHON_FILE_NAME);
|
|
86
|
+
await driverHelper.wait(TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM);
|
|
87
|
+
await driverHelper.waitAndClick(RUN_PYTHON_BUTTON);
|
|
88
|
+
await driverHelper.wait(TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_DIALOG_WINDOW_DEFAULT_TIMEOUT);
|
|
89
|
+
const terminalOutput = await driverHelper.waitAndGetText(TERMINAL_OUTPUT, TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_COMMON_PLUGIN_TEST_TIMEOUT);
|
|
90
|
+
(0, chai_1.expect)(terminalOutput).to.include('Hello, world!');
|
|
91
|
+
await driverHelper.waitAndClick(OUTPUT_PANEL_TAB);
|
|
92
|
+
const outputText = await driverHelper.waitAndGetText(OUTPUT_PANEL_CONTENT, TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_COMMON_PLUGIN_TEST_TIMEOUT);
|
|
93
|
+
(0, chai_1.expect)(outputText).to.not.include('Failed to activate a workspace');
|
|
94
|
+
});
|
|
95
|
+
test('Stop workspace', async function () {
|
|
96
|
+
const currentWorkspaceName = WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName();
|
|
97
|
+
(0, chai_1.expect)(currentWorkspaceName, 'Workspace name not available').not.empty;
|
|
98
|
+
await dashboard.openDashboard();
|
|
99
|
+
await dashboard.waitPage();
|
|
100
|
+
await dashboard.stopWorkspaceByUI(currentWorkspaceName);
|
|
101
|
+
});
|
|
102
|
+
test('Start workspace after stop', async function () {
|
|
103
|
+
this.timeout(WORKSPACE_RESTART_TIMEOUT + 60000);
|
|
104
|
+
const currentWorkspaceName = WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName();
|
|
105
|
+
await workspaces.waitWorkspaceWithStoppedStatus(currentWorkspaceName);
|
|
106
|
+
const originalWindowHandle = await browserTabsUtil.getCurrentWindowHandle();
|
|
107
|
+
await workspaces.clickOpenButton(currentWorkspaceName);
|
|
108
|
+
await browserTabsUtil.waitAndSwitchToAnotherWindow(originalWindowHandle, WORKSPACE_RESTART_TIMEOUT);
|
|
109
|
+
await driverHelper.wait(TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_IDE_LOAD_TIMEOUT);
|
|
110
|
+
await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
|
|
111
|
+
});
|
|
112
|
+
test('Verify Python execution after workspace restart', async function () {
|
|
113
|
+
const projectSection = await projectAndFileTests.getProjectViewSession();
|
|
114
|
+
await projectSection.openItem(PROJECT_NAME, PYTHON_FILE_NAME);
|
|
115
|
+
await driverHelper.wait(TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM);
|
|
116
|
+
await driverHelper.waitAndClick(RUN_PYTHON_BUTTON);
|
|
117
|
+
await driverHelper.wait(TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_DIALOG_WINDOW_DEFAULT_TIMEOUT);
|
|
118
|
+
const terminalOutput = await driverHelper.waitAndGetText(TERMINAL_OUTPUT, TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_COMMON_PLUGIN_TEST_TIMEOUT);
|
|
119
|
+
(0, chai_1.expect)(terminalOutput).to.include('Hello, world!');
|
|
120
|
+
});
|
|
121
|
+
suiteTeardown('Open dashboard and close all other tabs', async function () {
|
|
122
|
+
await dashboard.openDashboard();
|
|
123
|
+
await browserTabsUtil.closeAllTabsExceptCurrent();
|
|
124
|
+
});
|
|
125
|
+
suiteTeardown('Stop and delete the workspace by API', async function () {
|
|
126
|
+
await testWorkspaceUtil.stopAndDeleteWorkspaceByName(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
|
|
127
|
+
});
|
|
128
|
+
suiteTeardown('Unregister running workspace', function () {
|
|
129
|
+
(0, MochaHooks_1.registerRunningWorkspace)('');
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
//# sourceMappingURL=ExtensionActivationTest.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtensionActivationTest.spec.js","sourceRoot":"","sources":["../../../specs/miscellaneous/ExtensionActivationTest.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -240,7 +240,7 @@ export class Workspaces {
|
|
|
240
240
|
}
|
|
241
241
|
|
|
242
242
|
private getOpenButtonLocator(workspaceName: string): By {
|
|
243
|
-
return By.xpath(`${this.getWorkspaceListItemLocator(workspaceName).value}//td[@data-key=5]//
|
|
243
|
+
return By.xpath(`${this.getWorkspaceListItemLocator(workspaceName).value}//td[@data-key=5]//button[text()='Open']`);
|
|
244
244
|
}
|
|
245
245
|
|
|
246
246
|
private getOpenWorkspaceDetailsLinkLocator(workspaceName: string): By {
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/** *******************************************************************
|
|
2
|
+
* copyright (c) 2025 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 { e2eContainer } from '../../configs/inversify.config';
|
|
12
|
+
import { CLASSES, TYPES } from '../../configs/inversify.types';
|
|
13
|
+
import { WorkspaceHandlingTests } from '../../tests-library/WorkspaceHandlingTests';
|
|
14
|
+
import { ProjectAndFileTests } from '../../tests-library/ProjectAndFileTests';
|
|
15
|
+
import { LoginTests } from '../../tests-library/LoginTests';
|
|
16
|
+
import { registerRunningWorkspace } from '../MochaHooks';
|
|
17
|
+
import { expect } from 'chai';
|
|
18
|
+
|
|
19
|
+
import { DriverHelper } from '../../utils/DriverHelper';
|
|
20
|
+
import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil';
|
|
21
|
+
import { Dashboard } from '../../pageobjects/dashboard/Dashboard';
|
|
22
|
+
import { ITestWorkspaceUtil } from '../../utils/workspace/ITestWorkspaceUtil';
|
|
23
|
+
import { TIMEOUT_CONSTANTS } from '../../constants/TIMEOUT_CONSTANTS';
|
|
24
|
+
|
|
25
|
+
import { By } from 'selenium-webdriver';
|
|
26
|
+
import { BASE_TEST_CONSTANTS } from '../../constants/BASE_TEST_CONSTANTS';
|
|
27
|
+
import { ViewSection } from 'monaco-page-objects';
|
|
28
|
+
import { Workspaces } from '../../pageobjects/dashboard/Workspaces';
|
|
29
|
+
import { FACTORY_TEST_CONSTANTS } from '../../constants/FACTORY_TEST_CONSTANTS';
|
|
30
|
+
|
|
31
|
+
suite(`Extension Activation Test ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function (): void {
|
|
32
|
+
const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests);
|
|
33
|
+
const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests);
|
|
34
|
+
const loginTests: LoginTests = e2eContainer.get(CLASSES.LoginTests);
|
|
35
|
+
const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper);
|
|
36
|
+
const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil);
|
|
37
|
+
const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard);
|
|
38
|
+
const testWorkspaceUtil: ITestWorkspaceUtil = e2eContainer.get(TYPES.WorkspaceUtil);
|
|
39
|
+
const workspaces: Workspaces = e2eContainer.get(CLASSES.Workspaces);
|
|
40
|
+
|
|
41
|
+
const factoryUrl: string = BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()
|
|
42
|
+
? FACTORY_TEST_CONSTANTS.TS_SELENIUM_AIRGAP_FACTORY_GIT_REPO_URL ||
|
|
43
|
+
'https://gh.crw-qe.com/test-automation-only/python-hello-world/tree/test-vscode-extensions'
|
|
44
|
+
: FACTORY_TEST_CONSTANTS.TS_SELENIUM_FACTORY_GIT_REPO_URL ||
|
|
45
|
+
'https://github.com/crw-qe/python-hello-world/tree/test-vscode-extensions';
|
|
46
|
+
|
|
47
|
+
const PROJECT_NAME: string = 'python-hello-world';
|
|
48
|
+
const PYTHON_FILE_NAME: string = 'hello-world.py';
|
|
49
|
+
const RUN_PYTHON_BUTTON: By = By.xpath('//a[@aria-label="Run Python File"]');
|
|
50
|
+
const TERMINAL_OUTPUT: By = By.className('xterm-screen');
|
|
51
|
+
const OUTPUT_PANEL_TAB: By = By.xpath('//a[contains(@aria-label, "Output")]');
|
|
52
|
+
const PYTHON_OUTPUT_OPTION: By = By.xpath('//option[text()="Python"]');
|
|
53
|
+
const MONACO_SELECT_BOX: By = By.css('select.monaco-select-box');
|
|
54
|
+
const OUTPUT_PANEL_CONTENT: By = By.xpath('//div[contains(@class, "output")]//div[contains(@class, "view-lines")]');
|
|
55
|
+
const WORKSPACE_RESTART_TIMEOUT: number = 300000;
|
|
56
|
+
|
|
57
|
+
let workspaceName: string = '';
|
|
58
|
+
|
|
59
|
+
suiteSetup('Login to DevSpaces', async function (): Promise<void> {
|
|
60
|
+
await loginTests.loginIntoChe();
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
test('Create and open workspace from factory URL', async function (): Promise<void> {
|
|
64
|
+
await workspaceHandlingTests.createAndOpenWorkspaceFromGitRepository(factoryUrl);
|
|
65
|
+
await workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
|
|
66
|
+
workspaceName = WorkspaceHandlingTests.getWorkspaceName();
|
|
67
|
+
expect(workspaceName, 'Workspace name was not detected').not.empty;
|
|
68
|
+
registerRunningWorkspace(workspaceName);
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
test('Wait for workspace readiness and handle trust dialogs', async function (): Promise<void> {
|
|
72
|
+
await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
|
|
73
|
+
await projectAndFileTests.performTrustDialogs();
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
test('Open Python file and run it', async function (): Promise<void> {
|
|
77
|
+
const projectSection: ViewSection = await projectAndFileTests.getProjectViewSession();
|
|
78
|
+
await projectSection.openItem(PROJECT_NAME, PYTHON_FILE_NAME);
|
|
79
|
+
await driverHelper.wait(TIMEOUT_CONSTANTS.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM);
|
|
80
|
+
|
|
81
|
+
await driverHelper.waitAndClick(RUN_PYTHON_BUTTON);
|
|
82
|
+
await driverHelper.wait(TIMEOUT_CONSTANTS.TS_DIALOG_WINDOW_DEFAULT_TIMEOUT);
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
test('Check terminal output shows "Hello, world!"', async function (): Promise<void> {
|
|
86
|
+
const terminalOutput: string = await driverHelper.waitAndGetText(TERMINAL_OUTPUT, TIMEOUT_CONSTANTS.TS_COMMON_PLUGIN_TEST_TIMEOUT);
|
|
87
|
+
|
|
88
|
+
expect(terminalOutput).to.include('Hello, world!');
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
test('Check Output panel for Python activation errors', async function (): Promise<void> {
|
|
92
|
+
await driverHelper.waitAndClick(OUTPUT_PANEL_TAB);
|
|
93
|
+
await driverHelper.wait(TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING);
|
|
94
|
+
|
|
95
|
+
await driverHelper.waitAndClick(MONACO_SELECT_BOX);
|
|
96
|
+
await driverHelper.waitAndClick(PYTHON_OUTPUT_OPTION);
|
|
97
|
+
await driverHelper.wait(TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING);
|
|
98
|
+
|
|
99
|
+
const outputText: string = await driverHelper.waitAndGetText(OUTPUT_PANEL_CONTENT, TIMEOUT_CONSTANTS.TS_COMMON_PLUGIN_TEST_TIMEOUT);
|
|
100
|
+
|
|
101
|
+
expect(outputText).to.not.include('Failed to activate a workspace');
|
|
102
|
+
expect(outputText).to.not.include('Missing required @injectable annotation');
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
test('Refresh page and verify extension still works', async function (): Promise<void> {
|
|
106
|
+
await browserTabsUtil.refreshPage();
|
|
107
|
+
await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
|
|
108
|
+
await driverHelper.wait(TIMEOUT_CONSTANTS.TS_IDE_LOAD_TIMEOUT);
|
|
109
|
+
|
|
110
|
+
const projectSection: ViewSection = await projectAndFileTests.getProjectViewSession();
|
|
111
|
+
await projectSection.openItem(PROJECT_NAME, PYTHON_FILE_NAME);
|
|
112
|
+
await driverHelper.wait(TIMEOUT_CONSTANTS.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM);
|
|
113
|
+
|
|
114
|
+
await driverHelper.waitAndClick(RUN_PYTHON_BUTTON);
|
|
115
|
+
await driverHelper.wait(TIMEOUT_CONSTANTS.TS_DIALOG_WINDOW_DEFAULT_TIMEOUT);
|
|
116
|
+
|
|
117
|
+
const terminalOutput: string = await driverHelper.waitAndGetText(TERMINAL_OUTPUT, TIMEOUT_CONSTANTS.TS_COMMON_PLUGIN_TEST_TIMEOUT);
|
|
118
|
+
expect(terminalOutput).to.include('Hello, world!');
|
|
119
|
+
|
|
120
|
+
await driverHelper.waitAndClick(OUTPUT_PANEL_TAB);
|
|
121
|
+
const outputText: string = await driverHelper.waitAndGetText(OUTPUT_PANEL_CONTENT, TIMEOUT_CONSTANTS.TS_COMMON_PLUGIN_TEST_TIMEOUT);
|
|
122
|
+
expect(outputText).to.not.include('Failed to activate a workspace');
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
test('Stop workspace', async function (): Promise<void> {
|
|
126
|
+
const currentWorkspaceName: string = WorkspaceHandlingTests.getWorkspaceName();
|
|
127
|
+
expect(currentWorkspaceName, 'Workspace name not available').not.empty;
|
|
128
|
+
|
|
129
|
+
await dashboard.openDashboard();
|
|
130
|
+
await dashboard.waitPage();
|
|
131
|
+
await dashboard.stopWorkspaceByUI(currentWorkspaceName);
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
test('Start workspace after stop', async function (): Promise<void> {
|
|
135
|
+
this.timeout(WORKSPACE_RESTART_TIMEOUT + 60000);
|
|
136
|
+
|
|
137
|
+
const currentWorkspaceName: string = WorkspaceHandlingTests.getWorkspaceName();
|
|
138
|
+
await workspaces.waitWorkspaceWithStoppedStatus(currentWorkspaceName);
|
|
139
|
+
|
|
140
|
+
const originalWindowHandle: string = await browserTabsUtil.getCurrentWindowHandle();
|
|
141
|
+
await workspaces.clickOpenButton(currentWorkspaceName);
|
|
142
|
+
|
|
143
|
+
await browserTabsUtil.waitAndSwitchToAnotherWindow(originalWindowHandle, WORKSPACE_RESTART_TIMEOUT);
|
|
144
|
+
await driverHelper.wait(TIMEOUT_CONSTANTS.TS_IDE_LOAD_TIMEOUT);
|
|
145
|
+
await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
test('Verify Python execution after workspace restart', async function (): Promise<void> {
|
|
149
|
+
const projectSection: ViewSection = await projectAndFileTests.getProjectViewSession();
|
|
150
|
+
await projectSection.openItem(PROJECT_NAME, PYTHON_FILE_NAME);
|
|
151
|
+
await driverHelper.wait(TIMEOUT_CONSTANTS.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM);
|
|
152
|
+
|
|
153
|
+
await driverHelper.waitAndClick(RUN_PYTHON_BUTTON);
|
|
154
|
+
await driverHelper.wait(TIMEOUT_CONSTANTS.TS_DIALOG_WINDOW_DEFAULT_TIMEOUT);
|
|
155
|
+
|
|
156
|
+
const terminalOutput: string = await driverHelper.waitAndGetText(TERMINAL_OUTPUT, TIMEOUT_CONSTANTS.TS_COMMON_PLUGIN_TEST_TIMEOUT);
|
|
157
|
+
expect(terminalOutput).to.include('Hello, world!');
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
suiteTeardown('Open dashboard and close all other tabs', async function (): Promise<void> {
|
|
161
|
+
await dashboard.openDashboard();
|
|
162
|
+
await browserTabsUtil.closeAllTabsExceptCurrent();
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
suiteTeardown('Stop and delete the workspace by API', async function (): Promise<void> {
|
|
166
|
+
await testWorkspaceUtil.stopAndDeleteWorkspaceByName(WorkspaceHandlingTests.getWorkspaceName());
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
suiteTeardown('Unregister running workspace', function (): void {
|
|
170
|
+
registerRunningWorkspace('');
|
|
171
|
+
});
|
|
172
|
+
});
|