@theia/playwright 1.76.0-next.4 → 1.76.0-next.7

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.
@@ -98,5 +98,28 @@ test_1.test.describe('Preference View', () => {
98
98
  preferences.customTimeout = undefined;
99
99
  }
100
100
  });
101
+ (0, test_1.test)('should keep the selected sub-category when switching the scope', async () => {
102
+ const preferences = await app.openPreferences(theia_preference_view_1.TheiaPreferenceView);
103
+ await preferences.openPreferenceScope(theia_preference_view_1.TheiaPreferenceScope.User);
104
+ await preferences.selectCategory('Text Editor', 'Files');
105
+ (0, test_1.expect)(await preferences.getSelectedCategory()).toBe('Files');
106
+ await preferences.openPreferenceScope(theia_preference_view_1.TheiaPreferenceScope.Workspace);
107
+ (0, test_1.expect)(await preferences.getSelectedCategory()).toBe('Files');
108
+ });
109
+ (0, test_1.test)('should keep the fallback category selected when switching back to a scope where the previous category exists', async () => {
110
+ const preferences = await app.openPreferences(theia_preference_view_1.TheiaPreferenceView);
111
+ await preferences.openPreferenceScope(theia_preference_view_1.TheiaPreferenceScope.User);
112
+ // Scroll first: selecting a category then scrolls back to the top, which records the
113
+ // section at the top of the new page as the row to keep in view on scope changes.
114
+ await preferences.selectCategory('Commonly Used');
115
+ await preferences.scrollEditorBy(300);
116
+ // Workspace trust settings are not available in the Workspace scope.
117
+ await preferences.selectCategory('Security', 'Workspace');
118
+ (0, test_1.expect)(await preferences.getSelectedCategory()).toBe('Workspace');
119
+ await preferences.openPreferenceScope(theia_preference_view_1.TheiaPreferenceScope.Workspace);
120
+ (0, test_1.expect)(await preferences.getSelectedCategory()).toBe('Commonly Used');
121
+ await preferences.openPreferenceScope(theia_preference_view_1.TheiaPreferenceScope.User);
122
+ (0, test_1.expect)(await preferences.getSelectedCategory()).toBe('Commonly Used');
123
+ });
101
124
  });
102
125
  //# sourceMappingURL=theia-preference-view.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"theia-preference-view.test.js","sourceRoot":"","sources":["../../src/tests/theia-preference-view.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theia-preference-view.test.js","sourceRoot":"","sources":["../../src/tests/theia-preference-view.test.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,9 @@ export declare enum TheiaPreferenceScope {
52
52
  export declare class TheiaPreferenceView extends TheiaView {
53
53
  customTimeout?: number;
54
54
  protected modificationIndicator: string;
55
+ protected searchInput: string;
56
+ protected categoryTree: string;
57
+ protected editorScrollContainer: string;
55
58
  protected optionSelectLabel: string;
56
59
  protected optionSelectDropdown: string;
57
60
  protected optionSelectDropdownValue: string;
@@ -65,6 +68,27 @@ export declare class TheiaPreferenceView extends TheiaView {
65
68
  open(preferenceScope?: TheiaPreferenceScope, useMenu?: boolean): Promise<TheiaView>;
66
69
  protected getScopeSelector(scope: TheiaPreferenceScope): string;
67
70
  openPreferenceScope(scope: TheiaPreferenceScope): Promise<void>;
71
+ /**
72
+ * Clears the search box, so that the complete settings tree is shown again and the
73
+ * settings editor returns to the default category.
74
+ */
75
+ clearSearch(): Promise<void>;
76
+ /**
77
+ * Selects a category in the settings tree by following the given path of labels,
78
+ * e.g. `'Text Editor', 'Files'`. The settings editor is narrowed to the selected category.
79
+ * An active search is cleared first, as it prunes the tree and adds result counts to the labels.
80
+ */
81
+ selectCategory(...labelPath: string[]): Promise<void>;
82
+ /**
83
+ * @returns the label of the category currently selected in the settings tree, or `undefined` if none is selected.
84
+ */
85
+ getSelectedCategory(): Promise<string | undefined>;
86
+ /**
87
+ * Scrolls the settings editor by the given number of pixels. Scrolling syncs the tree
88
+ * selection to the section shown at the top of the editor.
89
+ */
90
+ scrollEditorBy(deltaY: number): Promise<void>;
91
+ protected getCategoryNodeSelector(label: string): string;
68
92
  getBooleanPreferenceByPath(sectionTitle: string, name: string): Promise<boolean>;
69
93
  getBooleanPreferenceById(preferenceId: string): Promise<boolean>;
70
94
  setBooleanPreferenceByPath(sectionTitle: string, name: string, value: boolean): Promise<void>;
@@ -81,6 +105,16 @@ export declare class TheiaPreferenceView extends TheiaView {
81
105
  resetPreferenceById(preferenceId: string): Promise<void>;
82
106
  private findPreferenceId;
83
107
  private findPreferenceEditorById;
108
+ /**
109
+ * Preferences outside the currently selected category are hidden in the settings editor.
110
+ * If the preference is not visible, search for its id, which clears the category filter
111
+ * and reveals the preference.
112
+ */
113
+ protected ensurePreferenceVisible(preferenceId: string): Promise<void>;
114
+ /**
115
+ * @param visibleOnly filters out hidden rows, e.g. the copy of a preference in the
116
+ * 'Commonly Used' section, which is hidden while a search filter is active.
117
+ */
84
118
  private getPreferenceSelector;
85
119
  private getPreferenceEditorSelector;
86
120
  private findPreferenceResetButton;
@@ -1 +1 @@
1
- {"version":3,"file":"theia-preference-view.d.ts","sourceRoot":"","sources":["../src/theia-preference-view.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAOzC,eAAO,MAAM,aAAa;;;;;;;;;;;;;;CAczB,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B9B,CAAC;AAEF,oBAAY,oBAAoB;IAC5B,IAAI,SAAS;IACb,SAAS,cAAc;CAC1B;AAED,qBAAa,mBAAoB,SAAQ,SAAS;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,qBAAqB,SAA8B;IAC7D,SAAS,CAAC,iBAAiB,SAAmC;IAC9D,SAAS,CAAC,oBAAoB,SAAsC;IACpE,SAAS,CAAC,yBAAyB,SAA0C;gBAEjE,GAAG,EAAE,QAAQ;IAIzB;;;;;OAKG;IACY,IAAI,CAAC,eAAe,uBAAiC,EAAE,OAAO,GAAE,OAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IAalH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM;IAIzD,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/D,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKhF,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKhE,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7F,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7E,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK9E,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK9D,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3F,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3E,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK/E,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK/D,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5F,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5E,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxE,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAQhD,gBAAgB;YAYhB,wBAAwB;IAStC,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,2BAA2B;YAIrB,yBAAyB;IAejC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpD,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5D,OAAO,CAAC,2BAA2B;CAGtC"}
1
+ {"version":3,"file":"theia-preference-view.d.ts","sourceRoot":"","sources":["../src/theia-preference-view.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAOzC,eAAO,MAAM,aAAa;;;;;;;;;;;;;;CAczB,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B9B,CAAC;AAEF,oBAAY,oBAAoB;IAC5B,IAAI,SAAS;IACb,SAAS,cAAc;CAC1B;AAED,qBAAa,mBAAoB,SAAQ,SAAS;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,qBAAqB,SAA8B;IAC7D,SAAS,CAAC,WAAW,SAA4B;IACjD,SAAS,CAAC,YAAY,SAA8B;IACpD,SAAS,CAAC,qBAAqB,SAAqC;IACpE,SAAS,CAAC,iBAAiB,SAAmC;IAC9D,SAAS,CAAC,oBAAoB,SAAsC;IACpE,SAAS,CAAC,yBAAyB,SAA0C;gBAEjE,GAAG,EAAE,QAAQ;IAIzB;;;;;OAKG;IACY,IAAI,CAAC,eAAe,uBAAiC,EAAE,OAAO,GAAE,OAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IAalH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM;IAIzD,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrE;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAOlC;;;;OAIG;IACG,cAAc,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3D;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAOxD;;;OAGG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnD,SAAS,CAAC,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIlD,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKhF,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKhE,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7F,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7E,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK9E,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK9D,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3F,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3E,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK/E,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK/D,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5F,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5E,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxE,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAQhD,gBAAgB;YAYhB,wBAAwB;IAUtC;;;;OAIG;cACa,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5E;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,2BAA2B;YAIrB,yBAAyB;IAejC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpD,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5D,OAAO,CAAC,2BAA2B;CAGtC"}
@@ -75,6 +75,9 @@ class TheiaPreferenceView extends theia_view_1.TheiaView {
75
75
  constructor(app) {
76
76
  super(TheiaSettingsViewData, app);
77
77
  this.modificationIndicator = '.theia-mod-item-modified';
78
+ this.searchInput = '.settings-search-input';
79
+ this.categoryTree = '.preferences-tree-widget';
80
+ this.editorScrollContainer = '.settings-main-scroll-container';
78
81
  this.optionSelectLabel = '.theia-select-component-label';
79
82
  this.optionSelectDropdown = '.theia-select-component-dropdown';
80
83
  this.optionSelectDropdownValue = '.theia-select-component-option-value';
@@ -106,6 +109,51 @@ class TheiaPreferenceView extends theia_view_1.TheiaView {
106
109
  const scopeTab = await this.page.waitForSelector(this.getScopeSelector(scope));
107
110
  await scopeTab.click();
108
111
  }
112
+ /**
113
+ * Clears the search box, so that the complete settings tree is shown again and the
114
+ * settings editor returns to the default category.
115
+ */
116
+ async clearSearch() {
117
+ await this.activate();
118
+ const viewElement = await this.viewElement();
119
+ const input = await viewElement?.waitForSelector(this.searchInput, { timeout: this.customTimeout });
120
+ await input?.fill('');
121
+ }
122
+ /**
123
+ * Selects a category in the settings tree by following the given path of labels,
124
+ * e.g. `'Text Editor', 'Files'`. The settings editor is narrowed to the selected category.
125
+ * An active search is cleared first, as it prunes the tree and adds result counts to the labels.
126
+ */
127
+ async selectCategory(...labelPath) {
128
+ await this.clearSearch();
129
+ const viewElement = await this.viewElement();
130
+ for (const label of labelPath) {
131
+ const node = await viewElement?.waitForSelector(this.getCategoryNodeSelector(label), { timeout: this.customTimeout });
132
+ await node?.click();
133
+ }
134
+ }
135
+ /**
136
+ * @returns the label of the category currently selected in the settings tree, or `undefined` if none is selected.
137
+ */
138
+ async getSelectedCategory() {
139
+ await this.activate();
140
+ const viewElement = await this.viewElement();
141
+ const label = await viewElement?.$(`${this.categoryTree} .theia-TreeNode.theia-mod-selected .theia-TreeNodeSegmentGrow`);
142
+ return (await label?.textContent())?.trim();
143
+ }
144
+ /**
145
+ * Scrolls the settings editor by the given number of pixels. Scrolling syncs the tree
146
+ * selection to the section shown at the top of the editor.
147
+ */
148
+ async scrollEditorBy(deltaY) {
149
+ await this.activate();
150
+ const viewElement = await this.viewElement();
151
+ const container = await viewElement?.waitForSelector(this.editorScrollContainer, { timeout: this.customTimeout });
152
+ await container?.evaluate((element, delta) => { element.scrollTop += delta; }, deltaY);
153
+ }
154
+ getCategoryNodeSelector(label) {
155
+ return `${this.categoryTree} .theia-TreeNode:has(.theia-TreeNodeSegmentGrow:text-is("${label}"))`;
156
+ }
109
157
  async getBooleanPreferenceByPath(sectionTitle, name) {
110
158
  const preferenceId = await this.findPreferenceId(sectionTitle, name);
111
159
  return this.getBooleanPreferenceById(preferenceId);
@@ -178,6 +226,7 @@ class TheiaPreferenceView extends theia_view_1.TheiaView {
178
226
  return preferenceId;
179
227
  }
180
228
  async findPreferenceEditorById(preferenceId, elementType = 'input') {
229
+ await this.ensurePreferenceVisible(preferenceId);
181
230
  const viewElement = await this.viewElement();
182
231
  const element = await viewElement?.waitForSelector(this.getPreferenceEditorSelector(preferenceId, elementType), { timeout: this.customTimeout });
183
232
  if (!element) {
@@ -185,8 +234,26 @@ class TheiaPreferenceView extends theia_view_1.TheiaView {
185
234
  }
186
235
  return element;
187
236
  }
188
- getPreferenceSelector(preferenceId) {
189
- return `li[data-pref-id="${preferenceId}"]`;
237
+ /**
238
+ * Preferences outside the currently selected category are hidden in the settings editor.
239
+ * If the preference is not visible, search for its id, which clears the category filter
240
+ * and reveals the preference.
241
+ */
242
+ async ensurePreferenceVisible(preferenceId) {
243
+ const viewElement = await this.viewElement();
244
+ if (await viewElement?.$(this.getPreferenceSelector(preferenceId))) {
245
+ return;
246
+ }
247
+ const input = await viewElement?.waitForSelector(this.searchInput, { timeout: this.customTimeout });
248
+ await input?.fill(preferenceId);
249
+ await viewElement?.waitForSelector(this.getPreferenceSelector(preferenceId), { timeout: this.customTimeout });
250
+ }
251
+ /**
252
+ * @param visibleOnly filters out hidden rows, e.g. the copy of a preference in the
253
+ * 'Commonly Used' section, which is hidden while a search filter is active.
254
+ */
255
+ getPreferenceSelector(preferenceId, visibleOnly = true) {
256
+ return `li[data-pref-id="${preferenceId}"]${visibleOnly ? ':visible' : ''}`;
190
257
  }
191
258
  getPreferenceEditorSelector(preferenceId, elementType) {
192
259
  return `${this.getPreferenceSelector(preferenceId)} ${elementType}`;
@@ -213,10 +280,12 @@ class TheiaPreferenceView extends theia_view_1.TheiaView {
213
280
  async waitForUnmodified(preferenceId) {
214
281
  await this.activate();
215
282
  const viewElement = await this.viewElement();
216
- await viewElement?.waitForSelector(`${this.getPreferenceGutterSelector(preferenceId)}${this.modificationIndicator}`, { state: 'detached', timeout: this.customTimeout });
283
+ // Match hidden rows too: a row hidden by the category filter must not satisfy the
284
+ // 'detached' wait while its modification indicator is still present.
285
+ await viewElement?.waitForSelector(`${this.getPreferenceGutterSelector(preferenceId, false)}${this.modificationIndicator}`, { state: 'detached', timeout: this.customTimeout });
217
286
  }
218
- getPreferenceGutterSelector(preferenceId) {
219
- return `${this.getPreferenceSelector(preferenceId)} .pref-context-gutter`;
287
+ getPreferenceGutterSelector(preferenceId, visibleOnly = true) {
288
+ return `${this.getPreferenceSelector(preferenceId, visibleOnly)} .pref-context-gutter`;
220
289
  }
221
290
  }
222
291
  exports.TheiaPreferenceView = TheiaPreferenceView;
@@ -1 +1 @@
1
- {"version":3,"file":"theia-preference-view.js","sourceRoot":"","sources":["../src/theia-preference-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theia-preference-view.js","sourceRoot":"","sources":["../src/theia-preference-view.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theia/playwright",
3
- "version": "1.76.0-next.4+21b9b5342",
3
+ "version": "1.76.0-next.7+7c303b183",
4
4
  "description": "System tests for Theia",
5
5
  "license": "EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0",
6
6
  "repository": {
@@ -37,7 +37,7 @@
37
37
  "tslib": "^2.8.1"
38
38
  },
39
39
  "devDependencies": {
40
- "@theia/cli": "1.76.0-next.4+21b9b5342",
40
+ "@theia/cli": "1.76.0-next.7+7c303b183",
41
41
  "@types/fs-extra": "^9.0.13",
42
42
  "allure-commandline": "^2.43.0",
43
43
  "allure-playwright": "^2.15.1",
@@ -49,5 +49,5 @@
49
49
  "access": "public"
50
50
  },
51
51
  "main": "lib/index",
52
- "gitHead": "21b9b534224c55152fca0b67af7f8a8283dad2bd"
52
+ "gitHead": "7c303b1836421183d7013f0bd679a9a30ff0b5dc"
53
53
  }
@@ -17,7 +17,7 @@
17
17
  import { expect, test } from '@playwright/test';
18
18
  import { TheiaApp } from '../theia-app';
19
19
  import { TheiaAppLoader } from '../theia-app-loader';
20
- import { DefaultPreferences, PreferenceIds, TheiaPreferenceView } from '../theia-preference-view';
20
+ import { DefaultPreferences, PreferenceIds, TheiaPreferenceScope, TheiaPreferenceView } from '../theia-preference-view';
21
21
 
22
22
  test.describe('Preference View', () => {
23
23
 
@@ -119,4 +119,32 @@ test.describe('Preference View', () => {
119
119
  preferences.customTimeout = undefined;
120
120
  }
121
121
  });
122
+
123
+ test('should keep the selected sub-category when switching the scope', async () => {
124
+ const preferences = await app.openPreferences(TheiaPreferenceView);
125
+ await preferences.openPreferenceScope(TheiaPreferenceScope.User);
126
+ await preferences.selectCategory('Text Editor', 'Files');
127
+ expect(await preferences.getSelectedCategory()).toBe('Files');
128
+
129
+ await preferences.openPreferenceScope(TheiaPreferenceScope.Workspace);
130
+ expect(await preferences.getSelectedCategory()).toBe('Files');
131
+ });
132
+
133
+ test('should keep the fallback category selected when switching back to a scope where the previous category exists', async () => {
134
+ const preferences = await app.openPreferences(TheiaPreferenceView);
135
+ await preferences.openPreferenceScope(TheiaPreferenceScope.User);
136
+ // Scroll first: selecting a category then scrolls back to the top, which records the
137
+ // section at the top of the new page as the row to keep in view on scope changes.
138
+ await preferences.selectCategory('Commonly Used');
139
+ await preferences.scrollEditorBy(300);
140
+ // Workspace trust settings are not available in the Workspace scope.
141
+ await preferences.selectCategory('Security', 'Workspace');
142
+ expect(await preferences.getSelectedCategory()).toBe('Workspace');
143
+
144
+ await preferences.openPreferenceScope(TheiaPreferenceScope.Workspace);
145
+ expect(await preferences.getSelectedCategory()).toBe('Commonly Used');
146
+
147
+ await preferences.openPreferenceScope(TheiaPreferenceScope.User);
148
+ expect(await preferences.getSelectedCategory()).toBe('Commonly Used');
149
+ });
122
150
  });
@@ -78,6 +78,9 @@ export enum TheiaPreferenceScope {
78
78
  export class TheiaPreferenceView extends TheiaView {
79
79
  public customTimeout?: number;
80
80
  protected modificationIndicator = '.theia-mod-item-modified';
81
+ protected searchInput = '.settings-search-input';
82
+ protected categoryTree = '.preferences-tree-widget';
83
+ protected editorScrollContainer = '.settings-main-scroll-container';
81
84
  protected optionSelectLabel = '.theia-select-component-label';
82
85
  protected optionSelectDropdown = '.theia-select-component-dropdown';
83
86
  protected optionSelectDropdownValue = '.theia-select-component-option-value';
@@ -115,6 +118,56 @@ export class TheiaPreferenceView extends TheiaView {
115
118
  await scopeTab.click();
116
119
  }
117
120
 
121
+ /**
122
+ * Clears the search box, so that the complete settings tree is shown again and the
123
+ * settings editor returns to the default category.
124
+ */
125
+ async clearSearch(): Promise<void> {
126
+ await this.activate();
127
+ const viewElement = await this.viewElement();
128
+ const input = await viewElement?.waitForSelector(this.searchInput, { timeout: this.customTimeout });
129
+ await input?.fill('');
130
+ }
131
+
132
+ /**
133
+ * Selects a category in the settings tree by following the given path of labels,
134
+ * e.g. `'Text Editor', 'Files'`. The settings editor is narrowed to the selected category.
135
+ * An active search is cleared first, as it prunes the tree and adds result counts to the labels.
136
+ */
137
+ async selectCategory(...labelPath: string[]): Promise<void> {
138
+ await this.clearSearch();
139
+ const viewElement = await this.viewElement();
140
+ for (const label of labelPath) {
141
+ const node = await viewElement?.waitForSelector(this.getCategoryNodeSelector(label), { timeout: this.customTimeout });
142
+ await node?.click();
143
+ }
144
+ }
145
+
146
+ /**
147
+ * @returns the label of the category currently selected in the settings tree, or `undefined` if none is selected.
148
+ */
149
+ async getSelectedCategory(): Promise<string | undefined> {
150
+ await this.activate();
151
+ const viewElement = await this.viewElement();
152
+ const label = await viewElement?.$(`${this.categoryTree} .theia-TreeNode.theia-mod-selected .theia-TreeNodeSegmentGrow`);
153
+ return (await label?.textContent())?.trim();
154
+ }
155
+
156
+ /**
157
+ * Scrolls the settings editor by the given number of pixels. Scrolling syncs the tree
158
+ * selection to the section shown at the top of the editor.
159
+ */
160
+ async scrollEditorBy(deltaY: number): Promise<void> {
161
+ await this.activate();
162
+ const viewElement = await this.viewElement();
163
+ const container = await viewElement?.waitForSelector(this.editorScrollContainer, { timeout: this.customTimeout });
164
+ await container?.evaluate((element, delta) => { element.scrollTop += delta; }, deltaY);
165
+ }
166
+
167
+ protected getCategoryNodeSelector(label: string): string {
168
+ return `${this.categoryTree} .theia-TreeNode:has(.theia-TreeNodeSegmentGrow:text-is("${label}"))`;
169
+ }
170
+
118
171
  async getBooleanPreferenceByPath(sectionTitle: string, name: string): Promise<boolean> {
119
172
  const preferenceId = await this.findPreferenceId(sectionTitle, name);
120
173
  return this.getBooleanPreferenceById(preferenceId);
@@ -203,6 +256,7 @@ export class TheiaPreferenceView extends TheiaView {
203
256
  }
204
257
 
205
258
  private async findPreferenceEditorById(preferenceId: string, elementType: string = 'input'): Promise<ElementHandle<SVGElement | HTMLElement>> {
259
+ await this.ensurePreferenceVisible(preferenceId);
206
260
  const viewElement = await this.viewElement();
207
261
  const element = await viewElement?.waitForSelector(this.getPreferenceEditorSelector(preferenceId, elementType), { timeout: this.customTimeout });
208
262
  if (!element) {
@@ -211,8 +265,27 @@ export class TheiaPreferenceView extends TheiaView {
211
265
  return element;
212
266
  }
213
267
 
214
- private getPreferenceSelector(preferenceId: string): string {
215
- return `li[data-pref-id="${preferenceId}"]`;
268
+ /**
269
+ * Preferences outside the currently selected category are hidden in the settings editor.
270
+ * If the preference is not visible, search for its id, which clears the category filter
271
+ * and reveals the preference.
272
+ */
273
+ protected async ensurePreferenceVisible(preferenceId: string): Promise<void> {
274
+ const viewElement = await this.viewElement();
275
+ if (await viewElement?.$(this.getPreferenceSelector(preferenceId))) {
276
+ return;
277
+ }
278
+ const input = await viewElement?.waitForSelector(this.searchInput, { timeout: this.customTimeout });
279
+ await input?.fill(preferenceId);
280
+ await viewElement?.waitForSelector(this.getPreferenceSelector(preferenceId), { timeout: this.customTimeout });
281
+ }
282
+
283
+ /**
284
+ * @param visibleOnly filters out hidden rows, e.g. the copy of a preference in the
285
+ * 'Commonly Used' section, which is hidden while a search filter is active.
286
+ */
287
+ private getPreferenceSelector(preferenceId: string, visibleOnly: boolean = true): string {
288
+ return `li[data-pref-id="${preferenceId}"]${visibleOnly ? ':visible' : ''}`;
216
289
  }
217
290
 
218
291
  private getPreferenceEditorSelector(preferenceId: string, elementType: string): string {
@@ -243,10 +316,14 @@ export class TheiaPreferenceView extends TheiaView {
243
316
  async waitForUnmodified(preferenceId: string): Promise<void> {
244
317
  await this.activate();
245
318
  const viewElement = await this.viewElement();
246
- await viewElement?.waitForSelector(`${this.getPreferenceGutterSelector(preferenceId)}${this.modificationIndicator}`, { state: 'detached', timeout: this.customTimeout });
319
+ // Match hidden rows too: a row hidden by the category filter must not satisfy the
320
+ // 'detached' wait while its modification indicator is still present.
321
+ await viewElement?.waitForSelector(
322
+ `${this.getPreferenceGutterSelector(preferenceId, false)}${this.modificationIndicator}`, { state: 'detached', timeout: this.customTimeout }
323
+ );
247
324
  }
248
325
 
249
- private getPreferenceGutterSelector(preferenceId: string): string {
250
- return `${this.getPreferenceSelector(preferenceId)} .pref-context-gutter`;
326
+ private getPreferenceGutterSelector(preferenceId: string, visibleOnly: boolean = true): string {
327
+ return `${this.getPreferenceSelector(preferenceId, visibleOnly)} .pref-context-gutter`;
251
328
  }
252
329
  }