@eclipse-che/che-e2e 7.119.0-next-39dbec7 → 7.119.0-next-c0a0e9b

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.
@@ -15,7 +15,6 @@ const WorkspaceHandlingTests_1 = require("../../tests-library/WorkspaceHandlingT
15
15
  const chai_1 = require("chai");
16
16
  const Logger_1 = require("../../utils/Logger");
17
17
  const BASE_TEST_CONSTANTS_1 = require("../../constants/BASE_TEST_CONSTANTS");
18
- const selenium_webdriver_1 = require("selenium-webdriver");
19
18
  suite('Check Visual Studio Code (desktop) (SSH) with all samples', function () {
20
19
  this.timeout(6000000);
21
20
  const workspaceHandlingTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.WorkspaceHandlingTests);
@@ -25,11 +24,9 @@ suite('Check Visual Studio Code (desktop) (SSH) with all samples', function () {
25
24
  const driverHelper = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.DriverHelper);
26
25
  const vsCodeDesktopSshEditor = '//*[@id="editor-selector-card-che-incubator/che-code-sshd/latest"]';
27
26
  const useExtensionSwitcher = '//label[@class="switch"]';
28
- const useExtensionPageId = '//div[@id="docs-parent"]';
29
27
  const titlexPath = '//div[@class="header-title"]';
30
- const ocPortForwardxPath = '//*[@id="port-forward"]';
31
- const sshKeyxPath = '//*[@id="key"]';
32
- const sshKonfigxPath = '//*[@id="config"]';
28
+ let currentTabHandle = 'undefined';
29
+ const pollingForCheckTitle = 100;
33
30
  const samplesForCheck = [
34
31
  'Empty Workspace',
35
32
  'JBoss EAP 8.0',
@@ -56,38 +53,50 @@ suite('Check Visual Studio Code (desktop) (SSH) with all samples', function () {
56
53
  });
57
54
  async function clickOnElementByXpath(xpath) {
58
55
  Logger_1.Logger.debug();
59
- await driverHelper.waitAndClick(selenium_webdriver_1.By.xpath(xpath));
56
+ await driverHelper
57
+ .getDriver()
58
+ .executeScript(`document.evaluate('${xpath}', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.click();`);
59
+ }
60
+ function clearCurrentTabHandle() {
61
+ currentTabHandle = 'undefined';
60
62
  }
61
63
  async function testWorkspaceStartup(sampleNameOrUrl, isUrl) {
62
64
  await dashboard.openDashboard();
65
+ currentTabHandle = await browserTabsUtil.getCurrentWindowHandle();
63
66
  await dashboard.clickCreateWorkspaceButton();
64
67
  if (isUrl) {
65
- await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndGitUrl(vsCodeDesktopSshEditor, sampleNameOrUrl, titlexPath);
68
+ await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndGitUrl(vsCodeDesktopSshEditor, sampleNameOrUrl, titlexPath, pollingForCheckTitle);
66
69
  }
67
70
  else {
68
- await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndSample(vsCodeDesktopSshEditor, sampleNameOrUrl, titlexPath);
71
+ await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndSample(vsCodeDesktopSshEditor, sampleNameOrUrl, titlexPath, pollingForCheckTitle);
69
72
  }
70
- const useExtensionPageText = await workspaceHandlingTests.getTextFromUIElementByXpath(useExtensionPageId);
71
- (0, chai_1.expect)(useExtensionPageText).contains('Install the following VS Code extensions');
72
- // toggle UseExtension switcher
73
+ // read page
74
+ const pageTextBeforeUseExtensionSwitcher = await driverHelper.getDriver().executeScript('return document.body.innerText;');
75
+ // click on "Use Extension" switcher
73
76
  await clickOnElementByXpath(useExtensionSwitcher);
74
- // check title
75
- const headerText = await workspaceHandlingTests.getTextFromUIElementByXpath(titlexPath);
76
- (0, chai_1.expect)('Workspace ' + WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName() + ' is running').equal(headerText);
77
- // check oc-port-forwarding
78
- const ocPortForward = await workspaceHandlingTests.getTextFromUIElementByXpath(ocPortForwardxPath);
79
- (0, chai_1.expect)(ocPortForward).contains('oc port-forward -n admin-devspaces');
80
- // check ssh key
81
- const sshKey = await workspaceHandlingTests.getTextFromUIElementByXpath(sshKeyxPath);
82
- (0, chai_1.expect)(sshKey).contains('-----BEGIN OPENSSH PRIVATE KEY-----').and.contains('-----END OPENSSH PRIVATE KEY-----');
83
- // check .ssh/kofig
84
- const sshKonfig = await workspaceHandlingTests.getTextFromUIElementByXpath(sshKonfigxPath);
85
- (0, chai_1.expect)(sshKonfig)
77
+ // read page
78
+ const pageTextAfterUseExtensionSwitcher = await driverHelper.getDriver().executeScript('return document.body.innerText;');
79
+ // checks for "Install extensions" state
80
+ (0, chai_1.expect)(pageTextBeforeUseExtensionSwitcher).contains('Install the following VS Code extensions');
81
+ Logger_1.Logger.info('"Install the following VS Code extensions" was found in page before "Use Extension" clicked');
82
+ (0, chai_1.expect)(pageTextBeforeUseExtensionSwitcher).contains('Workspace ' + WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName() + ' is running');
83
+ Logger_1.Logger.info('Workspace name "' + WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName() + ' is running" was found before "Use Extension" clicked');
84
+ // checks for SSH state
85
+ (0, chai_1.expect)(pageTextAfterUseExtensionSwitcher).contains('Workspace ' + WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName() + ' is running');
86
+ Logger_1.Logger.info('Workspace name "' + WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName() + ' is running" was found after "Use Extension" clicked');
87
+ (0, chai_1.expect)(pageTextAfterUseExtensionSwitcher).contains('oc port-forward -n admin-devspaces');
88
+ Logger_1.Logger.info('"oc port-forward -n admin-devspaces" was found after "Use Extension" clicked');
89
+ (0, chai_1.expect)(pageTextAfterUseExtensionSwitcher)
90
+ .contains('-----BEGIN OPENSSH PRIVATE KEY-----')
91
+ .and.contains('-----END OPENSSH PRIVATE KEY-----');
92
+ Logger_1.Logger.info('SSH private key (BEGIN and END markers) was found after "Use Extension" clicked');
93
+ (0, chai_1.expect)(pageTextAfterUseExtensionSwitcher)
86
94
  .contains('HostName')
87
95
  .and.contains('User')
88
96
  .and.contains('Port')
89
97
  .and.contains('IdentityFile')
90
98
  .and.contains('UserKnownHostsFile');
99
+ Logger_1.Logger.info('SSH config parameters (HostName, User, Port, IdentityFile, UserKnownHostsFile) were found after "Use Extension" clicked');
91
100
  }
92
101
  samplesForCheck.forEach((sampleName) => {
93
102
  test('Test start of VSCode (desktop) (SSH) with default Samples', async function () {
@@ -111,6 +120,9 @@ suite('Check Visual Studio Code (desktop) (SSH) with all samples', function () {
111
120
  }
112
121
  teardown('Delete DevWorkspace', async function () {
113
122
  Logger_1.Logger.info('Delete DevWorkspace. After each test.');
123
+ if (currentTabHandle !== 'undefined') {
124
+ await browserTabsUtil.switchToWindow(currentTabHandle);
125
+ }
114
126
  await dashboard.openDashboard();
115
127
  await browserTabsUtil.closeAllTabsExceptCurrent();
116
128
  if (WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName() !== 'undefined') {
@@ -118,6 +130,7 @@ suite('Check Visual Studio Code (desktop) (SSH) with all samples', function () {
118
130
  await dashboard.deleteStoppedWorkspaceByUI(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
119
131
  }
120
132
  WorkspaceHandlingTests_1.WorkspaceHandlingTests.clearWorkspaceName();
133
+ clearCurrentTabHandle();
121
134
  });
122
135
  });
123
136
  //# sourceMappingURL=StartWorkspaceUsingVSCodeDesktopSshEditor.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StartWorkspaceUsingVSCodeDesktopSshEditor.spec.js","sourceRoot":"","sources":["../../../specs/dashboard-samples/StartWorkspaceUsingVSCodeDesktopSshEditor.spec.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;AAExE,qEAA8D;AAC9D,mEAAwD;AAIxD,uFAAoF;AACpF,+BAA8B;AAC9B,+CAA4C;AAC5C,6EAA0E;AAE1E,2DAAwC;AAExC,KAAK,CAAC,2DAA2D,EAAE;IAClE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,MAAM,sBAAsB,GAA2B,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,sBAAsB,CAAC,CAAC;IACxG,MAAM,UAAU,GAAe,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,UAAU,CAAC,CAAC;IACpE,MAAM,SAAS,GAAc,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,SAAS,CAAC,CAAC;IACjE,MAAM,eAAe,GAAoB,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,eAAe,CAAC,CAAC;IACnF,MAAM,YAAY,GAAiB,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,YAAY,CAAC,CAAC;IAE1E,MAAM,sBAAsB,GAAW,oEAAoE,CAAC;IAE5G,MAAM,oBAAoB,GAAW,0BAA0B,CAAC;IAChE,MAAM,kBAAkB,GAAW,0BAA0B,CAAC;IAE9D,MAAM,UAAU,GAAW,8BAA8B,CAAC;IAC1D,MAAM,kBAAkB,GAAW,yBAAyB,CAAC;IAC7D,MAAM,WAAW,GAAW,gBAAgB,CAAC;IAC7C,MAAM,cAAc,GAAW,mBAAmB,CAAC;IAEnD,MAAM,eAAe,GAAa;QACjC,iBAAiB;QACjB,eAAe;QACf,aAAa;QACb,iBAAiB;QACjB,QAAQ;QACR,kBAAkB;QAClB,MAAM;QACN,SAAS;QACT,OAAO;QACP,IAAI;QACJ,KAAK;KACL,CAAC;IAEF,MAAM,kBAAkB,GAAa;QACpC,uEAAuE;QACvE,sEAAsE;KACtE,CAAC;IAEF,MAAM,wBAAwB,GAAa;QAC1C,kEAAkE;QAClE,uFAAuF;KACvF,CAAC;IAEF,UAAU,CAAC,gBAAgB,EAAE,KAAK;QACjC,MAAM,UAAU,CAAC,YAAY,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,KAAK,UAAU,qBAAqB,CAAC,KAAa;QACjD,eAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,CAAC,YAAY,CAAC,uBAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,UAAU,oBAAoB,CAAC,eAAuB,EAAE,KAAc;QAC1E,MAAM,SAAS,CAAC,aAAa,EAAE,CAAC;QAChC,MAAM,SAAS,CAAC,0BAA0B,EAAE,CAAC;QAE7C,IAAI,KAAK,EAAE;YACV,MAAM,sBAAsB,CAAC,iDAAiD,CAC7E,sBAAsB,EACtB,eAAe,EACf,UAAU,CACV,CAAC;SACF;aAAM;YACN,MAAM,sBAAsB,CAAC,iDAAiD,CAC7E,sBAAsB,EACtB,eAAe,EACf,UAAU,CACV,CAAC;SACF;QAED,MAAM,oBAAoB,GAAW,MAAM,sBAAsB,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,CAAC;QAClH,IAAA,aAAM,EAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC,CAAC;QAClF,+BAA+B;QAC/B,MAAM,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;QAClD,cAAc;QACd,MAAM,UAAU,GAAW,MAAM,sBAAsB,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC;QAChG,IAAA,aAAM,EAAC,YAAY,GAAG,+CAAsB,CAAC,gBAAgB,EAAE,GAAG,aAAa,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACnG,2BAA2B;QAC3B,MAAM,aAAa,GAAW,MAAM,sBAAsB,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,CAAC;QAC3G,IAAA,aAAM,EAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC,CAAC;QACrE,gBAAgB;QAChB,MAAM,MAAM,GAAW,MAAM,sBAAsB,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC;QAC7F,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC;QACjH,mBAAmB;QACnB,MAAM,SAAS,GAAW,MAAM,sBAAsB,CAAC,2BAA2B,CAAC,cAAc,CAAC,CAAC;QACnG,IAAA,aAAM,EAAC,SAAS,CAAC;aACf,QAAQ,CAAC,UAAU,CAAC;aACpB,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;aACpB,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;aACpB,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC;aAC5B,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IACtC,CAAC;IAED,eAAe,CAAC,OAAO,CAAC,CAAC,UAAU,EAAQ,EAAE;QAC5C,IAAI,CAAC,2DAA2D,EAAE,KAAK;YACtE,MAAM,oBAAoB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,yCAAmB,CAAC,uBAAuB,EAAE,EAAE;QAClD,eAAM,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QAC3E,wBAAwB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAQ,EAAE;YAC9C,IAAI,CAAC,+CAA+C,EAAE,KAAK;gBAC1D,MAAM,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;KACH;SAAM;QACN,kBAAkB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAQ,EAAE;YACxC,IAAI,CAAC,+CAA+C,EAAE,KAAK;gBAC1D,MAAM,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;KACH;IAED,QAAQ,CAAC,qBAAqB,EAAE,KAAK;QACpC,eAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QAErD,MAAM,SAAS,CAAC,aAAa,EAAE,CAAC;QAChC,MAAM,eAAe,CAAC,yBAAyB,EAAE,CAAC;QAElD,IAAI,+CAAsB,CAAC,gBAAgB,EAAE,KAAK,WAAW,EAAE;YAC9D,eAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;YAChE,MAAM,SAAS,CAAC,0BAA0B,CAAC,+CAAsB,CAAC,gBAAgB,EAAE,CAAC,CAAC;SACtF;QAED,+CAAsB,CAAC,kBAAkB,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"StartWorkspaceUsingVSCodeDesktopSshEditor.spec.js","sourceRoot":"","sources":["../../../specs/dashboard-samples/StartWorkspaceUsingVSCodeDesktopSshEditor.spec.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;AAExE,qEAA8D;AAC9D,mEAAwD;AAIxD,uFAAoF;AACpF,+BAA8B;AAC9B,+CAA4C;AAC5C,6EAA0E;AAG1E,KAAK,CAAC,2DAA2D,EAAE;IAClE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,MAAM,sBAAsB,GAA2B,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,sBAAsB,CAAC,CAAC;IACxG,MAAM,UAAU,GAAe,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,UAAU,CAAC,CAAC;IACpE,MAAM,SAAS,GAAc,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,SAAS,CAAC,CAAC;IACjE,MAAM,eAAe,GAAoB,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,eAAe,CAAC,CAAC;IACnF,MAAM,YAAY,GAAiB,+BAAY,CAAC,GAAG,CAAC,yBAAO,CAAC,YAAY,CAAC,CAAC;IAE1E,MAAM,sBAAsB,GAAW,oEAAoE,CAAC;IAC5G,MAAM,oBAAoB,GAAW,0BAA0B,CAAC;IAChE,MAAM,UAAU,GAAW,8BAA8B,CAAC;IAE1D,IAAI,gBAAgB,GAAW,WAAW,CAAC;IAC3C,MAAM,oBAAoB,GAAW,GAAG,CAAC;IAEzC,MAAM,eAAe,GAAa;QACjC,iBAAiB;QACjB,eAAe;QACf,aAAa;QACb,iBAAiB;QACjB,QAAQ;QACR,kBAAkB;QAClB,MAAM;QACN,SAAS;QACT,OAAO;QACP,IAAI;QACJ,KAAK;KACL,CAAC;IAEF,MAAM,kBAAkB,GAAa;QACpC,uEAAuE;QACvE,sEAAsE;KACtE,CAAC;IAEF,MAAM,wBAAwB,GAAa;QAC1C,kEAAkE;QAClE,uFAAuF;KACvF,CAAC;IAEF,UAAU,CAAC,gBAAgB,EAAE,KAAK;QACjC,MAAM,UAAU,CAAC,YAAY,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,KAAK,UAAU,qBAAqB,CAAC,KAAa;QACjD,eAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,YAAY;aAChB,SAAS,EAAE;aACX,aAAa,CACb,sBAAsB,KAAK,wFAAwF,CACnH,CAAC;IACJ,CAAC;IAED,SAAS,qBAAqB;QAC7B,gBAAgB,GAAG,WAAW,CAAC;IAChC,CAAC;IAED,KAAK,UAAU,oBAAoB,CAAC,eAAuB,EAAE,KAAc;QAC1E,MAAM,SAAS,CAAC,aAAa,EAAE,CAAC;QAChC,gBAAgB,GAAG,MAAM,eAAe,CAAC,sBAAsB,EAAE,CAAC;QAClE,MAAM,SAAS,CAAC,0BAA0B,EAAE,CAAC;QAE7C,IAAI,KAAK,EAAE;YACV,MAAM,sBAAsB,CAAC,iDAAiD,CAC7E,sBAAsB,EACtB,eAAe,EACf,UAAU,EACV,oBAAoB,CACpB,CAAC;SACF;aAAM;YACN,MAAM,sBAAsB,CAAC,iDAAiD,CAC7E,sBAAsB,EACtB,eAAe,EACf,UAAU,EACV,oBAAoB,CACpB,CAAC;SACF;QAED,YAAY;QACZ,MAAM,kCAAkC,GAAW,MAAM,YAAY,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,iCAAiC,CAAC,CAAC;QAEnI,oCAAoC;QACpC,MAAM,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;QAElD,YAAY;QACZ,MAAM,iCAAiC,GAAW,MAAM,YAAY,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,iCAAiC,CAAC,CAAC;QAElI,wCAAwC;QACxC,IAAA,aAAM,EAAC,kCAAkC,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC,CAAC;QAChG,eAAM,CAAC,IAAI,CAAC,6FAA6F,CAAC,CAAC;QAE3G,IAAA,aAAM,EAAC,kCAAkC,CAAC,CAAC,QAAQ,CAAC,YAAY,GAAG,+CAAsB,CAAC,gBAAgB,EAAE,GAAG,aAAa,CAAC,CAAC;QAC9H,eAAM,CAAC,IAAI,CACV,kBAAkB,GAAG,+CAAsB,CAAC,gBAAgB,EAAE,GAAG,uDAAuD,CACxH,CAAC;QAEF,uBAAuB;QACvB,IAAA,aAAM,EAAC,iCAAiC,CAAC,CAAC,QAAQ,CAAC,YAAY,GAAG,+CAAsB,CAAC,gBAAgB,EAAE,GAAG,aAAa,CAAC,CAAC;QAC7H,eAAM,CAAC,IAAI,CACV,kBAAkB,GAAG,+CAAsB,CAAC,gBAAgB,EAAE,GAAG,sDAAsD,CACvH,CAAC;QAEF,IAAA,aAAM,EAAC,iCAAiC,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC,CAAC;QACzF,eAAM,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;QAE5F,IAAA,aAAM,EAAC,iCAAiC,CAAC;aACvC,QAAQ,CAAC,qCAAqC,CAAC;aAC/C,GAAG,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC;QACpD,eAAM,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;QAE/F,IAAA,aAAM,EAAC,iCAAiC,CAAC;aACvC,QAAQ,CAAC,UAAU,CAAC;aACpB,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;aACpB,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;aACpB,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC;aAC5B,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QACrC,eAAM,CAAC,IAAI,CACV,yHAAyH,CACzH,CAAC;IACH,CAAC;IAED,eAAe,CAAC,OAAO,CAAC,CAAC,UAAU,EAAQ,EAAE;QAC5C,IAAI,CAAC,2DAA2D,EAAE,KAAK;YACtE,MAAM,oBAAoB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,yCAAmB,CAAC,uBAAuB,EAAE,EAAE;QAClD,eAAM,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QAC3E,wBAAwB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAQ,EAAE;YAC9C,IAAI,CAAC,+CAA+C,EAAE,KAAK;gBAC1D,MAAM,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;KACH;SAAM;QACN,kBAAkB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAQ,EAAE;YACxC,IAAI,CAAC,+CAA+C,EAAE,KAAK;gBAC1D,MAAM,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;KACH;IAED,QAAQ,CAAC,qBAAqB,EAAE,KAAK;QACpC,eAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACrD,IAAI,gBAAgB,KAAK,WAAW,EAAE;YACrC,MAAM,eAAe,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;SACvD;QAED,MAAM,SAAS,CAAC,aAAa,EAAE,CAAC;QAChC,MAAM,eAAe,CAAC,yBAAyB,EAAE,CAAC;QAElD,IAAI,+CAAsB,CAAC,gBAAgB,EAAE,KAAK,WAAW,EAAE;YAC9D,eAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;YAChE,MAAM,SAAS,CAAC,0BAA0B,CAAC,+CAAsB,CAAC,gBAAgB,EAAE,CAAC,CAAC;SACtF;QAED,+CAAsB,CAAC,kBAAkB,EAAE,CAAC;QAC5C,qBAAqB,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-che/che-e2e",
3
- "version": "7.119.0-next-39dbec7",
3
+ "version": "7.119.0-next-c0a0e9b",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -18,7 +18,6 @@ import { expect } from 'chai';
18
18
  import { Logger } from '../../utils/Logger';
19
19
  import { BASE_TEST_CONSTANTS } from '../../constants/BASE_TEST_CONSTANTS';
20
20
  import { DriverHelper } from '../../utils/DriverHelper';
21
- import { By } from 'selenium-webdriver';
22
21
 
23
22
  suite('Check Visual Studio Code (desktop) (SSH) with all samples', function (): void {
24
23
  this.timeout(6000000);
@@ -29,14 +28,11 @@ suite('Check Visual Studio Code (desktop) (SSH) with all samples', function ():
29
28
  const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper);
30
29
 
31
30
  const vsCodeDesktopSshEditor: string = '//*[@id="editor-selector-card-che-incubator/che-code-sshd/latest"]';
32
-
33
31
  const useExtensionSwitcher: string = '//label[@class="switch"]';
34
- const useExtensionPageId: string = '//div[@id="docs-parent"]';
35
-
36
32
  const titlexPath: string = '//div[@class="header-title"]';
37
- const ocPortForwardxPath: string = '//*[@id="port-forward"]';
38
- const sshKeyxPath: string = '//*[@id="key"]';
39
- const sshKonfigxPath: string = '//*[@id="config"]';
33
+
34
+ let currentTabHandle: string = 'undefined';
35
+ const pollingForCheckTitle: number = 100;
40
36
 
41
37
  const samplesForCheck: string[] = [
42
38
  'Empty Workspace',
@@ -68,48 +64,79 @@ suite('Check Visual Studio Code (desktop) (SSH) with all samples', function ():
68
64
 
69
65
  async function clickOnElementByXpath(xpath: string): Promise<void> {
70
66
  Logger.debug();
71
- await driverHelper.waitAndClick(By.xpath(xpath));
67
+ await driverHelper
68
+ .getDriver()
69
+ .executeScript(
70
+ `document.evaluate('${xpath}', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.click();`
71
+ );
72
+ }
73
+
74
+ function clearCurrentTabHandle(): void {
75
+ currentTabHandle = 'undefined';
72
76
  }
73
77
 
74
78
  async function testWorkspaceStartup(sampleNameOrUrl: string, isUrl: boolean): Promise<void> {
75
79
  await dashboard.openDashboard();
80
+ currentTabHandle = await browserTabsUtil.getCurrentWindowHandle();
76
81
  await dashboard.clickCreateWorkspaceButton();
77
82
 
78
83
  if (isUrl) {
79
84
  await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndGitUrl(
80
85
  vsCodeDesktopSshEditor,
81
86
  sampleNameOrUrl,
82
- titlexPath
87
+ titlexPath,
88
+ pollingForCheckTitle
83
89
  );
84
90
  } else {
85
91
  await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndSample(
86
92
  vsCodeDesktopSshEditor,
87
93
  sampleNameOrUrl,
88
- titlexPath
94
+ titlexPath,
95
+ pollingForCheckTitle
89
96
  );
90
97
  }
91
98
 
92
- const useExtensionPageText: string = await workspaceHandlingTests.getTextFromUIElementByXpath(useExtensionPageId);
93
- expect(useExtensionPageText).contains('Install the following VS Code extensions');
94
- // toggle UseExtension switcher
99
+ // read page
100
+ const pageTextBeforeUseExtensionSwitcher: string = await driverHelper.getDriver().executeScript('return document.body.innerText;');
101
+
102
+ // click on "Use Extension" switcher
95
103
  await clickOnElementByXpath(useExtensionSwitcher);
96
- // check title
97
- const headerText: string = await workspaceHandlingTests.getTextFromUIElementByXpath(titlexPath);
98
- expect('Workspace ' + WorkspaceHandlingTests.getWorkspaceName() + ' is running').equal(headerText);
99
- // check oc-port-forwarding
100
- const ocPortForward: string = await workspaceHandlingTests.getTextFromUIElementByXpath(ocPortForwardxPath);
101
- expect(ocPortForward).contains('oc port-forward -n admin-devspaces');
102
- // check ssh key
103
- const sshKey: string = await workspaceHandlingTests.getTextFromUIElementByXpath(sshKeyxPath);
104
- expect(sshKey).contains('-----BEGIN OPENSSH PRIVATE KEY-----').and.contains('-----END OPENSSH PRIVATE KEY-----');
105
- // check .ssh/kofig
106
- const sshKonfig: string = await workspaceHandlingTests.getTextFromUIElementByXpath(sshKonfigxPath);
107
- expect(sshKonfig)
104
+
105
+ // read page
106
+ const pageTextAfterUseExtensionSwitcher: string = await driverHelper.getDriver().executeScript('return document.body.innerText;');
107
+
108
+ // checks for "Install extensions" state
109
+ expect(pageTextBeforeUseExtensionSwitcher).contains('Install the following VS Code extensions');
110
+ Logger.info('"Install the following VS Code extensions" was found in page before "Use Extension" clicked');
111
+
112
+ expect(pageTextBeforeUseExtensionSwitcher).contains('Workspace ' + WorkspaceHandlingTests.getWorkspaceName() + ' is running');
113
+ Logger.info(
114
+ 'Workspace name "' + WorkspaceHandlingTests.getWorkspaceName() + ' is running" was found before "Use Extension" clicked'
115
+ );
116
+
117
+ // checks for SSH state
118
+ expect(pageTextAfterUseExtensionSwitcher).contains('Workspace ' + WorkspaceHandlingTests.getWorkspaceName() + ' is running');
119
+ Logger.info(
120
+ 'Workspace name "' + WorkspaceHandlingTests.getWorkspaceName() + ' is running" was found after "Use Extension" clicked'
121
+ );
122
+
123
+ expect(pageTextAfterUseExtensionSwitcher).contains('oc port-forward -n admin-devspaces');
124
+ Logger.info('"oc port-forward -n admin-devspaces" was found after "Use Extension" clicked');
125
+
126
+ expect(pageTextAfterUseExtensionSwitcher)
127
+ .contains('-----BEGIN OPENSSH PRIVATE KEY-----')
128
+ .and.contains('-----END OPENSSH PRIVATE KEY-----');
129
+ Logger.info('SSH private key (BEGIN and END markers) was found after "Use Extension" clicked');
130
+
131
+ expect(pageTextAfterUseExtensionSwitcher)
108
132
  .contains('HostName')
109
133
  .and.contains('User')
110
134
  .and.contains('Port')
111
135
  .and.contains('IdentityFile')
112
136
  .and.contains('UserKnownHostsFile');
137
+ Logger.info(
138
+ 'SSH config parameters (HostName, User, Port, IdentityFile, UserKnownHostsFile) were found after "Use Extension" clicked'
139
+ );
113
140
  }
114
141
 
115
142
  samplesForCheck.forEach((sampleName): void => {
@@ -135,6 +162,9 @@ suite('Check Visual Studio Code (desktop) (SSH) with all samples', function ():
135
162
 
136
163
  teardown('Delete DevWorkspace', async function (): Promise<void> {
137
164
  Logger.info('Delete DevWorkspace. After each test.');
165
+ if (currentTabHandle !== 'undefined') {
166
+ await browserTabsUtil.switchToWindow(currentTabHandle);
167
+ }
138
168
 
139
169
  await dashboard.openDashboard();
140
170
  await browserTabsUtil.closeAllTabsExceptCurrent();
@@ -145,5 +175,6 @@ suite('Check Visual Studio Code (desktop) (SSH) with all samples', function ():
145
175
  }
146
176
 
147
177
  WorkspaceHandlingTests.clearWorkspaceName();
178
+ clearCurrentTabHandle();
148
179
  });
149
180
  });