@theia/playwright 1.47.1 → 1.48.1

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.
Files changed (166) hide show
  1. package/README.md +54 -54
  2. package/lib/index.d.ts +30 -30
  3. package/lib/index.js +48 -48
  4. package/lib/tests/theia-app.test.d.ts +1 -1
  5. package/lib/tests/theia-app.test.js +29 -29
  6. package/lib/tests/theia-application-shell.test.d.ts +1 -1
  7. package/lib/tests/theia-application-shell.test.js +57 -57
  8. package/lib/tests/theia-explorer-view.test.d.ts +1 -1
  9. package/lib/tests/theia-explorer-view.test.js +183 -183
  10. package/lib/tests/theia-getting-started.test.d.ts +2 -0
  11. package/lib/tests/theia-getting-started.test.d.ts.map +1 -0
  12. package/lib/tests/theia-getting-started.test.js +46 -0
  13. package/lib/tests/theia-getting-started.test.js.map +1 -0
  14. package/lib/tests/theia-main-menu.test.d.ts +1 -1
  15. package/lib/tests/theia-main-menu.test.js +111 -92
  16. package/lib/tests/theia-main-menu.test.js.map +1 -1
  17. package/lib/tests/theia-output-view.test.d.ts +1 -1
  18. package/lib/tests/theia-output-view.test.js +78 -78
  19. package/lib/tests/theia-preference-view.test.d.ts +1 -1
  20. package/lib/tests/theia-preference-view.test.js +101 -101
  21. package/lib/tests/theia-problems-view.test.d.ts +1 -1
  22. package/lib/tests/theia-problems-view.test.js +54 -54
  23. package/lib/tests/theia-quick-command.test.d.ts +1 -1
  24. package/lib/tests/theia-quick-command.test.js +69 -69
  25. package/lib/tests/theia-sample-app.test.d.ts +1 -1
  26. package/lib/tests/theia-sample-app.test.js +57 -57
  27. package/lib/tests/theia-status-bar.test.d.ts +1 -1
  28. package/lib/tests/theia-status-bar.test.js +44 -44
  29. package/lib/tests/theia-terminal-view.test.d.ts +1 -1
  30. package/lib/tests/theia-terminal-view.test.js +78 -78
  31. package/lib/tests/theia-text-editor.test.d.ts +1 -1
  32. package/lib/tests/theia-text-editor.test.js +155 -155
  33. package/lib/tests/theia-toolbar.test.d.ts +1 -1
  34. package/lib/tests/theia-toolbar.test.js +61 -61
  35. package/lib/tests/theia-workspace.test.d.ts +1 -1
  36. package/lib/tests/theia-workspace.test.js +72 -72
  37. package/lib/theia-about-dialog.d.ts +4 -4
  38. package/lib/theia-about-dialog.js +26 -26
  39. package/lib/theia-app-loader.d.ts +19 -19
  40. package/lib/theia-app-loader.js +129 -129
  41. package/lib/theia-app.d.ts +50 -50
  42. package/lib/theia-app.js +153 -153
  43. package/lib/theia-context-menu.d.ts +8 -8
  44. package/lib/theia-context-menu.js +37 -37
  45. package/lib/theia-dialog.d.ts +28 -28
  46. package/lib/theia-dialog.js +99 -99
  47. package/lib/theia-editor.d.ts +9 -9
  48. package/lib/theia-editor.js +68 -68
  49. package/lib/theia-explorer-view.d.ts +47 -47
  50. package/lib/theia-explorer-view.js +273 -273
  51. package/lib/theia-main-menu.d.ts +12 -12
  52. package/lib/theia-main-menu.js +53 -53
  53. package/lib/theia-menu-item.d.ts +14 -14
  54. package/lib/theia-menu-item.js +66 -66
  55. package/lib/theia-menu.d.ts +16 -16
  56. package/lib/theia-menu.js +86 -86
  57. package/lib/theia-monaco-editor.d.ts +15 -15
  58. package/lib/theia-monaco-editor.js +75 -75
  59. package/lib/theia-notification-indicator.d.ts +7 -7
  60. package/lib/theia-notification-indicator.js +44 -44
  61. package/lib/theia-notification-overlay.d.ts +22 -22
  62. package/lib/theia-notification-overlay.js +79 -79
  63. package/lib/theia-output-channel.d.ts +24 -24
  64. package/lib/theia-output-channel.js +71 -71
  65. package/lib/theia-output-view.d.ts +9 -9
  66. package/lib/theia-output-view.js +81 -81
  67. package/lib/theia-page-object.d.ts +7 -7
  68. package/lib/theia-page-object.js +27 -27
  69. package/lib/theia-preference-view.d.ts +84 -84
  70. package/lib/theia-preference-view.js +209 -209
  71. package/lib/theia-problem-indicator.d.ts +8 -8
  72. package/lib/theia-problem-indicator.js +38 -38
  73. package/lib/theia-problem-view.d.ts +5 -5
  74. package/lib/theia-problem-view.js +30 -30
  75. package/lib/theia-quick-command-palette.d.ts +12 -12
  76. package/lib/theia-quick-command-palette.d.ts.map +1 -1
  77. package/lib/theia-quick-command-palette.js +78 -80
  78. package/lib/theia-quick-command-palette.js.map +1 -1
  79. package/lib/theia-rename-dialog.d.ts +5 -5
  80. package/lib/theia-rename-dialog.d.ts.map +1 -1
  81. package/lib/theia-rename-dialog.js +34 -35
  82. package/lib/theia-rename-dialog.js.map +1 -1
  83. package/lib/theia-status-bar.d.ts +13 -13
  84. package/lib/theia-status-bar.js +39 -39
  85. package/lib/theia-status-indicator.d.ts +10 -10
  86. package/lib/theia-status-indicator.js +48 -48
  87. package/lib/theia-terminal.d.ts +13 -13
  88. package/lib/theia-terminal.js +59 -59
  89. package/lib/theia-text-editor.d.ts +26 -26
  90. package/lib/theia-text-editor.js +120 -120
  91. package/lib/theia-toggle-bottom-indicator.d.ts +4 -4
  92. package/lib/theia-toggle-bottom-indicator.js +26 -26
  93. package/lib/theia-toolbar-item.d.ts +10 -10
  94. package/lib/theia-toolbar-item.js +39 -39
  95. package/lib/theia-toolbar.d.ts +19 -19
  96. package/lib/theia-toolbar.js +90 -90
  97. package/lib/theia-tree-node.d.ts +19 -19
  98. package/lib/theia-tree-node.js +72 -72
  99. package/lib/theia-view.d.ts +32 -32
  100. package/lib/theia-view.js +149 -149
  101. package/lib/theia-welcome-view.d.ts +5 -5
  102. package/lib/theia-welcome-view.js +30 -30
  103. package/lib/theia-workspace.d.ts +18 -18
  104. package/lib/theia-workspace.js +69 -69
  105. package/lib/util.d.ts +19 -19
  106. package/lib/util.js +93 -93
  107. package/package.json +2 -2
  108. package/src/index.ts +46 -46
  109. package/src/tests/resources/sample-files1/sample.txt +4 -4
  110. package/src/tests/resources/sample-files1/sampleFolder/sampleFolder1/sampleFolder1-1/sampleFile1-1-1.txt +1 -1
  111. package/src/tests/resources/sample-files1/sampleFolder/sampleFolder1/sampleFolder1-1/sampleFile1-1-2.txt +1 -1
  112. package/src/tests/resources/sample-files1/sampleFolder/sampleFolder1/sampleFolder1-2/sampleFile1-2-1.txt +1 -1
  113. package/src/tests/resources/sample-files1/sampleFolder/sampleFolder1/sampleFolder1-2/sampleFile1-2-2.txt +1 -1
  114. package/src/tests/resources/sample-files1/sampleFolder/sampleFolder2/sampleFolder2-1/sampleFile2-1-1.txt +1 -1
  115. package/src/tests/resources/sample-files1/sampleFolder/sampleFolder2/sampleFolder2-1/sampleFile2-1-2.txt +1 -1
  116. package/src/tests/resources/sample-files1/sampleFolder/sampleFolder2/sampleFolder2-2/sampleFile2-2-1.txt +1 -1
  117. package/src/tests/resources/sample-files1/sampleFolder/sampleFolder2/sampleFolder2-2/sampleFile2-2-2.txt +1 -1
  118. package/src/tests/resources/sample-files2/another-sample.txt +1 -1
  119. package/src/tests/theia-app.test.ts +33 -33
  120. package/src/tests/theia-application-shell.test.ts +67 -67
  121. package/src/tests/theia-explorer-view.test.ts +211 -211
  122. package/src/tests/theia-getting-started.test.ts +50 -0
  123. package/src/tests/theia-main-menu.test.ts +133 -112
  124. package/src/tests/theia-output-view.test.ts +85 -85
  125. package/src/tests/theia-preference-view.test.ts +122 -122
  126. package/src/tests/theia-problems-view.test.ts +64 -64
  127. package/src/tests/theia-quick-command.test.ts +80 -80
  128. package/src/tests/theia-sample-app.test.ts +66 -66
  129. package/src/tests/theia-status-bar.test.ts +52 -52
  130. package/src/tests/theia-terminal-view.test.ts +90 -90
  131. package/src/tests/theia-text-editor.test.ts +187 -187
  132. package/src/tests/theia-toolbar.test.ts +69 -69
  133. package/src/tests/theia-workspace.test.ts +80 -80
  134. package/src/theia-about-dialog.ts +26 -26
  135. package/src/theia-app-loader.ts +167 -167
  136. package/src/theia-app.ts +188 -188
  137. package/src/theia-context-menu.ts +42 -42
  138. package/src/theia-dialog.ts +114 -114
  139. package/src/theia-editor.ts +73 -73
  140. package/src/theia-explorer-view.ts +311 -311
  141. package/src/theia-main-menu.ts +54 -54
  142. package/src/theia-menu-item.ts +75 -75
  143. package/src/theia-menu.ts +96 -96
  144. package/src/theia-monaco-editor.ts +83 -83
  145. package/src/theia-notification-indicator.ts +44 -44
  146. package/src/theia-notification-overlay.ts +94 -94
  147. package/src/theia-output-channel.ts +88 -88
  148. package/src/theia-output-view.ts +87 -87
  149. package/src/theia-page-object.ts +29 -29
  150. package/src/theia-preference-view.ts +240 -240
  151. package/src/theia-problem-indicator.ts +37 -37
  152. package/src/theia-problem-view.ts +30 -30
  153. package/src/theia-quick-command-palette.ts +81 -83
  154. package/src/theia-rename-dialog.ts +35 -36
  155. package/src/theia-status-bar.ts +44 -44
  156. package/src/theia-status-indicator.ts +50 -50
  157. package/src/theia-terminal.ts +69 -69
  158. package/src/theia-text-editor.ts +141 -141
  159. package/src/theia-toggle-bottom-indicator.ts +21 -21
  160. package/src/theia-toolbar-item.ts +41 -41
  161. package/src/theia-toolbar.ts +99 -99
  162. package/src/theia-tree-node.ts +81 -81
  163. package/src/theia-view.ts +177 -177
  164. package/src/theia-welcome-view.ts +31 -31
  165. package/src/theia-workspace.ts +76 -76
  166. package/src/util.ts +91 -91
@@ -1,91 +1,91 @@
1
- "use strict";
2
- // *****************************************************************************
3
- // Copyright (C) 2023 EclipseSource and others.
4
- //
5
- // This program and the accompanying materials are made available under the
6
- // terms of the Eclipse Public License v. 2.0 which is available at
7
- // http://www.eclipse.org/legal/epl-2.0.
8
- //
9
- // This Source Code may also be made available under the following Secondary
10
- // Licenses when the conditions for such availability set forth in the Eclipse
11
- // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
- // with the GNU Classpath Exception which is available at
13
- // https://www.gnu.org/software/classpath/license.html.
14
- //
15
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
- // *****************************************************************************
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.TheiaToolbar = void 0;
19
- const theia_page_object_1 = require("./theia-page-object");
20
- const theia_toolbar_item_1 = require("./theia-toolbar-item");
21
- class TheiaToolbar extends theia_page_object_1.TheiaPageObject {
22
- constructor() {
23
- super(...arguments);
24
- this.selector = 'div#main-toolbar.p-TabBar-toolbar';
25
- }
26
- async toolbarElementHandle() {
27
- return this.page.$(this.selector);
28
- }
29
- async waitForVisible() {
30
- await this.page.waitForSelector(this.selector, { state: 'visible' });
31
- }
32
- async isShown() {
33
- const statusBar = await this.toolbarElementHandle();
34
- return !!statusBar && statusBar.isVisible();
35
- }
36
- async show() {
37
- if (!await this.isShown()) {
38
- await this.toggle();
39
- }
40
- }
41
- async hide() {
42
- if (await this.isShown()) {
43
- await this.toggle();
44
- }
45
- }
46
- async toggle() {
47
- const isShown = await this.isShown();
48
- const viewMenu = await this.app.menuBar.openMenu('View');
49
- await viewMenu.clickMenuItem('Toggle Toolbar');
50
- isShown ? await this.waitUntilHidden() : await this.waitUntilShown();
51
- }
52
- async waitUntilHidden() {
53
- await this.page.waitForSelector(this.selector, { state: 'hidden' });
54
- }
55
- async waitUntilShown() {
56
- await this.page.waitForSelector(this.selector, { state: 'visible' });
57
- }
58
- async toolbarItems() {
59
- const toolbarHandle = await this.toolbarElementHandle();
60
- if (!toolbarHandle) {
61
- return [];
62
- }
63
- const items = await toolbarHandle.$$(this.toolBarItemSelector());
64
- return items.map(element => new theia_toolbar_item_1.TheiaToolbarItem(this.app, element));
65
- }
66
- async toolbarItemIds() {
67
- const items = await this.toolbarItems();
68
- return this.toCommandIdArray(items);
69
- }
70
- async toolBarItem(commandId) {
71
- const toolbarHandle = await this.toolbarElementHandle();
72
- if (!toolbarHandle) {
73
- return undefined;
74
- }
75
- const item = await toolbarHandle.$(this.toolBarItemSelector(commandId));
76
- if (item) {
77
- return new theia_toolbar_item_1.TheiaToolbarItem(this.app, item);
78
- }
79
- return undefined;
80
- }
81
- toolBarItemSelector(toolbarItemId = '') {
82
- return `div.toolbar-item${toolbarItemId ? `[id="${toolbarItemId}"]` : ''}`;
83
- }
84
- async toCommandIdArray(items) {
85
- const contents = items.map(item => item.commandId());
86
- const resolvedContents = await Promise.all(contents);
87
- return resolvedContents.filter(id => id !== undefined);
88
- }
89
- }
90
- exports.TheiaToolbar = TheiaToolbar;
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2023 EclipseSource and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.TheiaToolbar = void 0;
19
+ const theia_page_object_1 = require("./theia-page-object");
20
+ const theia_toolbar_item_1 = require("./theia-toolbar-item");
21
+ class TheiaToolbar extends theia_page_object_1.TheiaPageObject {
22
+ constructor() {
23
+ super(...arguments);
24
+ this.selector = 'div#main-toolbar.p-TabBar-toolbar';
25
+ }
26
+ async toolbarElementHandle() {
27
+ return this.page.$(this.selector);
28
+ }
29
+ async waitForVisible() {
30
+ await this.page.waitForSelector(this.selector, { state: 'visible' });
31
+ }
32
+ async isShown() {
33
+ const statusBar = await this.toolbarElementHandle();
34
+ return !!statusBar && statusBar.isVisible();
35
+ }
36
+ async show() {
37
+ if (!await this.isShown()) {
38
+ await this.toggle();
39
+ }
40
+ }
41
+ async hide() {
42
+ if (await this.isShown()) {
43
+ await this.toggle();
44
+ }
45
+ }
46
+ async toggle() {
47
+ const isShown = await this.isShown();
48
+ const viewMenu = await this.app.menuBar.openMenu('View');
49
+ await viewMenu.clickMenuItem('Toggle Toolbar');
50
+ isShown ? await this.waitUntilHidden() : await this.waitUntilShown();
51
+ }
52
+ async waitUntilHidden() {
53
+ await this.page.waitForSelector(this.selector, { state: 'hidden' });
54
+ }
55
+ async waitUntilShown() {
56
+ await this.page.waitForSelector(this.selector, { state: 'visible' });
57
+ }
58
+ async toolbarItems() {
59
+ const toolbarHandle = await this.toolbarElementHandle();
60
+ if (!toolbarHandle) {
61
+ return [];
62
+ }
63
+ const items = await toolbarHandle.$$(this.toolBarItemSelector());
64
+ return items.map(element => new theia_toolbar_item_1.TheiaToolbarItem(this.app, element));
65
+ }
66
+ async toolbarItemIds() {
67
+ const items = await this.toolbarItems();
68
+ return this.toCommandIdArray(items);
69
+ }
70
+ async toolBarItem(commandId) {
71
+ const toolbarHandle = await this.toolbarElementHandle();
72
+ if (!toolbarHandle) {
73
+ return undefined;
74
+ }
75
+ const item = await toolbarHandle.$(this.toolBarItemSelector(commandId));
76
+ if (item) {
77
+ return new theia_toolbar_item_1.TheiaToolbarItem(this.app, item);
78
+ }
79
+ return undefined;
80
+ }
81
+ toolBarItemSelector(toolbarItemId = '') {
82
+ return `div.toolbar-item${toolbarItemId ? `[id="${toolbarItemId}"]` : ''}`;
83
+ }
84
+ async toCommandIdArray(items) {
85
+ const contents = items.map(item => item.commandId());
86
+ const resolvedContents = await Promise.all(contents);
87
+ return resolvedContents.filter(id => id !== undefined);
88
+ }
89
+ }
90
+ exports.TheiaToolbar = TheiaToolbar;
91
91
  //# sourceMappingURL=theia-toolbar.js.map
@@ -1,20 +1,20 @@
1
- import { ElementHandle } from '@playwright/test';
2
- import { TheiaApp } from './theia-app';
3
- import { TheiaMenu } from './theia-menu';
4
- export declare class TheiaTreeNode {
5
- protected elementHandle: ElementHandle<SVGElement | HTMLElement>;
6
- protected app: TheiaApp;
7
- labelElementCssClass: string;
8
- nodeSegmentLabelCssClass: string;
9
- expansionToggleCssClass: string;
10
- collapsedCssClass: string;
11
- constructor(elementHandle: ElementHandle<SVGElement | HTMLElement>, app: TheiaApp);
12
- label(): Promise<string | null>;
13
- isCollapsed(): Promise<boolean>;
14
- isExpandable(): Promise<boolean>;
15
- expand(): Promise<void>;
16
- collapse(): Promise<void>;
17
- openContextMenu(): Promise<TheiaMenu>;
18
- openContextMenuOnSegment(nodeSegmentLabel: string): Promise<TheiaMenu>;
19
- }
1
+ import { ElementHandle } from '@playwright/test';
2
+ import { TheiaApp } from './theia-app';
3
+ import { TheiaMenu } from './theia-menu';
4
+ export declare class TheiaTreeNode {
5
+ protected elementHandle: ElementHandle<SVGElement | HTMLElement>;
6
+ protected app: TheiaApp;
7
+ labelElementCssClass: string;
8
+ nodeSegmentLabelCssClass: string;
9
+ expansionToggleCssClass: string;
10
+ collapsedCssClass: string;
11
+ constructor(elementHandle: ElementHandle<SVGElement | HTMLElement>, app: TheiaApp);
12
+ label(): Promise<string | null>;
13
+ isCollapsed(): Promise<boolean>;
14
+ isExpandable(): Promise<boolean>;
15
+ expand(): Promise<void>;
16
+ collapse(): Promise<void>;
17
+ openContextMenu(): Promise<TheiaMenu>;
18
+ openContextMenuOnSegment(nodeSegmentLabel: string): Promise<TheiaMenu>;
19
+ }
20
20
  //# sourceMappingURL=theia-tree-node.d.ts.map
@@ -1,73 +1,73 @@
1
- "use strict";
2
- // *****************************************************************************
3
- // Copyright (C) 2021 logi.cals GmbH, EclipseSource and others.
4
- //
5
- // This program and the accompanying materials are made available under the
6
- // terms of the Eclipse Public License v. 2.0 which is available at
7
- // http://www.eclipse.org/legal/epl-2.0.
8
- //
9
- // This Source Code may also be made available under the following Secondary
10
- // Licenses when the conditions for such availability set forth in the Eclipse
11
- // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
- // with the GNU Classpath Exception which is available at
13
- // https://www.gnu.org/software/classpath/license.html.
14
- //
15
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
- // *****************************************************************************
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.TheiaTreeNode = void 0;
19
- const theia_context_menu_1 = require("./theia-context-menu");
20
- class TheiaTreeNode {
21
- constructor(elementHandle, app) {
22
- this.elementHandle = elementHandle;
23
- this.app = app;
24
- this.labelElementCssClass = '.theia-TreeNodeSegmentGrow';
25
- this.nodeSegmentLabelCssClass = '.theia-tree-compressed-label-part';
26
- this.expansionToggleCssClass = '.theia-ExpansionToggle';
27
- this.collapsedCssClass = '.theia-mod-collapsed';
28
- }
29
- async label() {
30
- const labelNode = await this.elementHandle.$(this.labelElementCssClass);
31
- if (!labelNode) {
32
- throw new Error('Cannot read label of ' + this.elementHandle);
33
- }
34
- return labelNode.textContent();
35
- }
36
- async isCollapsed() {
37
- return !!await this.elementHandle.$(this.collapsedCssClass);
38
- }
39
- async isExpandable() {
40
- return !!await this.elementHandle.$(this.expansionToggleCssClass);
41
- }
42
- async expand() {
43
- if (!await this.isCollapsed()) {
44
- return;
45
- }
46
- const expansionToggle = await this.elementHandle.waitForSelector(this.expansionToggleCssClass);
47
- await expansionToggle.click();
48
- await this.elementHandle.waitForSelector(`${this.expansionToggleCssClass}:not(${this.collapsedCssClass})`);
49
- }
50
- async collapse() {
51
- if (await this.isCollapsed()) {
52
- return;
53
- }
54
- const expansionToggle = await this.elementHandle.waitForSelector(this.expansionToggleCssClass);
55
- await expansionToggle.click();
56
- await this.elementHandle.waitForSelector(`${this.expansionToggleCssClass}${this.collapsedCssClass}`);
57
- }
58
- async openContextMenu() {
59
- return theia_context_menu_1.TheiaContextMenu.open(this.app, () => this.elementHandle.waitForSelector(this.labelElementCssClass));
60
- }
61
- async openContextMenuOnSegment(nodeSegmentLabel) {
62
- const treeNodeLabel = await this.elementHandle.waitForSelector(this.labelElementCssClass);
63
- const treeNodeLabelSegments = await treeNodeLabel.$$(`span${this.nodeSegmentLabelCssClass}`);
64
- for (const segmentLabel of treeNodeLabelSegments) {
65
- if (await segmentLabel.textContent() === nodeSegmentLabel) {
66
- return theia_context_menu_1.TheiaContextMenu.open(this.app, () => Promise.resolve(segmentLabel));
67
- }
68
- }
69
- throw new Error('Could not find tree node segment label "' + nodeSegmentLabel + '"');
70
- }
71
- }
72
- exports.TheiaTreeNode = TheiaTreeNode;
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2021 logi.cals GmbH, EclipseSource and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.TheiaTreeNode = void 0;
19
+ const theia_context_menu_1 = require("./theia-context-menu");
20
+ class TheiaTreeNode {
21
+ constructor(elementHandle, app) {
22
+ this.elementHandle = elementHandle;
23
+ this.app = app;
24
+ this.labelElementCssClass = '.theia-TreeNodeSegmentGrow';
25
+ this.nodeSegmentLabelCssClass = '.theia-tree-compressed-label-part';
26
+ this.expansionToggleCssClass = '.theia-ExpansionToggle';
27
+ this.collapsedCssClass = '.theia-mod-collapsed';
28
+ }
29
+ async label() {
30
+ const labelNode = await this.elementHandle.$(this.labelElementCssClass);
31
+ if (!labelNode) {
32
+ throw new Error('Cannot read label of ' + this.elementHandle);
33
+ }
34
+ return labelNode.textContent();
35
+ }
36
+ async isCollapsed() {
37
+ return !!await this.elementHandle.$(this.collapsedCssClass);
38
+ }
39
+ async isExpandable() {
40
+ return !!await this.elementHandle.$(this.expansionToggleCssClass);
41
+ }
42
+ async expand() {
43
+ if (!await this.isCollapsed()) {
44
+ return;
45
+ }
46
+ const expansionToggle = await this.elementHandle.waitForSelector(this.expansionToggleCssClass);
47
+ await expansionToggle.click();
48
+ await this.elementHandle.waitForSelector(`${this.expansionToggleCssClass}:not(${this.collapsedCssClass})`);
49
+ }
50
+ async collapse() {
51
+ if (await this.isCollapsed()) {
52
+ return;
53
+ }
54
+ const expansionToggle = await this.elementHandle.waitForSelector(this.expansionToggleCssClass);
55
+ await expansionToggle.click();
56
+ await this.elementHandle.waitForSelector(`${this.expansionToggleCssClass}${this.collapsedCssClass}`);
57
+ }
58
+ async openContextMenu() {
59
+ return theia_context_menu_1.TheiaContextMenu.open(this.app, () => this.elementHandle.waitForSelector(this.labelElementCssClass));
60
+ }
61
+ async openContextMenuOnSegment(nodeSegmentLabel) {
62
+ const treeNodeLabel = await this.elementHandle.waitForSelector(this.labelElementCssClass);
63
+ const treeNodeLabelSegments = await treeNodeLabel.$$(`span${this.nodeSegmentLabelCssClass}`);
64
+ for (const segmentLabel of treeNodeLabelSegments) {
65
+ if (await segmentLabel.textContent() === nodeSegmentLabel) {
66
+ return theia_context_menu_1.TheiaContextMenu.open(this.app, () => Promise.resolve(segmentLabel));
67
+ }
68
+ }
69
+ throw new Error('Could not find tree node segment label "' + nodeSegmentLabel + '"');
70
+ }
71
+ }
72
+ exports.TheiaTreeNode = TheiaTreeNode;
73
73
  //# sourceMappingURL=theia-tree-node.js.map
@@ -1,33 +1,33 @@
1
- import { ElementHandle } from '@playwright/test';
2
- import { TheiaApp } from './theia-app';
3
- import { TheiaMenu } from './theia-menu';
4
- import { TheiaPageObject } from './theia-page-object';
5
- export interface TheiaViewData {
6
- tabSelector: string;
7
- viewSelector: string;
8
- viewName?: string;
9
- }
10
- export declare class TheiaView extends TheiaPageObject {
11
- protected readonly data: TheiaViewData;
12
- constructor(data: TheiaViewData, app: TheiaApp);
13
- get tabSelector(): string;
14
- get viewSelector(): string;
15
- get name(): string | undefined;
16
- open(): Promise<TheiaView>;
17
- focus(): Promise<void>;
18
- activate(): Promise<void>;
19
- waitForVisible(): Promise<void>;
20
- isTabVisible(): Promise<boolean>;
21
- isDisplayed(): Promise<boolean>;
22
- isActive(): Promise<boolean>;
23
- isClosable(): Promise<boolean>;
24
- close(waitForClosed?: boolean): Promise<void>;
25
- protected waitUntilClosed(): Promise<void>;
26
- title(): Promise<string | undefined>;
27
- isInSidePanel(): Promise<boolean>;
28
- side(): Promise<'left' | 'right' | 'bottom' | 'main'>;
29
- openContextMenuOnTab(): Promise<TheiaMenu>;
30
- protected viewElement(): Promise<ElementHandle<SVGElement | HTMLElement> | null>;
31
- protected tabElement(): Promise<ElementHandle<SVGElement | HTMLElement> | null>;
32
- }
1
+ import { ElementHandle } from '@playwright/test';
2
+ import { TheiaApp } from './theia-app';
3
+ import { TheiaMenu } from './theia-menu';
4
+ import { TheiaPageObject } from './theia-page-object';
5
+ export interface TheiaViewData {
6
+ tabSelector: string;
7
+ viewSelector: string;
8
+ viewName?: string;
9
+ }
10
+ export declare class TheiaView extends TheiaPageObject {
11
+ protected readonly data: TheiaViewData;
12
+ constructor(data: TheiaViewData, app: TheiaApp);
13
+ get tabSelector(): string;
14
+ get viewSelector(): string;
15
+ get name(): string | undefined;
16
+ open(): Promise<TheiaView>;
17
+ focus(): Promise<void>;
18
+ activate(): Promise<void>;
19
+ waitForVisible(): Promise<void>;
20
+ isTabVisible(): Promise<boolean>;
21
+ isDisplayed(): Promise<boolean>;
22
+ isActive(): Promise<boolean>;
23
+ isClosable(): Promise<boolean>;
24
+ close(waitForClosed?: boolean): Promise<void>;
25
+ protected waitUntilClosed(): Promise<void>;
26
+ title(): Promise<string | undefined>;
27
+ isInSidePanel(): Promise<boolean>;
28
+ side(): Promise<'left' | 'right' | 'bottom' | 'main'>;
29
+ openContextMenuOnTab(): Promise<TheiaMenu>;
30
+ protected viewElement(): Promise<ElementHandle<SVGElement | HTMLElement> | null>;
31
+ protected tabElement(): Promise<ElementHandle<SVGElement | HTMLElement> | null>;
32
+ }
33
33
  //# sourceMappingURL=theia-view.d.ts.map