@thinkwise/testwise 0.1.12 → 0.1.63
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/Testwise.ts +5 -1
- package/components/filter/FilterForm.ts +1 -1
- package/components/filter/FindForm.ts +1 -1
- package/components/grid/Grid.ts +88 -12
- package/components/grid/GridObjects.ts +16 -8
- package/components/index.ts +7 -3
- package/components/pop-up/PopUpComponent.ts +1 -1
- package/components/tab/BaseTab.ts +42 -0
- package/components/tab/BaseTabObjects.ts +23 -0
- package/components/tab/ComponentTab.ts +35 -0
- package/components/tab/ComponentTabObjects.ts +14 -0
- package/components/tab/DetailTab.ts +20 -0
- package/components/tab/DetailTabObjects.ts +10 -0
- package/components/task/TaskBar.ts +29 -9
- package/components/task/TaskBarObjects.ts +24 -0
- package/components/task/TaskTile.ts +28 -0
- package/components/task/TaskTileObjects.ts +20 -0
- package/controls/LookupDropdown.ts +54 -0
- package/controls/index.ts +1 -0
- package/dist/Testwise.js +4 -2
- package/dist/Testwise.js.map +1 -1
- package/dist/biome.json +52 -0
- package/dist/components/filter/FilterForm.d.ts +5 -0
- package/dist/components/filter/FilterForm.js +10 -0
- package/dist/components/filter/FilterForm.js.map +1 -0
- package/dist/components/filter/FindForm.d.ts +5 -0
- package/dist/components/filter/FindForm.js +10 -0
- package/dist/components/filter/FindForm.js.map +1 -0
- package/dist/components/grid/Grid.d.ts +25 -6
- package/dist/components/grid/Grid.js +80 -16
- package/dist/components/grid/Grid.js.map +1 -1
- package/dist/components/grid/GridObjects.d.ts +5 -3
- package/dist/components/grid/GridObjects.js +9 -6
- package/dist/components/grid/GridObjects.js.map +1 -1
- package/dist/components/index.d.ts +7 -3
- package/dist/components/index.js +7 -3
- package/dist/components/index.js.map +1 -1
- package/dist/components/pop-up/PopUpComponent.js +1 -1
- package/dist/components/pop-up/PopUpComponent.js.map +1 -1
- package/dist/components/pop-up/{PopUpComponentModels.js → PopUpComponentObjects.js} +1 -1
- package/dist/components/pop-up/PopUpComponentObjects.js.map +1 -0
- package/dist/components/tab/BaseTab.d.ts +11 -0
- package/dist/components/tab/BaseTab.js +34 -0
- package/dist/components/tab/BaseTab.js.map +1 -0
- package/dist/components/tab/BaseTabObjects.d.ts +10 -0
- package/dist/components/tab/BaseTabObjects.js +14 -0
- package/dist/components/tab/BaseTabObjects.js.map +1 -0
- package/dist/components/tab/ComponentTab.d.ts +11 -0
- package/dist/components/tab/ComponentTab.js +27 -0
- package/dist/components/tab/ComponentTab.js.map +1 -0
- package/dist/components/tab/ComponentTabObjects.d.ts +7 -0
- package/dist/components/tab/ComponentTabObjects.js +10 -0
- package/dist/components/tab/ComponentTabObjects.js.map +1 -0
- package/dist/components/tab/DetailTab.d.ts +9 -0
- package/dist/components/tab/DetailTab.js +15 -0
- package/dist/components/tab/DetailTab.js.map +1 -0
- package/dist/components/tab/DetailTabObjects.d.ts +5 -0
- package/dist/components/tab/DetailTabObjects.js +7 -0
- package/dist/components/tab/DetailTabObjects.js.map +1 -0
- package/dist/components/task/TaskBar.d.ts +17 -0
- package/dist/components/task/TaskBar.js +23 -0
- package/dist/components/task/TaskBar.js.map +1 -0
- package/dist/components/task/TaskBarObjects.d.ts +17 -0
- package/dist/components/task/TaskBarObjects.js +19 -0
- package/dist/components/task/TaskBarObjects.js.map +1 -0
- package/dist/components/task/TaskTile.d.ts +14 -0
- package/dist/components/task/TaskTile.js +20 -0
- package/dist/components/task/TaskTile.js.map +1 -0
- package/dist/components/task/TaskTileObjects.d.ts +13 -0
- package/dist/components/task/TaskTileObjects.js +15 -0
- package/dist/components/task/TaskTileObjects.js.map +1 -0
- package/dist/config.json +10 -10
- package/dist/controls/LookupDropdown.d.ts +11 -0
- package/dist/controls/LookupDropdown.js +39 -0
- package/dist/controls/LookupDropdown.js.map +1 -0
- package/dist/controls/index.d.ts +1 -0
- package/dist/controls/index.js +2 -0
- package/dist/controls/index.js.map +1 -0
- package/dist/enums/LogLevel.d.ts +2 -3
- package/dist/enums/LogLevel.js +1 -2
- package/dist/enums/LogLevel.js.map +1 -1
- package/dist/enums/index.d.ts +1 -0
- package/dist/enums/index.js +2 -0
- package/dist/enums/index.js.map +1 -0
- package/dist/example-code/TestifyService.js +22 -12
- package/dist/example-code/TestifyService.js.map +1 -1
- package/dist/helpers/Ensure.d.ts +2 -0
- package/dist/helpers/Ensure.js +10 -0
- package/dist/helpers/Ensure.js.map +1 -0
- package/dist/helpers/FlightTracker.d.ts +6 -0
- package/dist/helpers/FlightTracker.js +25 -0
- package/dist/helpers/FlightTracker.js.map +1 -0
- package/dist/helpers/GlobalWaitEventHandler.d.ts +12 -0
- package/dist/helpers/GlobalWaitEventHandler.js +53 -0
- package/dist/helpers/GlobalWaitEventHandler.js.map +1 -0
- package/dist/helpers/LoginHelper.d.ts +3 -2
- package/dist/helpers/LoginHelper.js +14 -8
- package/dist/helpers/LoginHelper.js.map +1 -1
- package/dist/helpers/Poll.d.ts +2 -0
- package/dist/helpers/Poll.js +17 -0
- package/dist/helpers/Poll.js.map +1 -0
- package/dist/helpers/RegexHelper.d.ts +5 -0
- package/dist/helpers/RegexHelper.js +16 -0
- package/dist/helpers/RegexHelper.js.map +1 -0
- package/dist/helpers/UserSimulationHelper.d.ts +1 -1
- package/dist/helpers/UserSimulationHelper.js +10 -6
- package/dist/helpers/UserSimulationHelper.js.map +1 -1
- package/dist/helpers/index.d.ts +2 -0
- package/dist/helpers/index.js +3 -0
- package/dist/helpers/index.js.map +1 -0
- package/dist/index.d.ts +8 -12
- package/dist/index.js +9 -13
- package/dist/index.js.map +1 -1
- package/dist/package-lock.json +4087 -0
- package/dist/package.json +57 -0
- package/dist/page-extensions/GoToDeepLink.js +15 -1
- package/dist/page-extensions/GoToDeepLink.js.map +1 -1
- package/dist/page-extensions/LoginFeatures.d.ts +2 -1
- package/dist/page-extensions/LoginFeatures.js +3 -0
- package/dist/page-extensions/LoginFeatures.js.map +1 -1
- package/dist/page-extensions/WaitEventHandler.d.ts +12 -0
- package/dist/page-extensions/WaitEventHandler.js +15 -0
- package/dist/page-extensions/WaitEventHandler.js.map +1 -0
- package/dist/page-extensions/index.d.ts +3 -0
- package/dist/page-extensions/index.js +4 -0
- package/dist/page-extensions/index.js.map +1 -0
- package/dist/page-overrides/ClickOverride.d.ts +1 -0
- package/dist/page-overrides/ClickOverride.js +46 -25
- package/dist/page-overrides/ClickOverride.js.map +1 -1
- package/dist/page-overrides/FillOverride.d.ts +7 -0
- package/dist/page-overrides/FillOverride.js +106 -0
- package/dist/page-overrides/FillOverride.js.map +1 -0
- package/dist/page-overrides/index.d.ts +1 -0
- package/dist/page-overrides/index.js +2 -0
- package/dist/page-overrides/index.js.map +1 -0
- package/dist/scripts/Testwise.template.json +25 -0
- package/dist/services/ConfigBuilder.js +23 -1
- package/dist/services/ConfigBuilder.js.map +1 -1
- package/dist/services/Logger.d.ts +1 -2
- package/dist/services/Logger.js +69 -15
- package/dist/services/Logger.js.map +1 -1
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.js +2 -0
- package/dist/services/index.js.map +1 -0
- package/dist/tsconfig.json +20 -0
- package/dist/types/PollTypes.d.ts +6 -0
- package/dist/types/PollTypes.js +2 -0
- package/dist/types/PollTypes.js.map +1 -0
- package/dist/types/Universal.js +2 -0
- package/dist/types/Universal.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/enums/LogLevel.ts +2 -3
- package/enums/index.ts +1 -0
- package/example-code/TestifyService.ts +26 -12
- package/helpers/Ensure.ts +9 -0
- package/helpers/FlightTracker.ts +26 -0
- package/helpers/GlobalWaitEventHandler.ts +66 -0
- package/helpers/LoginHelper.ts +20 -8
- package/helpers/Poll.ts +19 -0
- package/helpers/RegexHelper.ts +17 -0
- package/helpers/UserSimulationHelper.ts +11 -6
- package/helpers/index.ts +2 -0
- package/index.ts +9 -13
- package/package.json +21 -6
- package/page-extensions/GoToDeepLink.ts +17 -1
- package/page-extensions/LoginFeatures.ts +6 -1
- package/page-extensions/WaitEventHandler.ts +26 -0
- package/page-extensions/index.ts +3 -0
- package/page-overrides/ClickOverride.ts +60 -26
- package/page-overrides/FillOverride.ts +133 -0
- package/page-overrides/index.ts +1 -0
- package/promptCredentials.js +41 -30
- package/scripts/Testwise.template.json +4 -1
- package/scripts/add-config.js +2 -2
- package/services/ConfigBuilder.ts +27 -1
- package/services/Logger.ts +73 -15
- package/services/index.ts +1 -0
- package/tsconfig.json +20 -0
- package/types/PollTypes.ts +6 -0
- package/types/index.ts +2 -0
- package/.ci/azure-pipelines.yaml +0 -80
- package/.eslintcache +0 -1
- package/.gitattributes +0 -3
- package/.gitconfig +0 -2
- package/.vscode/settings.json +0 -20
- package/components/tab/Tab.ts +0 -29
- package/components/task/TaskTiles.ts +0 -11
- package/dist/components/pop-up/PopUpComponentModels.js.map +0 -1
- package/dist/enums/ActionbarRegions.d.ts +0 -5
- package/dist/enums/ActionbarRegions.js +0 -7
- package/dist/enums/ActionbarRegions.js.map +0 -1
- package/dist/enums/ButtonEnums.d.ts +0 -24
- package/dist/enums/ButtonEnums.js +0 -29
- package/dist/enums/ButtonEnums.js.map +0 -1
- package/dist/helpers/InflightRequestTracker.d.ts +0 -10
- package/dist/helpers/InflightRequestTracker.js +0 -26
- package/dist/helpers/InflightRequestTracker.js.map +0 -1
- package/dist/types/universal.js +0 -2
- package/dist/types/universal.js.map +0 -1
- package/enums/ActionbarRegions.ts +0 -5
- package/enums/ButtonEnums.ts +0 -28
- package/helpers/InflightRequestTracker.ts +0 -33
- /package/components/pop-up/{PopUpComponentModels.ts → PopUpComponentObjects.ts} +0 -0
- /package/dist/components/pop-up/{PopUpComponentModels.d.ts → PopUpComponentObjects.d.ts} +0 -0
- /package/dist/types/{universal.d.ts → Universal.d.ts} +0 -0
- /package/types/{universal.ts → Universal.ts} +0 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseComponent } from '../BaseComponent.js';
|
|
2
|
+
export class FindForm extends BaseComponent {
|
|
3
|
+
async getLocator(context) {
|
|
4
|
+
if (context) {
|
|
5
|
+
return context.getByTestId(this.id);
|
|
6
|
+
}
|
|
7
|
+
return this.page.getByTestId(this.id);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=FindForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FindForm.js","sourceRoot":"","sources":["../../../components/filter/FindForm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,OAAO,QAAS,SAAQ,aAAa;IAClC,KAAK,CAAC,UAAU,CAAC,OAAiB;QACvC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;CACF"}
|
|
@@ -20,7 +20,7 @@ export declare class Grid {
|
|
|
20
20
|
* @param value - The exact text value of the cell to retrieve.
|
|
21
21
|
* @returns A Locator for the cell containing the specified value.
|
|
22
22
|
*/
|
|
23
|
-
getCellByExactValue
|
|
23
|
+
getCellByExactValue(value: string): Locator;
|
|
24
24
|
/**
|
|
25
25
|
* Opens the Excel-style filter popup for the specified grid column.
|
|
26
26
|
*
|
|
@@ -83,11 +83,30 @@ export declare class Grid {
|
|
|
83
83
|
*/
|
|
84
84
|
getColumnHeaderValues(): Promise<string[]>;
|
|
85
85
|
/**
|
|
86
|
-
* Filters a column
|
|
86
|
+
* Filters a grid column using the Excel-style filter popup.
|
|
87
87
|
*
|
|
88
|
-
* @param columnName - The
|
|
89
|
-
* @param valueToSelect - The value to select
|
|
90
|
-
* @
|
|
88
|
+
* @param columnName - The column to filter
|
|
89
|
+
* @param valueToSelect - The value to select
|
|
90
|
+
* @param deselectAll - If true, clears existing selections first (default: true)
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* await grid.filterByColumnValueExcelStyle('Status', 'Active');
|
|
94
|
+
* await grid.filterByColumnValueExcelStyle('Status', 'Pending', false);
|
|
95
|
+
*/
|
|
96
|
+
filterByColumnValueExcelStyle(columnName: string, valueToSelect: string, deselectAll?: boolean): Promise<void>;
|
|
97
|
+
/**
|
|
98
|
+
* Returns a Locator for all rows in the grid.
|
|
99
|
+
* @returns {Locator} Locator for grid rows.
|
|
100
|
+
*/
|
|
101
|
+
rows(): Locator;
|
|
102
|
+
/**
|
|
103
|
+
* Verifies the number of rows in the grid and checks for "No result" overlay if zero.
|
|
104
|
+
* @param expectedRowCount The expected number of rows.
|
|
105
|
+
*/
|
|
106
|
+
verifyNumberOfRowsInGrid(expectedRowCount: number): Promise<void>;
|
|
107
|
+
/**
|
|
108
|
+
* Verifies if the "No result" overlay is visible in the grid.
|
|
109
|
+
* @returns A promise that resolves to true if the overlay is visible, otherwise false.
|
|
91
110
|
*/
|
|
92
|
-
|
|
111
|
+
hasNoRowsOverlay(): Promise<boolean>;
|
|
93
112
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { pollUntil } from '../../helpers/Poll.js';
|
|
2
|
+
import { escapeRegex } from '../../helpers/RegexHelper.js';
|
|
1
3
|
import { GridObjects } from './GridObjects.js';
|
|
2
4
|
export class Grid {
|
|
3
5
|
constructor(page, gridContext = null) {
|
|
@@ -13,12 +15,6 @@ export class Grid {
|
|
|
13
15
|
* @returns A Locator for the specified row.
|
|
14
16
|
*/
|
|
15
17
|
this.getRowByIndex = (rowIndex) => this._gridObjects.rowByIndex(rowIndex);
|
|
16
|
-
/**
|
|
17
|
-
* Retrieves a cell element by its exact text value.
|
|
18
|
-
* @param value - The exact text value of the cell to retrieve.
|
|
19
|
-
* @returns A Locator for the cell containing the specified value.
|
|
20
|
-
*/
|
|
21
|
-
this.getCellByExactValue = (value) => this._gridObjects.cellByValue(value);
|
|
22
18
|
/**
|
|
23
19
|
* Opens the Excel-style filter popup for the specified grid column.
|
|
24
20
|
*
|
|
@@ -32,6 +28,15 @@ export class Grid {
|
|
|
32
28
|
this._gridObjects = new GridObjects(page, gridContext);
|
|
33
29
|
this._page = page;
|
|
34
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Retrieves a cell element by its exact text value.
|
|
33
|
+
* @param value - The exact text value of the cell to retrieve.
|
|
34
|
+
* @returns A Locator for the cell containing the specified value.
|
|
35
|
+
*/
|
|
36
|
+
getCellByExactValue(value) {
|
|
37
|
+
const valueToFindRegex = new RegExp(`^${escapeRegex(value)}$`);
|
|
38
|
+
return this._gridObjects.cellByValue(valueToFindRegex);
|
|
39
|
+
}
|
|
35
40
|
/**
|
|
36
41
|
* Retrieves all rows in the grid that match a specific column value.
|
|
37
42
|
* @param colIdToMatchOn
|
|
@@ -41,7 +46,10 @@ export class Grid {
|
|
|
41
46
|
async getRowsByColValue(colIdToMatchOn, valueToMatch) {
|
|
42
47
|
const allRows = await this._gridObjects.rows().all();
|
|
43
48
|
const filteredRows = await Promise.all(allRows.map(async (row) => {
|
|
44
|
-
const
|
|
49
|
+
const cellLocator = row.locator(`[col-id="${colIdToMatchOn}"]`);
|
|
50
|
+
if ((await cellLocator.count()) === 0)
|
|
51
|
+
return null; // Cell not found, skip row
|
|
52
|
+
const text = await cellLocator.textContent();
|
|
45
53
|
return text === valueToMatch ? row : null;
|
|
46
54
|
}));
|
|
47
55
|
return filteredRows.filter((row) => row !== null);
|
|
@@ -163,21 +171,77 @@ export class Grid {
|
|
|
163
171
|
return Array.from(collected);
|
|
164
172
|
}
|
|
165
173
|
/**
|
|
166
|
-
* Filters a column
|
|
174
|
+
* Filters a grid column using the Excel-style filter popup.
|
|
175
|
+
*
|
|
176
|
+
* @param columnName - The column to filter
|
|
177
|
+
* @param valueToSelect - The value to select
|
|
178
|
+
* @param deselectAll - If true, clears existing selections first (default: true)
|
|
167
179
|
*
|
|
168
|
-
* @
|
|
169
|
-
*
|
|
170
|
-
*
|
|
180
|
+
* @example
|
|
181
|
+
* await grid.filterByColumnValueExcelStyle('Status', 'Active');
|
|
182
|
+
* await grid.filterByColumnValueExcelStyle('Status', 'Pending', false);
|
|
171
183
|
*/
|
|
172
|
-
async filterByColumnValueExcelStyle(columnName, valueToSelect) {
|
|
184
|
+
async filterByColumnValueExcelStyle(columnName, valueToSelect, deselectAll = true) {
|
|
173
185
|
await this.openExcelStyleFilterPopup(columnName);
|
|
174
|
-
|
|
186
|
+
// Get column ID from header and normalize it (snake_case -> kebab-case)
|
|
187
|
+
const header = this._gridObjects.columnHeaderByName(columnName);
|
|
188
|
+
const rawColumnId = await header.getAttribute('col-id');
|
|
189
|
+
if (!rawColumnId) {
|
|
190
|
+
throw new Error(`Could not find col-id for column "${columnName}"`);
|
|
191
|
+
}
|
|
192
|
+
const columnId = rawColumnId.toLowerCase().replace(/_/g, '-');
|
|
193
|
+
const popup = this._gridObjects.excelStyleFilterPopup(columnId);
|
|
175
194
|
await popup.waitFor({ state: 'visible' });
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
195
|
+
if (deselectAll) {
|
|
196
|
+
await this._gridObjects.excelStyleFilterSelectAllCheckbox(columnId).uncheck();
|
|
197
|
+
}
|
|
198
|
+
const valueRegex = new RegExp(`^${escapeRegex(valueToSelect)}$`, 'i');
|
|
199
|
+
const optionButton = this._gridObjects.excelStyleFilterPopupOptionByText(columnId, valueRegex);
|
|
200
|
+
await optionButton.locator('input[type="checkbox"]').check();
|
|
179
201
|
await this._gridObjects.gridCell().first().click();
|
|
180
202
|
await popup.waitFor({ state: 'detached' });
|
|
181
203
|
}
|
|
204
|
+
/**
|
|
205
|
+
* Returns a Locator for all rows in the grid.
|
|
206
|
+
* @returns {Locator} Locator for grid rows.
|
|
207
|
+
*/
|
|
208
|
+
rows() {
|
|
209
|
+
return this._gridObjects.rows();
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Verifies the number of rows in the grid and checks for "No result" overlay if zero.
|
|
213
|
+
* @param expectedRowCount The expected number of rows.
|
|
214
|
+
*/
|
|
215
|
+
async verifyNumberOfRowsInGrid(expectedRowCount) {
|
|
216
|
+
if (expectedRowCount === 0) {
|
|
217
|
+
if (await this.hasNoRowsOverlay()) {
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
throw new Error('Expected "No result" overlay to be visible');
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
await pollUntil(() => this.rows().count(), {
|
|
225
|
+
predicate: (n) => n === expectedRowCount
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Verifies if the "No result" overlay is visible in the grid.
|
|
230
|
+
* @returns A promise that resolves to true if the overlay is visible, otherwise false.
|
|
231
|
+
*/
|
|
232
|
+
async hasNoRowsOverlay() {
|
|
233
|
+
try {
|
|
234
|
+
const overlay = this._gridObjects.noRowsOverlay();
|
|
235
|
+
await pollUntil(async () => {
|
|
236
|
+
const txt = (await overlay.textContent())?.trim() ?? '';
|
|
237
|
+
return txt.includes('No result');
|
|
238
|
+
}, { predicate: Boolean });
|
|
239
|
+
}
|
|
240
|
+
catch {
|
|
241
|
+
console.error('The "No result" overlay is not displaying the expected text.');
|
|
242
|
+
return false;
|
|
243
|
+
}
|
|
244
|
+
return await this._gridObjects.noRowsOverlay().isVisible();
|
|
245
|
+
}
|
|
182
246
|
}
|
|
183
247
|
//# sourceMappingURL=Grid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grid.js","sourceRoot":"","sources":["../../../components/grid/Grid.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,OAAO,IAAI;IAIf,YAAY,IAAU,EAAE,cAA8B,IAAI;QAK1D;;;;WAIG;QACI,0BAAqB,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAErG;;;;WAIG;QACI,kBAAa,GAAG,CAAC,QAAgB,EAAW,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Grid.js","sourceRoot":"","sources":["../../../components/grid/Grid.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,13 +8,15 @@ export declare class GridObjects extends BaseComponentObjects {
|
|
|
8
8
|
columnHeaderByName: (columnName: string) => Locator;
|
|
9
9
|
menuIconByColumnHeaderName: (columnName: string) => Locator;
|
|
10
10
|
rowByIndex: (row: number) => Locator;
|
|
11
|
-
cellByValue: (value:
|
|
11
|
+
cellByValue: (value: RegExp) => Locator;
|
|
12
12
|
rows: () => Locator;
|
|
13
13
|
verticalScrollbar: () => Locator;
|
|
14
14
|
horizontalScrollbar: () => Locator;
|
|
15
15
|
cellsByColumnId: (colId: string) => Locator;
|
|
16
16
|
columnByRowLocator: (rowLocator: Locator) => Locator;
|
|
17
|
-
excelStyleFilterPopup: () => Locator;
|
|
18
|
-
|
|
17
|
+
excelStyleFilterPopup: (columnId: string) => Locator;
|
|
18
|
+
excelStyleFilterSelectAllCheckbox: (columnId: string) => Locator;
|
|
19
|
+
excelStyleFilterPopupOptionByText: (columnId: string, optionText: RegExp) => Locator;
|
|
19
20
|
gridCell: () => Locator;
|
|
21
|
+
noRowsOverlay: () => Locator;
|
|
20
22
|
}
|
|
@@ -7,18 +7,21 @@ export class GridObjects extends BaseComponentObjects {
|
|
|
7
7
|
this.columnHeaderByName = (columnName) => this.context.getByRole('columnheader', { name: columnName });
|
|
8
8
|
this.menuIconByColumnHeaderName = (columnName) => this.columnHeaderByName(columnName).getByTestId('grid__custom__menu__icon');
|
|
9
9
|
this.rowByIndex = (row) => this.context.locator(`[role="row"][row-index="${row}"]`);
|
|
10
|
-
this.cellByValue = (value) => this.context.locator('[role="button"]', {
|
|
10
|
+
this.cellByValue = (value) => this.context.locator('[role="button"]', {
|
|
11
|
+
hasText: value
|
|
12
|
+
});
|
|
11
13
|
this.rows = () => this.context.locator('[role="row"]');
|
|
12
14
|
this.verticalScrollbar = () => this.context.locator('.ag-body-vertical-scroll-viewport');
|
|
13
15
|
this.horizontalScrollbar = () => this.context.locator('.ag-body-horizontal-scroll-viewport');
|
|
14
16
|
this.cellsByColumnId = (colId) => this.context.locator(`[col-id="${colId}"] .value-renderer`);
|
|
15
17
|
this.columnByRowLocator = (rowLocator) => rowLocator.locator('.ag-cell');
|
|
16
|
-
this.excelStyleFilterPopup = () => this._page.
|
|
17
|
-
this.
|
|
18
|
-
|
|
19
|
-
.locator(
|
|
20
|
-
.
|
|
18
|
+
this.excelStyleFilterPopup = (columnId) => this._page.getByTestId(`lookup-excel-filter__${columnId}__list`);
|
|
19
|
+
this.excelStyleFilterSelectAllCheckbox = (columnId) => this._page.locator(`[data-testid="lookup-excel-filter__${columnId}__list-item-select-all-checkbox"] input[type="checkbox"]`);
|
|
20
|
+
this.excelStyleFilterPopupOptionByText = (columnId, optionText) => this._page
|
|
21
|
+
.locator(`[data-testid^="lookup-excel-filter__${columnId}__list-item-button__"]`)
|
|
22
|
+
.filter({ hasText: optionText });
|
|
21
23
|
this.gridCell = () => this.context.locator('[role="gridcell"]');
|
|
24
|
+
this.noRowsOverlay = () => this.context.locator('.ag-overlay-no-rows-center');
|
|
22
25
|
this._page = page;
|
|
23
26
|
}
|
|
24
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridObjects.js","sourceRoot":"","sources":["../../../components/grid/GridObjects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,OAAO,WAAY,SAAQ,oBAAoB;IAGnD,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAIhB,uBAAkB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAExG,kBAAa,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAEpE,uBAAkB,GAAG,CAAC,UAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAE1G,+BAA0B,GAAG,CAAC,UAAkB,EAAE,EAAE,CACzD,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC;QAEvE,eAAU,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,2BAA2B,GAAG,IAAI,CAAC,CAAC;QAEvF,gBAAW,GAAG,CAAC,KAAa,EAAE,EAAE,CACrC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"GridObjects.js","sourceRoot":"","sources":["../../../components/grid/GridObjects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,OAAO,WAAY,SAAQ,oBAAoB;IAGnD,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAIhB,uBAAkB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAExG,kBAAa,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAEpE,uBAAkB,GAAG,CAAC,UAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAE1G,+BAA0B,GAAG,CAAC,UAAkB,EAAE,EAAE,CACzD,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC;QAEvE,eAAU,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,2BAA2B,GAAG,IAAI,CAAC,CAAC;QAEvF,gBAAW,GAAG,CAAC,KAAa,EAAE,EAAE,CACrC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE;YACtC,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QAEE,SAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAElD,sBAAiB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;QAEpF,wBAAmB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;QAExF,oBAAe,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,KAAK,oBAAoB,CAAC,CAAC;QAEjG,uBAAkB,GAAG,CAAC,UAAmB,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE7E,0BAAqB,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,wBAAwB,QAAQ,QAAQ,CAAC,CAAC;QAE/G,sCAAiC,GAAG,CAAC,QAAgB,EAAE,EAAE,CAC9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAChB,sCAAsC,QAAQ,0DAA0D,CACzG,CAAC;QAEG,sCAAiC,GAAG,CAAC,QAAgB,EAAE,UAAkB,EAAE,EAAE,CAClF,IAAI,CAAC,KAAK;aACP,OAAO,CAAC,uCAAuC,QAAQ,wBAAwB,CAAC;aAChF,MAAM,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAE9B,aAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAE3D,kBAAa,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QA3C9E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;CA2CF"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
export * from './form/Form.js';
|
|
2
|
-
export * from './grid/Grid.js';
|
|
3
|
-
export * from './Splitter.js';
|
|
4
1
|
export * from './actionbar/Actionbar.js';
|
|
5
2
|
export * from './export/ExportComponent.js';
|
|
3
|
+
export * from './form/Form.js';
|
|
4
|
+
export * from './grid/Grid.js';
|
|
6
5
|
export * from './pop-up/PopUpComponent.js';
|
|
6
|
+
export * from './Splitter.js';
|
|
7
|
+
export * from './tab/ComponentTab.js';
|
|
8
|
+
export * from './tab/DetailTab.js';
|
|
9
|
+
export * from './task/TaskBar.js';
|
|
10
|
+
export * from './task/TaskTile.js';
|
package/dist/components/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
export * from './form/Form.js';
|
|
2
|
-
export * from './grid/Grid.js';
|
|
3
|
-
export * from './Splitter.js';
|
|
4
1
|
export * from './actionbar/Actionbar.js';
|
|
5
2
|
export * from './export/ExportComponent.js';
|
|
3
|
+
export * from './form/Form.js';
|
|
4
|
+
export * from './grid/Grid.js';
|
|
6
5
|
export * from './pop-up/PopUpComponent.js';
|
|
6
|
+
export * from './Splitter.js';
|
|
7
|
+
export * from './tab/ComponentTab.js';
|
|
8
|
+
export * from './tab/DetailTab.js';
|
|
9
|
+
export * from './task/TaskBar.js';
|
|
10
|
+
export * from './task/TaskTile.js';
|
|
7
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../components/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../components/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopUpComponent.js","sourceRoot":"","sources":["../../../components/pop-up/PopUpComponent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"PopUpComponent.js","sourceRoot":"","sources":["../../../components/pop-up/PopUpComponent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,OAAO,cAAc;IAGzB,YAAY,IAAU;QAIf,eAAU,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,CAAC;QAEvE,cAAS,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,CAAC;QAErE,sBAAiB,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,WAAW,EAAE,CAAC;QAEnF,qBAAgB,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC;QAT9E,IAAI,CAAC,QAAQ,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;CASF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PopUpComponentObjects.js","sourceRoot":"","sources":["../../../components/pop-up/PopUpComponentObjects.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,qBAAqB;IAGhC,YAAY,IAAU;QAIf,mBAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,sCAAsC,CAAC,CAAC;QAEtF,oBAAe,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,uCAAuC,CAAC,CAAC;QAExF,mBAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,mCAAmC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEnG,gBAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,mCAAmC,CAAC,CAAC;QATrF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;CASF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Locator, Page } from '@playwright/test';
|
|
2
|
+
import { BaseTabObjects } from './BaseTabObjects.js';
|
|
3
|
+
export declare class BaseTab {
|
|
4
|
+
protected _objects: BaseTabObjects;
|
|
5
|
+
constructor(page: Page, context?: Locator | null);
|
|
6
|
+
openById(name: string): Promise<void>;
|
|
7
|
+
openByIndex(index: number): Promise<void>;
|
|
8
|
+
getTabById(name: string): Promise<Locator>;
|
|
9
|
+
getTabByIndex(index: number): Promise<Locator>;
|
|
10
|
+
getBadgeCount(name: string): Promise<number>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { BaseTabObjects } from './BaseTabObjects.js';
|
|
2
|
+
export class BaseTab {
|
|
3
|
+
constructor(page, context = null) {
|
|
4
|
+
this._objects = new BaseTabObjects(page, context);
|
|
5
|
+
}
|
|
6
|
+
// --- Common actions ---
|
|
7
|
+
// Clicks a tab by its tabstrip test id prefix (e.g., "form", "users", "list").
|
|
8
|
+
// Uses the role="tab" element with data-testid^="tabstrip__tab__{name}".
|
|
9
|
+
async openById(name) {
|
|
10
|
+
await this._objects.tabByTestId(name).click();
|
|
11
|
+
}
|
|
12
|
+
// Clicks a tab by index within the scoped tablist context.
|
|
13
|
+
async openByIndex(index) {
|
|
14
|
+
await this._objects.tabByIndex(index).click();
|
|
15
|
+
}
|
|
16
|
+
// --- Useful getters ---
|
|
17
|
+
async getTabById(name) {
|
|
18
|
+
return this._objects.tabByTestId(name);
|
|
19
|
+
}
|
|
20
|
+
async getTabByIndex(index) {
|
|
21
|
+
return this._objects.tabByIndex(index);
|
|
22
|
+
}
|
|
23
|
+
// Reads the badge value on a tab. Non-visible/invalid → 0.
|
|
24
|
+
async getBadgeCount(name) {
|
|
25
|
+
const badge = this._objects.badgeByName(name);
|
|
26
|
+
const visible = await badge.isVisible().catch(() => false);
|
|
27
|
+
if (!visible)
|
|
28
|
+
return 0;
|
|
29
|
+
const txt = (await badge.textContent())?.trim() ?? '0';
|
|
30
|
+
const n = Number.parseInt(txt, 10);
|
|
31
|
+
return Number.isNaN(n) ? 0 : n;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=BaseTab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseTab.js","sourceRoot":"","sources":["../../../components/tab/BaseTab.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,OAAO,OAAO;IAGlB,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,yBAAyB;IAEzB,+EAA+E;IAC/E,yEAAyE;IAClE,KAAK,CAAC,QAAQ,CAAC,IAAY;QAChC,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC;IAED,2DAA2D;IACpD,KAAK,CAAC,WAAW,CAAC,KAAa;QACpC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC;IAED,yBAAyB;IAClB,KAAK,CAAC,UAAU,CAAC,IAAY;QAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,KAAa;QACtC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,2DAA2D;IACpD,KAAK,CAAC,aAAa,CAAC,IAAY;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC;QACvB,MAAM,GAAG,GAAG,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC;QACvD,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Locator, Page } from '@playwright/test';
|
|
2
|
+
import { BaseComponentObjects } from '../BaseComponentObjects.js';
|
|
3
|
+
export declare class BaseTabObjects extends BaseComponentObjects {
|
|
4
|
+
protected _page: Page;
|
|
5
|
+
constructor(page: Page, context?: Locator | null);
|
|
6
|
+
tabList: () => Locator;
|
|
7
|
+
tabByTestId: (name: string) => Locator;
|
|
8
|
+
tabByIndex: (index: number) => Locator;
|
|
9
|
+
badgeByName: (name: string) => Locator;
|
|
10
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseComponentObjects } from '../BaseComponentObjects.js';
|
|
2
|
+
export class BaseTabObjects extends BaseComponentObjects {
|
|
3
|
+
constructor(page, context = null) {
|
|
4
|
+
super(page, context);
|
|
5
|
+
this.tabList = () => this.context.getByRole('tablist');
|
|
6
|
+
this.tabByTestId = (name) => this.tabList().locator(`[role="tab"][data-testid^="tabstrip__tab__${name.toLowerCase()}__"]`);
|
|
7
|
+
// use role for generic index-based selection
|
|
8
|
+
this.tabByIndex = (index) => this.tabList().getByRole('tab').nth(index);
|
|
9
|
+
// badge: leave as a CSS anchor on the tab testid
|
|
10
|
+
this.badgeByName = (name) => this._page.locator(`[role="tab"][data-testid^="tabstrip__tab__${name.toLowerCase()}"] [data-testid$="__badge"]`);
|
|
11
|
+
this._page = page;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=BaseTabObjects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseTabObjects.js","sourceRoot":"","sources":["../../../components/tab/BaseTabObjects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,OAAO,cAAe,SAAQ,oBAAoB;IAGtD,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAIhB,YAAO,GAAG,GAAY,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAE3D,gBAAW,GAAG,CAAC,IAAY,EAAW,EAAE,CAC7C,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,6CAA6C,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAEhG,6CAA6C;QACtC,eAAU,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAE3F,iDAAiD;QAC1C,gBAAW,GAAG,CAAC,IAAY,EAAW,EAAE,CAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,6CAA6C,IAAI,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;QAbjH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;CAaF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Locator, Page } from '@playwright/test';
|
|
2
|
+
import { BaseTab } from './BaseTab.js';
|
|
3
|
+
import { ComponentTabObjects } from './ComponentTabObjects.js';
|
|
4
|
+
export declare class ComponentTab extends BaseTab {
|
|
5
|
+
protected _objects: ComponentTabObjects;
|
|
6
|
+
constructor(page: Page, context?: Locator | null);
|
|
7
|
+
openListTab(tabindex?: string): Promise<void>;
|
|
8
|
+
getListTab(tabindex?: string): Promise<Locator>;
|
|
9
|
+
openFormTab(): Promise<void>;
|
|
10
|
+
getFormTab(): Promise<Locator>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { BaseTab } from './BaseTab.js';
|
|
2
|
+
import { ComponentTabObjects } from './ComponentTabObjects.js';
|
|
3
|
+
export class ComponentTab extends BaseTab {
|
|
4
|
+
constructor(page, context = null) {
|
|
5
|
+
super(page, context);
|
|
6
|
+
this._objects = new ComponentTabObjects(page, context);
|
|
7
|
+
}
|
|
8
|
+
// --- Component-specific helpers ---
|
|
9
|
+
// Opens the “List” tab in this tabstrip (default tabindex = -1 for master).
|
|
10
|
+
// If tabindex is left empty, the default is "-1" which is the master/base list tabindex
|
|
11
|
+
async openListTab(tabindex = '-1') {
|
|
12
|
+
await this._objects.listTab(tabindex).click();
|
|
13
|
+
}
|
|
14
|
+
// Returns the “List” tab locator (scoped).
|
|
15
|
+
async getListTab(tabindex = '-1') {
|
|
16
|
+
return this._objects.listTab(tabindex);
|
|
17
|
+
}
|
|
18
|
+
// Opens the “Form” tab in this tabstrip (scoped).
|
|
19
|
+
async openFormTab() {
|
|
20
|
+
await this._objects.formTab().click();
|
|
21
|
+
}
|
|
22
|
+
// Returns the “Form” tab locator (scoped).
|
|
23
|
+
async getFormTab() {
|
|
24
|
+
return this._objects.formTab();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=ComponentTab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComponentTab.js","sourceRoot":"","sources":["../../../components/tab/ComponentTab.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,OAAO,YAAa,SAAQ,OAAO;IAGvC,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,qCAAqC;IAErC,4EAA4E;IAC5E,wFAAwF;IACjF,KAAK,CAAC,WAAW,CAAC,WAAmB,IAAI;QAC9C,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC;IAED,2CAA2C;IACpC,KAAK,CAAC,UAAU,CAAC,WAAmB,IAAI;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,kDAAkD;IAC3C,KAAK,CAAC,WAAW;QACtB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC;IACxC,CAAC;IAED,2CAA2C;IACpC,KAAK,CAAC,UAAU;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Locator, Page } from '@playwright/test';
|
|
2
|
+
import { BaseTabObjects } from './BaseTabObjects.js';
|
|
3
|
+
export declare class ComponentTabObjects extends BaseTabObjects {
|
|
4
|
+
constructor(page: Page, context?: Locator | null);
|
|
5
|
+
listTab: (tabindex: string) => Locator;
|
|
6
|
+
formTab: () => Locator;
|
|
7
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseTabObjects } from './BaseTabObjects.js';
|
|
2
|
+
export class ComponentTabObjects extends BaseTabObjects {
|
|
3
|
+
constructor(page, context = null) {
|
|
4
|
+
super(page, context);
|
|
5
|
+
// Component-specific selectors
|
|
6
|
+
this.listTab = (tabindex) => this.tabList().locator(`[role="tab"][data-testid^="tabstrip__tab__list"][tabindex="${tabindex}"]`);
|
|
7
|
+
this.formTab = () => this.tabList().locator(`[role="tab"][data-testid^="tabstrip__tab__form"]`);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=ComponentTabObjects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComponentTabObjects.js","sourceRoot":"","sources":["../../../components/tab/ComponentTabObjects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IACrD,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAGvB,+BAA+B;QACxB,YAAO,GAAG,CAAC,QAAgB,EAAW,EAAE,CAC7C,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,8DAA8D,QAAQ,IAAI,CAAC,CAAC;QAE9F,YAAO,GAAG,GAAY,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;IAN3G,CAAC;CAOF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Locator, Page } from '@playwright/test';
|
|
2
|
+
import { BaseTab } from './BaseTab.js';
|
|
3
|
+
import { DetailTabObjects } from './DetailTabObjects.js';
|
|
4
|
+
export declare class DetailTab extends BaseTab {
|
|
5
|
+
protected _objects: DetailTabObjects;
|
|
6
|
+
constructor(page: Page, context?: Locator | null);
|
|
7
|
+
getDetailTabById(name: string): Promise<Locator>;
|
|
8
|
+
getDetailTabByIndex(index: number): Promise<Locator>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseTab } from './BaseTab.js';
|
|
2
|
+
import { DetailTabObjects } from './DetailTabObjects.js';
|
|
3
|
+
export class DetailTab extends BaseTab {
|
|
4
|
+
constructor(page, context = null) {
|
|
5
|
+
super(page, context);
|
|
6
|
+
this._objects = new DetailTabObjects(page, context);
|
|
7
|
+
}
|
|
8
|
+
async getDetailTabById(name) {
|
|
9
|
+
return this._objects.tabByTestId(name);
|
|
10
|
+
}
|
|
11
|
+
async getDetailTabByIndex(index) {
|
|
12
|
+
return this._objects.tabByIndex(index);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=DetailTab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DetailTab.js","sourceRoot":"","sources":["../../../components/tab/DetailTab.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,OAAO,SAAU,SAAQ,OAAO;IAGpC,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,IAAY;QACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,KAAa;QAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DetailTabObjects.js","sourceRoot":"","sources":["../../../components/tab/DetailTabObjects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,OAAO,gBAAiB,SAAQ,cAAc;IAClD,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvB,CAAC;CAGF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Locator, Page } from '@playwright/test';
|
|
2
|
+
export declare class TaskBar {
|
|
3
|
+
private _taskBarObjects;
|
|
4
|
+
/**
|
|
5
|
+
* @param taskBarContext the taskbar container element (same idea as Grid's context)
|
|
6
|
+
*/
|
|
7
|
+
constructor(page: Page, taskBarContext?: Locator | null);
|
|
8
|
+
/** returns all task buttons */
|
|
9
|
+
tasks: () => Locator;
|
|
10
|
+
/** returns a task button by its data-testid key */
|
|
11
|
+
getTaskById: (key: string) => Locator;
|
|
12
|
+
/** returns a task button by its visible label */
|
|
13
|
+
getTaskByLabel: (label: string) => Locator;
|
|
14
|
+
/** light action sugar (keep assertions in tests) */
|
|
15
|
+
clickById: (key: string) => Promise<void>;
|
|
16
|
+
clickByLabel: (label: string) => Promise<void>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { TaskBarObjects } from './TaskBarObjects.js';
|
|
2
|
+
export class TaskBar {
|
|
3
|
+
/**
|
|
4
|
+
* @param taskBarContext the taskbar container element (same idea as Grid's context)
|
|
5
|
+
*/
|
|
6
|
+
constructor(page, taskBarContext = null) {
|
|
7
|
+
/** returns all task buttons */
|
|
8
|
+
this.tasks = () => this._taskBarObjects.tasks(); // matches Grid's "rows()" noun-style
|
|
9
|
+
/** returns a task button by its data-testid key */
|
|
10
|
+
this.getTaskById = (key) => this._taskBarObjects.taskById(key);
|
|
11
|
+
/** returns a task button by its visible label */
|
|
12
|
+
this.getTaskByLabel = (label) => this._taskBarObjects.taskByLabel(label);
|
|
13
|
+
/** light action sugar (keep assertions in tests) */
|
|
14
|
+
this.clickById = async (key) => {
|
|
15
|
+
await this.getTaskById(key).click();
|
|
16
|
+
};
|
|
17
|
+
this.clickByLabel = async (label) => {
|
|
18
|
+
await this.getTaskByLabel(label).click();
|
|
19
|
+
};
|
|
20
|
+
this._taskBarObjects = new TaskBarObjects(page, taskBarContext);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=TaskBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskBar.js","sourceRoot":"","sources":["../../../components/task/TaskBar.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,OAAO,OAAO;IAGlB;;OAEG;IACH,YAAY,IAAU,EAAE,iBAAiC,IAAI;QAI7D,+BAA+B;QACxB,UAAK,GAAG,GAAY,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,qCAAqC;QAEjG,mDAAmD;QAC5C,gBAAW,GAAG,CAAC,GAAW,EAAW,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAElF,iDAAiD;QAC1C,mBAAc,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAE5F,oDAAoD;QAC7C,cAAS,GAAG,KAAK,EAAE,GAAW,EAAiB,EAAE;YACtD,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;QACtC,CAAC,CAAC;QAEK,iBAAY,GAAG,KAAK,EAAE,KAAa,EAAiB,EAAE;YAC3D,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3C,CAAC,CAAC;QAnBA,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAClE,CAAC;CAmBF"}
|