@smartbit4all/playwright-qa 0.1.9 → 0.1.11
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/README.md +70 -0
- package/dist/steps/debug.d.ts +15 -0
- package/dist/steps/debug.d.ts.map +1 -0
- package/dist/steps/debug.js +41 -0
- package/dist/steps/debug.js.map +1 -0
- package/dist/steps/forms.d.ts +23 -0
- package/dist/steps/forms.d.ts.map +1 -1
- package/dist/steps/forms.js +126 -18
- package/dist/steps/forms.js.map +1 -1
- package/dist/steps/grid.steps.d.ts +3 -1
- package/dist/steps/grid.steps.d.ts.map +1 -1
- package/dist/steps/grid.steps.js +109 -48
- package/dist/steps/grid.steps.js.map +1 -1
- package/dist/steps/index.d.ts +2 -1
- package/dist/steps/index.d.ts.map +1 -1
- package/dist/steps/index.js +5 -1
- package/dist/steps/index.js.map +1 -1
- package/dist/steps/locators.d.ts +4 -1
- package/dist/steps/locators.d.ts.map +1 -1
- package/dist/steps/locators.js +6 -2
- package/dist/steps/locators.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -187,6 +187,47 @@ await uploadFile(dialog, 'data.attachment', '/path/to/file.pdf');
|
|
|
187
187
|
|
|
188
188
|
All form utilities accept a `data-testid` value or a visible label text as identifier. When a `data-testid` match is found on the element, it takes priority; otherwise the function falls back to label text matching (`.smart-form-widget-label`, `h3`, `h4`, or `label`). They work with both Angular Material and PrimeNG components, and accept any `Locator` or `Page` as container — use `topDialog(page)` to scope to a dialog.
|
|
189
189
|
|
|
190
|
+
#### Generic field setter
|
|
191
|
+
|
|
192
|
+
For data-driven scenarios, `setField` and `setFields` route to the right utility based on the value type and the widget's DOM signature — no need to know which form widget you are targeting.
|
|
193
|
+
|
|
194
|
+
```typescript
|
|
195
|
+
import { setField, setFields } from '@smartbit4all/playwright-qa/steps';
|
|
196
|
+
|
|
197
|
+
// One field at a time
|
|
198
|
+
await setField(dialog, 'data.name', 'Teszt mappa'); // → fillField
|
|
199
|
+
await setField(dialog, 'data.canIncludeFiles', 'Igen'); // → selectRadio (widget has mat-radio-group)
|
|
200
|
+
await setField(dialog, 'data.category', 'Ügyintézés'); // → selectOption (widget has mat-select / p-dropdown)
|
|
201
|
+
await setField(dialog, 'data.isActive', true); // → setToggle / setCheckbox
|
|
202
|
+
await setField(dialog, 'data.skills', ['Angular', 'React']); // → selectMultiple or setChips
|
|
203
|
+
await setField(dialog, 'data.deadline', '2026-04-15 14:30'); // → fillDateTime (matches YYYY-MM-DD HH:mm)
|
|
204
|
+
await setField(dialog, 'data.attachment', '/path/file.pdf'); // → uploadFile (widget has smart-file-editor)
|
|
205
|
+
await setField(dialog, 'permissions', { 'Olvasás': true, 'Írás': false }); // → setCheckboxGroup
|
|
206
|
+
|
|
207
|
+
// Many fields at once
|
|
208
|
+
await setFields(dialog, {
|
|
209
|
+
'data.name': 'Teszt mappa',
|
|
210
|
+
'data.canIncludeFiles': 'Nem',
|
|
211
|
+
'data.isActive': true,
|
|
212
|
+
'data.tags': ['urgent', 'review'],
|
|
213
|
+
'permissions': { 'Olvasás': true, 'Írás': true },
|
|
214
|
+
});
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
Routing is decided by `value`'s TypeScript type plus the DOM tags inside the widget:
|
|
218
|
+
- `Record<string, boolean>` → `setCheckboxGroup`
|
|
219
|
+
- `boolean` + `mat-slide-toggle` / `p-inputSwitch` → `setToggle`
|
|
220
|
+
- `boolean` + `mat-checkbox` / `p-checkbox` → `setCheckbox`
|
|
221
|
+
- `string[]` + `mat-chip-grid` / `p-chips` → `setChips`
|
|
222
|
+
- `string[]` + `p-multiSelect` / `mat-select[multiple]` → `selectMultiple`
|
|
223
|
+
- `string` + `smart-file-editor` → `uploadFile`
|
|
224
|
+
- `string` + `mat-select` / `p-dropdown` → `selectOption`
|
|
225
|
+
- `string` + `mat-radio-group` / `p-radiobutton` → `selectRadio`
|
|
226
|
+
- `string` matching `YYYY-MM-DD HH:mm` → `fillDateTime`
|
|
227
|
+
- `string` + any `input` / `textarea` → `fillField`
|
|
228
|
+
|
|
229
|
+
If no branch matches, `setField` throws with the identifier in the message. Datetime detection is value-format based (a single `YYYY-MM-DD HH:mm` string), since the Material datetime widget has no distinctive tag — pass an ISO date+time string and let `setField` split it.
|
|
230
|
+
|
|
190
231
|
### Grid
|
|
191
232
|
|
|
192
233
|
```typescript
|
|
@@ -206,6 +247,9 @@ await selectGridRow(page, { 'Azonosító': 'DOC-001' });
|
|
|
206
247
|
// Find by simple text match
|
|
207
248
|
await selectGridRow(page, 'DOC-001');
|
|
208
249
|
|
|
250
|
+
// Find by row data-testid (rendered from row.id on the <tr>)
|
|
251
|
+
await selectGridRow(page, { rowId: 'doc-12345' });
|
|
252
|
+
|
|
209
253
|
// Open the row's context menu and click an action
|
|
210
254
|
await selectGridRow(page, { 'Azonosító': 'DOC-001' }, 'Szerkesztés');
|
|
211
255
|
|
|
@@ -232,6 +276,10 @@ await applyGridFilters(page, { 'Név': 'Teszt' });
|
|
|
232
276
|
await clearGridFilters(page);
|
|
233
277
|
```
|
|
234
278
|
|
|
279
|
+
Column keys in a row filter accept either the header label or the header `data-testid` (rendered from `col.propertyName` on the `<th>`). Both resolve to the same column, so `{ 'Adószám': '12345' }` and `{ 'taxNumber': '12345' }` are equivalent — prefer `data-testid` for stability against label/locale changes.
|
|
280
|
+
|
|
281
|
+
For row-level addressing, `{ rowId: 'doc-12345' }` matches the `<tr>` `data-testid` attribute (rendered from `row.id`). `rowId` must be the only key in the filter object and is supported by `selectGridRow`, `checkGridRow`, and `checkGridRowsOnPage`. `filterAndSelectGridRow` throws if given a `rowId` filter — use `selectGridRow` instead, since row identifiers do not need a filter form pass.
|
|
282
|
+
|
|
235
283
|
All grid functions accept `Page` or `Locator` as container — use a Locator to scope to a dialog or section:
|
|
236
284
|
|
|
237
285
|
```typescript
|
|
@@ -319,6 +367,28 @@ await screenshotRegionHighlight(page, 'menu-region',
|
|
|
319
367
|
|
|
320
368
|
All built-in steps (`clickInDialog`, `selectGridRow`, `navigateInTree`) use these locators internally, so they automatically support `data-testid` values alongside text matching.
|
|
321
369
|
|
|
370
|
+
### Debug
|
|
371
|
+
|
|
372
|
+
```typescript
|
|
373
|
+
import { dumpDom } from '@smartbit4all/playwright-qa/steps';
|
|
374
|
+
|
|
375
|
+
// Dump visible elements on the page — useful when writing a new locator
|
|
376
|
+
console.log(await dumpDom(page));
|
|
377
|
+
|
|
378
|
+
// Scope to a container (dialog, section, grid row)
|
|
379
|
+
console.log(await dumpDom(topDialog(page)));
|
|
380
|
+
|
|
381
|
+
// Narrow with a selector
|
|
382
|
+
console.log(await dumpDom(page, { selector: 'button, [data-testid]' }));
|
|
383
|
+
|
|
384
|
+
// Include hidden elements and longer text
|
|
385
|
+
console.log(await dumpDom(page, { visibleOnly: false, maxText: 200 }));
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
Each entry contains `tag`, `id`, `classes`, `testId` and own `text` (text nodes only, not the recursive `textContent`). Non-rendering tags (`script`, `style`, `meta`, `link`, `head`, `html`, `noscript`) are filtered out, and by default only visible elements are returned. Use this during test authoring to discover available `data-testid` values without manually inspecting the DOM in DevTools.
|
|
389
|
+
|
|
390
|
+
The `testId` field falls back through `data-testid` → `data-automationid`. PrimeNG `MenuItem` (e.g. grid row popup menus) does not expose `data-testid`; only the `automationId` MenuItem property is supported, and it renders as the `data-automationid` DOM attribute. `findMenuItem` honors both attributes.
|
|
391
|
+
|
|
322
392
|
## Developer Guide — Writing TestSteps
|
|
323
393
|
|
|
324
394
|
TestSteps are simple async functions that implement one atomic UI operation.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Locator, Page } from '@playwright/test';
|
|
2
|
+
export interface DomElementInfo {
|
|
3
|
+
tag: string;
|
|
4
|
+
id: string;
|
|
5
|
+
classes: string[];
|
|
6
|
+
testId: string | null;
|
|
7
|
+
text: string;
|
|
8
|
+
}
|
|
9
|
+
export interface DumpDomOptions {
|
|
10
|
+
selector?: string;
|
|
11
|
+
visibleOnly?: boolean;
|
|
12
|
+
maxText?: number;
|
|
13
|
+
}
|
|
14
|
+
export declare function dumpDom(container: Page | Locator, options?: DumpDomOptions): Promise<DomElementInfo[]>;
|
|
15
|
+
//# sourceMappingURL=debug.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/steps/debug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD,wBAAsB,OAAO,CAC3B,SAAS,EAAE,IAAI,GAAG,OAAO,EACzB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,cAAc,EAAE,CAAC,CAmC3B"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dumpDom = dumpDom;
|
|
4
|
+
const SKIP_TAGS = ['SCRIPT', 'STYLE', 'META', 'LINK', 'HEAD', 'HTML', 'NOSCRIPT'];
|
|
5
|
+
const TESTID_ATTRS = ['data-testid', 'data-automationid'];
|
|
6
|
+
async function dumpDom(container, options = {}) {
|
|
7
|
+
const { selector = '*', visibleOnly = true, maxText = 80 } = options;
|
|
8
|
+
return container.locator(selector).evaluateAll((els, params) => els
|
|
9
|
+
.filter(el => !params.skipTags.includes(el.tagName))
|
|
10
|
+
.filter(el => {
|
|
11
|
+
if (!params.visibleOnly)
|
|
12
|
+
return true;
|
|
13
|
+
const rect = el.getBoundingClientRect?.();
|
|
14
|
+
return !!rect && rect.width > 0 && rect.height > 0;
|
|
15
|
+
})
|
|
16
|
+
.map(el => {
|
|
17
|
+
const ownText = Array.from(el.childNodes)
|
|
18
|
+
.filter(n => n.nodeType === Node.TEXT_NODE)
|
|
19
|
+
.map(n => n.textContent ?? '')
|
|
20
|
+
.join(' ')
|
|
21
|
+
.replace(/\s+/g, ' ')
|
|
22
|
+
.trim()
|
|
23
|
+
.slice(0, params.maxText);
|
|
24
|
+
let testId = null;
|
|
25
|
+
for (const attr of params.testIdAttrs) {
|
|
26
|
+
const v = el.getAttribute(attr);
|
|
27
|
+
if (v) {
|
|
28
|
+
testId = v;
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
tag: el.tagName.toLowerCase(),
|
|
34
|
+
id: el.id,
|
|
35
|
+
classes: (el.getAttribute('class') ?? '').split(/\s+/).filter(Boolean),
|
|
36
|
+
testId,
|
|
37
|
+
text: ownText,
|
|
38
|
+
};
|
|
39
|
+
}), { skipTags: SKIP_TAGS, testIdAttrs: TESTID_ATTRS, visibleOnly, maxText });
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=debug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/steps/debug.ts"],"names":[],"mappings":";;AAoBA,0BAsCC;AA1CD,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAElF,MAAM,YAAY,GAAG,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;AAEnD,KAAK,UAAU,OAAO,CAC3B,SAAyB,EACzB,UAA0B,EAAE;IAE5B,MAAM,EAAE,QAAQ,GAAG,GAAG,EAAE,WAAW,GAAG,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IAErE,OAAO,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAC5C,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CACd,GAAG;SACA,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;SACnD,MAAM,CAAC,EAAE,CAAC,EAAE;QACX,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QACrC,MAAM,IAAI,GAAI,EAAkB,CAAC,qBAAqB,EAAE,EAAE,CAAC;QAC3D,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACrD,CAAC,CAAC;SACD,GAAG,CAAC,EAAE,CAAC,EAAE;QACR,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC;aACtC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,CAAC;aAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC;aAC7B,IAAI,CAAC,GAAG,CAAC;aACT,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,IAAI,EAAE;aACN,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,MAAM,GAAkB,IAAI,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,EAAE,CAAC;gBAAC,MAAM,GAAG,CAAC,CAAC;gBAAC,MAAM;YAAC,CAAC;QAC/B,CAAC;QACD,OAAO;YACL,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE;YAC7B,EAAE,EAAE,EAAE,CAAC,EAAE;YACT,OAAO,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YACtE,MAAM;YACN,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,CAAC,CAAC,EACN,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,CACzE,CAAC;AACJ,CAAC"}
|
package/dist/steps/forms.d.ts
CHANGED
|
@@ -66,4 +66,27 @@ export declare function setChips(container: Locator | Page, identifier: string,
|
|
|
66
66
|
* Identifier can be a data-testid or a label text.
|
|
67
67
|
*/
|
|
68
68
|
export declare function uploadFile(container: Locator | Page, identifier: string, filePath: string): Promise<void>;
|
|
69
|
+
export type FieldValue = string | boolean | string[] | Record<string, boolean>;
|
|
70
|
+
/**
|
|
71
|
+
* Sets a form field by widget detection — no need to call the type-specific utility.
|
|
72
|
+
* The widget type is detected from the value's TypeScript type plus the DOM tags inside the widget.
|
|
73
|
+
*
|
|
74
|
+
* Routing:
|
|
75
|
+
* - `Record<string, boolean>` → `setCheckboxGroup`
|
|
76
|
+
* - `boolean` + `mat-slide-toggle` / `p-inputSwitch` → `setToggle`
|
|
77
|
+
* - `boolean` + `mat-checkbox` / `p-checkbox` → `setCheckbox`
|
|
78
|
+
* - `string[]` + `mat-chip-grid` / `p-chips` → `setChips`
|
|
79
|
+
* - `string[]` + `p-multiSelect` / `mat-select[multiple]` → `selectMultiple`
|
|
80
|
+
* - `string` + `smart-file-editor` → `uploadFile`
|
|
81
|
+
* - `string` + `mat-select` / `p-dropdown` → `selectOption`
|
|
82
|
+
* - `string` + `mat-radio-group` / `p-radiobutton` → `selectRadio`
|
|
83
|
+
* - `string` matching `YYYY-MM-DD HH:mm` → `fillDateTime`
|
|
84
|
+
* - `string` + any `input` / `textarea` → `fillField`
|
|
85
|
+
*/
|
|
86
|
+
export declare function setField(container: Locator | Page, identifier: string, value: FieldValue): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Sets multiple form fields in one call. Each entry is routed through `setField`.
|
|
89
|
+
* Fields are processed in declaration order.
|
|
90
|
+
*/
|
|
91
|
+
export declare function setFields(container: Locator | Page, fields: Record<string, FieldValue>): Promise<void>;
|
|
69
92
|
//# sourceMappingURL=forms.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../src/steps/forms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../src/steps/forms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAgFtD;;GAEG;AACH,wBAAsB,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3G;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGzG;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB3H;AAID;;;GAGG;AACH,wBAAsB,YAAY,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBnH;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBpH;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB7G;AAID;;;GAGG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAchH;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBxI;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAczG;AAID;;;GAGG;AACH,wBAAsB,OAAO,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIzG;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS5G;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC7G;AAID;;;GAGG;AACH,wBAAsB,UAAU,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS/G;AAID,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAe/E;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAgD9G;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAI5G"}
|
package/dist/steps/forms.js
CHANGED
|
@@ -13,6 +13,8 @@ exports.addChip = addChip;
|
|
|
13
13
|
exports.removeChip = removeChip;
|
|
14
14
|
exports.setChips = setChips;
|
|
15
15
|
exports.uploadFile = uploadFile;
|
|
16
|
+
exports.setField = setField;
|
|
17
|
+
exports.setFields = setFields;
|
|
16
18
|
/**
|
|
17
19
|
* Resolves a form widget container by data-testid or label text.
|
|
18
20
|
* If identifier matches a data-testid on a widget container or radio group, uses that.
|
|
@@ -58,14 +60,29 @@ async function resolveInput(container, identifier) {
|
|
|
58
60
|
return byHeading;
|
|
59
61
|
}
|
|
60
62
|
/**
|
|
61
|
-
* Finds the mat-chip-grid
|
|
63
|
+
* Finds the chip container (mat-chip-grid or p-chips) and its input.
|
|
64
|
+
* Returns the container, input locator, and whether it's PrimeNG.
|
|
62
65
|
*/
|
|
63
|
-
function
|
|
64
|
-
|
|
65
|
-
|
|
66
|
+
async function findChipContainerAndInput(container, identifier) {
|
|
67
|
+
// Material: data-testid on input, mat-chip-grid as ancestor
|
|
68
|
+
const matInput = container.locator(`input[data-testid="${identifier}"]`).first();
|
|
69
|
+
const matChipGrid = matInput.locator('xpath=ancestor::mat-chip-grid');
|
|
70
|
+
if (await matChipGrid.count() > 0) {
|
|
71
|
+
return { chipContainer: matChipGrid, input: matInput, isPrime: false };
|
|
72
|
+
}
|
|
73
|
+
// PrimeNG: data-testid on p-chips wrapper
|
|
74
|
+
const primeChips = container.locator(`p-chips[data-testid="${identifier}"]`).first();
|
|
75
|
+
if (await primeChips.count() > 0) {
|
|
76
|
+
return { chipContainer: primeChips, input: primeChips.locator('input').first(), isPrime: true };
|
|
77
|
+
}
|
|
78
|
+
// Label fallback — check which component is in the widget
|
|
66
79
|
const widget = widgetByLabel(container, identifier);
|
|
67
|
-
const
|
|
68
|
-
|
|
80
|
+
const matByWidget = widget.locator('mat-chip-grid').first();
|
|
81
|
+
if (await matByWidget.count() > 0) {
|
|
82
|
+
return { chipContainer: matByWidget, input: matByWidget.locator('input').first(), isPrime: false };
|
|
83
|
+
}
|
|
84
|
+
const primeByWidget = widget.locator('p-chips').first();
|
|
85
|
+
return { chipContainer: primeByWidget, input: primeByWidget.locator('input').first(), isPrime: true };
|
|
69
86
|
}
|
|
70
87
|
// --- Text input utilities ---
|
|
71
88
|
/**
|
|
@@ -227,7 +244,7 @@ async function setToggle(container, identifier, on) {
|
|
|
227
244
|
* Identifier can be a data-testid or a label text.
|
|
228
245
|
*/
|
|
229
246
|
async function addChip(container, identifier, value) {
|
|
230
|
-
const input = await
|
|
247
|
+
const { input } = await findChipContainerAndInput(container, identifier);
|
|
231
248
|
await input.fill(value);
|
|
232
249
|
await input.press('Enter');
|
|
233
250
|
}
|
|
@@ -236,9 +253,15 @@ async function addChip(container, identifier, value) {
|
|
|
236
253
|
* Identifier can be a data-testid or a label text.
|
|
237
254
|
*/
|
|
238
255
|
async function removeChip(container, identifier, value) {
|
|
239
|
-
const
|
|
240
|
-
|
|
241
|
-
|
|
256
|
+
const { chipContainer, isPrime } = await findChipContainerAndInput(container, identifier);
|
|
257
|
+
if (isPrime) {
|
|
258
|
+
const chip = chipContainer.locator('.p-chips-token', { hasText: value });
|
|
259
|
+
await chip.locator('.p-chips-token-icon').click();
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
const chip = chipContainer.locator('mat-chip-row', { hasText: value });
|
|
263
|
+
await chip.locator('button[matChipRemove]').click();
|
|
264
|
+
}
|
|
242
265
|
}
|
|
243
266
|
/**
|
|
244
267
|
* Sets the chips to the desired list of values.
|
|
@@ -246,16 +269,23 @@ async function removeChip(container, identifier, value) {
|
|
|
246
269
|
* Identifier can be a data-testid or a label text.
|
|
247
270
|
*/
|
|
248
271
|
async function setChips(container, identifier, values) {
|
|
249
|
-
const
|
|
272
|
+
const { chipContainer, isPrime } = await findChipContainerAndInput(container, identifier);
|
|
250
273
|
// Read current chips
|
|
251
|
-
const
|
|
252
|
-
const
|
|
274
|
+
const chipSelector = isPrime ? '.p-chips-token' : 'mat-chip-row';
|
|
275
|
+
const chips = chipContainer.locator(chipSelector);
|
|
276
|
+
const count = await chips.count();
|
|
253
277
|
const currentChips = [];
|
|
254
278
|
for (let i = 0; i < count; i++) {
|
|
255
|
-
|
|
256
|
-
if (
|
|
257
|
-
|
|
258
|
-
|
|
279
|
+
let text;
|
|
280
|
+
if (isPrime) {
|
|
281
|
+
text = await chips.nth(i).locator('.p-chips-token-label').textContent() ?? '';
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
// Material chip text contains the remove button icon text ("cancel") — strip it
|
|
285
|
+
text = (await chips.nth(i).textContent() ?? '').replace(/cancel/g, '').trim();
|
|
286
|
+
}
|
|
287
|
+
if (text.trim()) {
|
|
288
|
+
currentChips.push(text.trim());
|
|
259
289
|
}
|
|
260
290
|
}
|
|
261
291
|
// Remove chips not in desired values
|
|
@@ -282,9 +312,87 @@ async function uploadFile(container, identifier, filePath) {
|
|
|
282
312
|
const widget = widgetByLabel(container, identifier);
|
|
283
313
|
const byWidget = widget.locator('smart-file-editor').first();
|
|
284
314
|
const editor = byTestId.or(byWidget).first();
|
|
285
|
-
const fileInput = editor.locator('input[type=file]');
|
|
315
|
+
const fileInput = editor.locator('input[type=file]').first();
|
|
286
316
|
await fileInput.setInputFiles(filePath);
|
|
287
317
|
}
|
|
318
|
+
async function findWidget(container, identifier) {
|
|
319
|
+
const byTestId = container.locator(`[data-testid="${identifier}"]`).first();
|
|
320
|
+
if (await byTestId.count() > 0)
|
|
321
|
+
return byTestId;
|
|
322
|
+
return widgetByLabel(container, identifier);
|
|
323
|
+
}
|
|
324
|
+
async function widgetMatchesOrContains(widget, selectors) {
|
|
325
|
+
return widget.evaluate((el, sels) => sels.some(sel => el.matches(sel) || el.querySelector(sel) !== null), selectors);
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Sets a form field by widget detection — no need to call the type-specific utility.
|
|
329
|
+
* The widget type is detected from the value's TypeScript type plus the DOM tags inside the widget.
|
|
330
|
+
*
|
|
331
|
+
* Routing:
|
|
332
|
+
* - `Record<string, boolean>` → `setCheckboxGroup`
|
|
333
|
+
* - `boolean` + `mat-slide-toggle` / `p-inputSwitch` → `setToggle`
|
|
334
|
+
* - `boolean` + `mat-checkbox` / `p-checkbox` → `setCheckbox`
|
|
335
|
+
* - `string[]` + `mat-chip-grid` / `p-chips` → `setChips`
|
|
336
|
+
* - `string[]` + `p-multiSelect` / `mat-select[multiple]` → `selectMultiple`
|
|
337
|
+
* - `string` + `smart-file-editor` → `uploadFile`
|
|
338
|
+
* - `string` + `mat-select` / `p-dropdown` → `selectOption`
|
|
339
|
+
* - `string` + `mat-radio-group` / `p-radiobutton` → `selectRadio`
|
|
340
|
+
* - `string` matching `YYYY-MM-DD HH:mm` → `fillDateTime`
|
|
341
|
+
* - `string` + any `input` / `textarea` → `fillField`
|
|
342
|
+
*/
|
|
343
|
+
async function setField(container, identifier, value) {
|
|
344
|
+
if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
|
|
345
|
+
return setCheckboxGroup(container, identifier, value);
|
|
346
|
+
}
|
|
347
|
+
const widget = await findWidget(container, identifier);
|
|
348
|
+
if (typeof value === 'boolean') {
|
|
349
|
+
if (await widgetMatchesOrContains(widget, ['mat-slide-toggle', 'p-inputSwitch'])) {
|
|
350
|
+
return setToggle(container, identifier, value);
|
|
351
|
+
}
|
|
352
|
+
if (await widgetMatchesOrContains(widget, ['mat-checkbox', 'p-checkbox'])) {
|
|
353
|
+
return setCheckbox(container, identifier, value);
|
|
354
|
+
}
|
|
355
|
+
throw new Error(`setField: boolean value but no toggle/checkbox found under "${identifier}"`);
|
|
356
|
+
}
|
|
357
|
+
if (Array.isArray(value)) {
|
|
358
|
+
if (await widgetMatchesOrContains(widget, ['mat-chip-grid', 'p-chips'])) {
|
|
359
|
+
return setChips(container, identifier, value);
|
|
360
|
+
}
|
|
361
|
+
if (await widgetMatchesOrContains(widget, ['p-multiSelect', 'mat-select[multiple]'])) {
|
|
362
|
+
return selectMultiple(container, identifier, value);
|
|
363
|
+
}
|
|
364
|
+
throw new Error(`setField: array value but no chips/multi-select found under "${identifier}"`);
|
|
365
|
+
}
|
|
366
|
+
if (typeof value === 'string') {
|
|
367
|
+
if (await widgetMatchesOrContains(widget, ['smart-file-editor'])) {
|
|
368
|
+
return uploadFile(container, identifier, value);
|
|
369
|
+
}
|
|
370
|
+
if (await widgetMatchesOrContains(widget, ['mat-select', 'p-dropdown'])) {
|
|
371
|
+
return selectOption(container, identifier, value);
|
|
372
|
+
}
|
|
373
|
+
if (await widgetMatchesOrContains(widget, ['mat-radio-group', 'p-radiobutton'])) {
|
|
374
|
+
return selectRadio(container, identifier, value);
|
|
375
|
+
}
|
|
376
|
+
if (/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}$/.test(value)) {
|
|
377
|
+
const [date, time] = value.split(' ');
|
|
378
|
+
return fillDateTime(container, identifier, date, time);
|
|
379
|
+
}
|
|
380
|
+
if (await widgetMatchesOrContains(widget, ['input', 'textarea'])) {
|
|
381
|
+
return fillField(container, identifier, value);
|
|
382
|
+
}
|
|
383
|
+
throw new Error(`setField: no recognized widget under "${identifier}"`);
|
|
384
|
+
}
|
|
385
|
+
throw new Error(`setField: unsupported value type for "${identifier}"`);
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Sets multiple form fields in one call. Each entry is routed through `setField`.
|
|
389
|
+
* Fields are processed in declaration order.
|
|
390
|
+
*/
|
|
391
|
+
async function setFields(container, fields) {
|
|
392
|
+
for (const [identifier, value] of Object.entries(fields)) {
|
|
393
|
+
await setField(container, identifier, value);
|
|
394
|
+
}
|
|
395
|
+
}
|
|
288
396
|
// --- Internal helpers ---
|
|
289
397
|
/**
|
|
290
398
|
* Extracts the Page from a Locator or Page.
|
package/dist/steps/forms.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forms.js","sourceRoot":"","sources":["../../src/steps/forms.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"forms.js","sourceRoot":"","sources":["../../src/steps/forms.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { Page, Locator } from '@playwright/test';
|
|
2
|
-
export type RowFilter = string | Record<string, string
|
|
2
|
+
export type RowFilter = string | Record<string, string> | {
|
|
3
|
+
rowId: string;
|
|
4
|
+
};
|
|
3
5
|
/**
|
|
4
6
|
* Finds a row in the grid by content match (paginating if needed) and performs an action.
|
|
5
7
|
* Does NOT use the filter form — searches through the actual table rows.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid.steps.d.ts","sourceRoot":"","sources":["../../src/steps/grid.steps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAKtD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"grid.steps.d.ts","sourceRoot":"","sources":["../../src/steps/grid.steps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAKtD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAmB5E;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,IAAI,GAAG,OAAO,EACzB,MAAM,EAAE,SAAS,EACjB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,IAAI,GAAG,OAAO,EACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAc/G;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAY/E;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,IAAI,GAAG,OAAO,EACzB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,IAAI,GAAG,OAAO,EACzB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,IAAI,GAAG,OAAO,EACzB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAMf"}
|
package/dist/steps/grid.steps.js
CHANGED
|
@@ -10,12 +10,18 @@ exports.checkAllGridRows = checkAllGridRows;
|
|
|
10
10
|
const test_1 = require("@playwright/test");
|
|
11
11
|
const wait_1 = require("./wait");
|
|
12
12
|
const locators_1 = require("./locators");
|
|
13
|
+
function isRowIdFilter(filter) {
|
|
14
|
+
return typeof filter === 'object' && filter !== null && 'rowId' in filter && Object.keys(filter).length === 1;
|
|
15
|
+
}
|
|
13
16
|
function getPage(container) {
|
|
14
17
|
if ('page' in container) {
|
|
15
18
|
return container.page();
|
|
16
19
|
}
|
|
17
20
|
return container;
|
|
18
21
|
}
|
|
22
|
+
async function detectGridType(container) {
|
|
23
|
+
return await container.locator('p-table').count() > 0 ? 'prime' : 'material';
|
|
24
|
+
}
|
|
19
25
|
/**
|
|
20
26
|
* Finds a row in the grid by content match (paginating if needed) and performs an action.
|
|
21
27
|
* Does NOT use the filter form — searches through the actual table rows.
|
|
@@ -23,17 +29,18 @@ function getPage(container) {
|
|
|
23
29
|
*/
|
|
24
30
|
async function selectGridRow(container, filter, action) {
|
|
25
31
|
const page = getPage(container);
|
|
32
|
+
const gridType = await detectGridType(container);
|
|
26
33
|
const table = container.locator('table');
|
|
27
34
|
await table.locator('tbody tr').first().waitFor({ timeout: 15000 });
|
|
28
|
-
const row = await findRowWithPagination(page, table, filter);
|
|
35
|
+
const row = await findRowWithPagination(container, page, table, filter, gridType);
|
|
29
36
|
if (!action || action === 'default') {
|
|
30
37
|
await row.dblclick();
|
|
31
38
|
}
|
|
32
39
|
else if (action === true) {
|
|
33
|
-
await row
|
|
40
|
+
await clickRowMenuButton(row, gridType);
|
|
34
41
|
}
|
|
35
42
|
else {
|
|
36
|
-
await row
|
|
43
|
+
await clickRowMenuButton(row, gridType);
|
|
37
44
|
await (0, locators_1.findMenuItem)(page, action).click();
|
|
38
45
|
}
|
|
39
46
|
}
|
|
@@ -42,19 +49,23 @@ async function selectGridRow(container, filter, action) {
|
|
|
42
49
|
* Container can be a Page or a Locator (e.g., a dialog or section).
|
|
43
50
|
*/
|
|
44
51
|
async function filterAndSelectGridRow(container, filter, action) {
|
|
52
|
+
if (isRowIdFilter(filter)) {
|
|
53
|
+
throw new Error('filterAndSelectGridRow does not support rowId — use selectGridRow({ rowId }) instead');
|
|
54
|
+
}
|
|
45
55
|
const page = getPage(container);
|
|
56
|
+
const gridType = await detectGridType(container);
|
|
46
57
|
await applyGridFilters(container, filter);
|
|
47
58
|
const table = container.locator('table');
|
|
48
59
|
await table.locator('tbody tr').first().waitFor({ timeout: 15000 });
|
|
49
|
-
const row = await findRow(page, table, filter);
|
|
60
|
+
const row = await findRow(page, table, filter, gridType);
|
|
50
61
|
if (!action || action === 'default') {
|
|
51
62
|
await row.dblclick();
|
|
52
63
|
}
|
|
53
64
|
else if (action === true) {
|
|
54
|
-
await row
|
|
65
|
+
await clickRowMenuButton(row, gridType);
|
|
55
66
|
}
|
|
56
67
|
else {
|
|
57
|
-
await row
|
|
68
|
+
await clickRowMenuButton(row, gridType);
|
|
58
69
|
await (0, locators_1.findMenuItem)(page, action).click();
|
|
59
70
|
}
|
|
60
71
|
}
|
|
@@ -68,10 +79,11 @@ async function applyGridFilters(container, filter) {
|
|
|
68
79
|
const fieldContainer = container.locator('div.container', {
|
|
69
80
|
has: page.locator('h4.smart-form-widget-label', { hasText: header }),
|
|
70
81
|
});
|
|
71
|
-
const filterInput = fieldContainer.locator('input
|
|
82
|
+
const filterInput = fieldContainer.locator('input:not([type=hidden]):not([type=checkbox]):not([type=radio])');
|
|
72
83
|
await filterInput.fill(value);
|
|
73
84
|
}
|
|
74
|
-
|
|
85
|
+
const searchIcon = page.locator('mat-icon:has-text("search"), smart-icon[icon="search"]');
|
|
86
|
+
await container.locator('button', { has: searchIcon }).click();
|
|
75
87
|
await (0, wait_1.waitForAngularIdle)(page);
|
|
76
88
|
}
|
|
77
89
|
/**
|
|
@@ -85,7 +97,8 @@ async function clearGridFilters(container) {
|
|
|
85
97
|
for (let i = 0; i < count; i++) {
|
|
86
98
|
await clearButtons.nth(i).click();
|
|
87
99
|
}
|
|
88
|
-
|
|
100
|
+
const searchIconClear = page.locator('mat-icon:has-text("search"), smart-icon[icon="search"]');
|
|
101
|
+
await container.locator('button', { has: searchIconClear }).click();
|
|
89
102
|
await (0, wait_1.waitForAngularIdle)(page);
|
|
90
103
|
}
|
|
91
104
|
/**
|
|
@@ -95,9 +108,10 @@ async function clearGridFilters(container) {
|
|
|
95
108
|
*/
|
|
96
109
|
async function checkGridRow(container, filter, checked) {
|
|
97
110
|
const page = getPage(container);
|
|
111
|
+
const gridType = await detectGridType(container);
|
|
98
112
|
const table = container.locator('table');
|
|
99
113
|
await table.locator('tbody tr').first().waitFor({ timeout: 15000 });
|
|
100
|
-
const row = await findRowWithPagination(page, table, filter);
|
|
114
|
+
const row = await findRowWithPagination(container, page, table, filter, gridType);
|
|
101
115
|
await setRowCheckbox(row, checked);
|
|
102
116
|
}
|
|
103
117
|
/**
|
|
@@ -107,9 +121,10 @@ async function checkGridRow(container, filter, checked) {
|
|
|
107
121
|
*/
|
|
108
122
|
async function checkGridRowsOnPage(container, filter, checked) {
|
|
109
123
|
const page = getPage(container);
|
|
124
|
+
const gridType = await detectGridType(container);
|
|
110
125
|
const table = container.locator('table');
|
|
111
126
|
await table.locator('tbody tr').first().waitFor({ timeout: 15000 });
|
|
112
|
-
const rows = await findAllMatchingRows(page, table, filter);
|
|
127
|
+
const rows = await findAllMatchingRows(page, table, filter, gridType);
|
|
113
128
|
for (const row of rows) {
|
|
114
129
|
await setRowCheckbox(row, checked);
|
|
115
130
|
}
|
|
@@ -126,7 +141,7 @@ async function checkAllGridRows(container, checked) {
|
|
|
126
141
|
}
|
|
127
142
|
// --- Private helpers ---
|
|
128
143
|
async function setRowCheckbox(rowOrCell, checked) {
|
|
129
|
-
const wrapper = rowOrCell.locator('mat-checkbox, p-checkbox').first();
|
|
144
|
+
const wrapper = rowOrCell.locator('mat-checkbox, p-checkbox, p-tableCheckbox, p-tableHeaderCheckbox').first();
|
|
130
145
|
const input = rowOrCell.locator('input[type=checkbox]').first();
|
|
131
146
|
const isChecked = await input.isChecked();
|
|
132
147
|
if (isChecked !== checked) {
|
|
@@ -138,7 +153,15 @@ async function setRowCheckbox(rowOrCell, checked) {
|
|
|
138
153
|
}
|
|
139
154
|
}
|
|
140
155
|
}
|
|
141
|
-
async function
|
|
156
|
+
async function clickRowMenuButton(row, gridType) {
|
|
157
|
+
if (gridType === 'material') {
|
|
158
|
+
await row.locator('td.mat-column-my_menu button').click();
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
await row.locator('.menu-button p-button').first().click();
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
async function findAllMatchingRows(page, table, filter, gridType) {
|
|
142
165
|
if (typeof filter === 'string') {
|
|
143
166
|
const rows = table.locator('tbody tr', { hasText: filter });
|
|
144
167
|
const count = await rows.count();
|
|
@@ -148,23 +171,32 @@ async function findAllMatchingRows(page, table, filter) {
|
|
|
148
171
|
}
|
|
149
172
|
return result;
|
|
150
173
|
}
|
|
151
|
-
|
|
174
|
+
if (isRowIdFilter(filter)) {
|
|
175
|
+
const rows = table.locator(`tbody tr[data-testid="${filter.rowId}"]`);
|
|
176
|
+
const count = await rows.count();
|
|
177
|
+
const result = [];
|
|
178
|
+
for (let i = 0; i < count; i++) {
|
|
179
|
+
result.push(rows.nth(i));
|
|
180
|
+
}
|
|
181
|
+
return result;
|
|
182
|
+
}
|
|
183
|
+
const columnMap = await buildColumnMap(table, gridType);
|
|
152
184
|
const entries = Object.entries(filter);
|
|
153
185
|
const firstEntry = entries[0];
|
|
154
|
-
const
|
|
155
|
-
if (!
|
|
186
|
+
const columnSelector = columnMap.get(firstEntry[0]);
|
|
187
|
+
if (!columnSelector) {
|
|
156
188
|
throw new Error(`Column "${firstEntry[0]}" not found. Available: ${Array.from(columnMap.keys()).join(', ')}`);
|
|
157
189
|
}
|
|
158
190
|
let rowLocator = table.locator('tbody tr', {
|
|
159
|
-
has: page.locator(
|
|
191
|
+
has: page.locator(columnSelector, { hasText: firstEntry[1] }),
|
|
160
192
|
});
|
|
161
193
|
for (let i = 1; i < entries.length; i++) {
|
|
162
|
-
const
|
|
163
|
-
if (!
|
|
194
|
+
const colSel = columnMap.get(entries[i][0]);
|
|
195
|
+
if (!colSel) {
|
|
164
196
|
throw new Error(`Column "${entries[i][0]}" not found. Available: ${Array.from(columnMap.keys()).join(', ')}`);
|
|
165
197
|
}
|
|
166
198
|
rowLocator = rowLocator.filter({
|
|
167
|
-
has: page.locator(
|
|
199
|
+
has: page.locator(colSel, { hasText: entries[i][1] }),
|
|
168
200
|
});
|
|
169
201
|
}
|
|
170
202
|
const count = await rowLocator.count();
|
|
@@ -174,14 +206,15 @@ async function findAllMatchingRows(page, table, filter) {
|
|
|
174
206
|
}
|
|
175
207
|
return result;
|
|
176
208
|
}
|
|
177
|
-
async function findRowWithPagination(page, table, filter) {
|
|
209
|
+
async function findRowWithPagination(container, page, table, filter, gridType) {
|
|
178
210
|
const maxPages = 20;
|
|
179
211
|
for (let pageNum = 0; pageNum < maxPages; pageNum++) {
|
|
180
|
-
const row = await findRowOnCurrentPage(page, table, filter);
|
|
212
|
+
const row = await findRowOnCurrentPage(page, table, filter, gridType);
|
|
181
213
|
if (row)
|
|
182
214
|
return row;
|
|
183
|
-
|
|
184
|
-
|
|
215
|
+
const nextBtn = gridType === 'material'
|
|
216
|
+
? container.locator('.mat-mdc-paginator-navigation-next')
|
|
217
|
+
: container.locator('.p-paginator-next');
|
|
185
218
|
if (await nextBtn.isDisabled()) {
|
|
186
219
|
break;
|
|
187
220
|
}
|
|
@@ -189,72 +222,100 @@ async function findRowWithPagination(page, table, filter) {
|
|
|
189
222
|
await page.waitForLoadState('networkidle');
|
|
190
223
|
await page.waitForTimeout(300);
|
|
191
224
|
}
|
|
192
|
-
// Row not found on any page
|
|
193
225
|
const filterDesc = typeof filter === 'string'
|
|
194
226
|
? filter
|
|
195
227
|
: Object.entries(filter).map(([k, v]) => `${k}="${v}"`).join(', ');
|
|
196
228
|
throw new Error(`Grid row not found after paginating through all pages. Filter: ${filterDesc}`);
|
|
197
229
|
}
|
|
198
|
-
async function findRowOnCurrentPage(page, table, filter) {
|
|
230
|
+
async function findRowOnCurrentPage(page, table, filter, gridType) {
|
|
199
231
|
if (typeof filter === 'string') {
|
|
200
232
|
const row = table.locator('tbody tr', { hasText: filter }).first();
|
|
201
233
|
return await row.count() > 0 ? row : null;
|
|
202
234
|
}
|
|
203
|
-
|
|
235
|
+
if (isRowIdFilter(filter)) {
|
|
236
|
+
const row = table.locator(`tbody tr[data-testid="${filter.rowId}"]`).first();
|
|
237
|
+
return await row.count() > 0 ? row : null;
|
|
238
|
+
}
|
|
239
|
+
const columnMap = await buildColumnMap(table, gridType);
|
|
204
240
|
const entries = Object.entries(filter);
|
|
205
241
|
const firstEntry = entries[0];
|
|
206
|
-
const
|
|
207
|
-
if (!
|
|
242
|
+
const columnSelector = columnMap.get(firstEntry[0]);
|
|
243
|
+
if (!columnSelector) {
|
|
208
244
|
throw new Error(`Column "${firstEntry[0]}" not found. Available: ${Array.from(columnMap.keys()).join(', ')}`);
|
|
209
245
|
}
|
|
210
246
|
let rowLocator = table.locator('tbody tr', {
|
|
211
|
-
has: page.locator(
|
|
247
|
+
has: page.locator(columnSelector, { hasText: firstEntry[1] }),
|
|
212
248
|
});
|
|
213
249
|
for (let i = 1; i < entries.length; i++) {
|
|
214
|
-
const
|
|
215
|
-
if (!
|
|
250
|
+
const colSel = columnMap.get(entries[i][0]);
|
|
251
|
+
if (!colSel) {
|
|
216
252
|
throw new Error(`Column "${entries[i][0]}" not found. Available: ${Array.from(columnMap.keys()).join(', ')}`);
|
|
217
253
|
}
|
|
218
254
|
rowLocator = rowLocator.filter({
|
|
219
|
-
has: page.locator(
|
|
255
|
+
has: page.locator(colSel, { hasText: entries[i][1] }),
|
|
220
256
|
});
|
|
221
257
|
}
|
|
222
258
|
return await rowLocator.count() > 0 ? rowLocator.first() : null;
|
|
223
259
|
}
|
|
224
|
-
async function findRow(page, table, filter) {
|
|
260
|
+
async function findRow(page, table, filter, gridType) {
|
|
225
261
|
if (typeof filter === 'string') {
|
|
226
262
|
return table.locator('tbody tr', { hasText: filter }).first();
|
|
227
263
|
}
|
|
228
|
-
|
|
264
|
+
if (isRowIdFilter(filter)) {
|
|
265
|
+
const row = table.locator(`tbody tr[data-testid="${filter.rowId}"]`).first();
|
|
266
|
+
await (0, test_1.expect)(row).toBeVisible({ timeout: 15000 });
|
|
267
|
+
return row;
|
|
268
|
+
}
|
|
269
|
+
const columnMap = await buildColumnMap(table, gridType);
|
|
229
270
|
const entries = Object.entries(filter);
|
|
230
271
|
const firstEntry = entries[0];
|
|
231
|
-
const
|
|
232
|
-
if (!
|
|
272
|
+
const columnSelector = columnMap.get(firstEntry[0]);
|
|
273
|
+
if (!columnSelector) {
|
|
233
274
|
throw new Error(`Column "${firstEntry[0]}" not found. Available: ${Array.from(columnMap.keys()).join(', ')}`);
|
|
234
275
|
}
|
|
235
276
|
let rowLocator = table.locator('tbody tr', {
|
|
236
|
-
has: page.locator(
|
|
277
|
+
has: page.locator(columnSelector, { hasText: firstEntry[1] }),
|
|
237
278
|
});
|
|
238
279
|
for (let i = 1; i < entries.length; i++) {
|
|
239
|
-
const
|
|
240
|
-
if (!
|
|
280
|
+
const colSel = columnMap.get(entries[i][0]);
|
|
281
|
+
if (!colSel) {
|
|
241
282
|
throw new Error(`Column "${entries[i][0]}" not found. Available: ${Array.from(columnMap.keys()).join(', ')}`);
|
|
242
283
|
}
|
|
243
284
|
rowLocator = rowLocator.filter({
|
|
244
|
-
has: page.locator(
|
|
285
|
+
has: page.locator(colSel, { hasText: entries[i][1] }),
|
|
245
286
|
});
|
|
246
287
|
}
|
|
247
288
|
await (0, test_1.expect)(rowLocator.first()).toBeVisible({ timeout: 15000 });
|
|
248
289
|
return rowLocator.first();
|
|
249
290
|
}
|
|
250
|
-
async function buildColumnMap(table) {
|
|
251
|
-
const headers = await table.locator('th').all();
|
|
291
|
+
async function buildColumnMap(table, gridType) {
|
|
292
|
+
const headers = await table.locator('thead th').all();
|
|
252
293
|
const columnMap = new Map();
|
|
253
|
-
|
|
254
|
-
const
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
294
|
+
if (gridType === 'material') {
|
|
295
|
+
for (const th of headers) {
|
|
296
|
+
const text = (await th.textContent())?.trim() ?? '';
|
|
297
|
+
const { matClass, testId } = await th.evaluate(el => ({
|
|
298
|
+
matClass: Array.from(el.classList).find(c => c.startsWith('mat-column-')) ?? '',
|
|
299
|
+
testId: el.getAttribute('data-testid') ?? '',
|
|
300
|
+
}));
|
|
301
|
+
if (!matClass)
|
|
302
|
+
continue;
|
|
303
|
+
const tdSelector = `td.${matClass}`;
|
|
304
|
+
if (text)
|
|
305
|
+
columnMap.set(text, tdSelector);
|
|
306
|
+
if (testId)
|
|
307
|
+
columnMap.set(testId, tdSelector);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
else {
|
|
311
|
+
for (let i = 0; i < headers.length; i++) {
|
|
312
|
+
const text = (await headers[i].textContent())?.trim() ?? '';
|
|
313
|
+
const testId = (await headers[i].getAttribute('data-testid')) ?? '';
|
|
314
|
+
const tdSelector = `td:nth-child(${i + 1})`;
|
|
315
|
+
if (text)
|
|
316
|
+
columnMap.set(text, tdSelector);
|
|
317
|
+
if (testId)
|
|
318
|
+
columnMap.set(testId, tdSelector);
|
|
258
319
|
}
|
|
259
320
|
}
|
|
260
321
|
return columnMap;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid.steps.js","sourceRoot":"","sources":["../../src/steps/grid.steps.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"grid.steps.js","sourceRoot":"","sources":["../../src/steps/grid.steps.ts"],"names":[],"mappings":"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"}
|
package/dist/steps/index.d.ts
CHANGED
|
@@ -3,5 +3,6 @@ export { selectGridRow, checkGridRow, checkGridRowsOnPage, checkAllGridRows, fil
|
|
|
3
3
|
export { navigateToMain, navigateInTree, } from './navigation.steps';
|
|
4
4
|
export { topDialog, clickInDialog, } from './dialog.steps';
|
|
5
5
|
export { findButton, findPopupMenu, findMenuItem, } from './locators';
|
|
6
|
-
export { fillField, fillDate, fillDateTime, selectOption, selectMultiple, selectRadio, setCheckbox, setCheckboxGroup, setToggle, addChip, removeChip, setChips, uploadFile, } from './forms';
|
|
6
|
+
export { fillField, fillDate, fillDateTime, selectOption, selectMultiple, selectRadio, setCheckbox, setCheckboxGroup, setToggle, addChip, removeChip, setChips, uploadFile, setField, setFields, type FieldValue, } from './forms';
|
|
7
|
+
export { dumpDom, type DomElementInfo, type DumpDomOptions, } from './debug';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/steps/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAE5C,OAAO,EACL,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,SAAS,GACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,cAAc,EACd,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,SAAS,EACT,aAAa,GACd,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,UAAU,EACV,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,OAAO,EACP,UAAU,EACV,QAAQ,EACR,UAAU,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/steps/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAE5C,OAAO,EACL,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,SAAS,GACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,cAAc,EACd,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,SAAS,EACT,aAAa,GACd,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,UAAU,EACV,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,OAAO,EACP,UAAU,EACV,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,SAAS,EACT,KAAK,UAAU,GAChB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,OAAO,EACP,KAAK,cAAc,EACnB,KAAK,cAAc,GACpB,MAAM,SAAS,CAAC"}
|
package/dist/steps/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.uploadFile = exports.setChips = exports.removeChip = exports.addChip = exports.setToggle = exports.setCheckboxGroup = exports.setCheckbox = exports.selectRadio = exports.selectMultiple = exports.selectOption = exports.fillDateTime = exports.fillDate = exports.fillField = exports.findMenuItem = exports.findPopupMenu = exports.findButton = exports.clickInDialog = exports.topDialog = exports.navigateInTree = exports.navigateToMain = exports.clearGridFilters = exports.applyGridFilters = exports.filterAndSelectGridRow = exports.checkAllGridRows = exports.checkGridRowsOnPage = exports.checkGridRow = exports.selectGridRow = exports.waitForAngularIdle = void 0;
|
|
3
|
+
exports.dumpDom = exports.setFields = exports.setField = exports.uploadFile = exports.setChips = exports.removeChip = exports.addChip = exports.setToggle = exports.setCheckboxGroup = exports.setCheckbox = exports.selectRadio = exports.selectMultiple = exports.selectOption = exports.fillDateTime = exports.fillDate = exports.fillField = exports.findMenuItem = exports.findPopupMenu = exports.findButton = exports.clickInDialog = exports.topDialog = exports.navigateInTree = exports.navigateToMain = exports.clearGridFilters = exports.applyGridFilters = exports.filterAndSelectGridRow = exports.checkAllGridRows = exports.checkGridRowsOnPage = exports.checkGridRow = exports.selectGridRow = exports.waitForAngularIdle = void 0;
|
|
4
4
|
var wait_1 = require("./wait");
|
|
5
5
|
Object.defineProperty(exports, "waitForAngularIdle", { enumerable: true, get: function () { return wait_1.waitForAngularIdle; } });
|
|
6
6
|
var grid_steps_1 = require("./grid.steps");
|
|
@@ -35,4 +35,8 @@ Object.defineProperty(exports, "addChip", { enumerable: true, get: function () {
|
|
|
35
35
|
Object.defineProperty(exports, "removeChip", { enumerable: true, get: function () { return forms_1.removeChip; } });
|
|
36
36
|
Object.defineProperty(exports, "setChips", { enumerable: true, get: function () { return forms_1.setChips; } });
|
|
37
37
|
Object.defineProperty(exports, "uploadFile", { enumerable: true, get: function () { return forms_1.uploadFile; } });
|
|
38
|
+
Object.defineProperty(exports, "setField", { enumerable: true, get: function () { return forms_1.setField; } });
|
|
39
|
+
Object.defineProperty(exports, "setFields", { enumerable: true, get: function () { return forms_1.setFields; } });
|
|
40
|
+
var debug_1 = require("./debug");
|
|
41
|
+
Object.defineProperty(exports, "dumpDom", { enumerable: true, get: function () { return debug_1.dumpDom; } });
|
|
38
42
|
//# sourceMappingURL=index.js.map
|
package/dist/steps/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/steps/index.ts"],"names":[],"mappings":";;;AAAA,+BAA4C;AAAnC,0GAAA,kBAAkB,OAAA;AAE3B,2CASsB;AARpB,2GAAA,aAAa,OAAA;AACb,0GAAA,YAAY,OAAA;AACZ,iHAAA,mBAAmB,OAAA;AACnB,8GAAA,gBAAgB,OAAA;AAChB,oHAAA,sBAAsB,OAAA;AACtB,8GAAA,gBAAgB,OAAA;AAChB,8GAAA,gBAAgB,OAAA;AAIlB,uDAG4B;AAF1B,kHAAA,cAAc,OAAA;AACd,kHAAA,cAAc,OAAA;AAGhB,+CAGwB;AAFtB,yGAAA,SAAS,OAAA;AACT,6GAAA,aAAa,OAAA;AAGf,uCAIoB;AAHlB,sGAAA,UAAU,OAAA;AACV,yGAAA,aAAa,OAAA;AACb,wGAAA,YAAY,OAAA;AAGd,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/steps/index.ts"],"names":[],"mappings":";;;AAAA,+BAA4C;AAAnC,0GAAA,kBAAkB,OAAA;AAE3B,2CASsB;AARpB,2GAAA,aAAa,OAAA;AACb,0GAAA,YAAY,OAAA;AACZ,iHAAA,mBAAmB,OAAA;AACnB,8GAAA,gBAAgB,OAAA;AAChB,oHAAA,sBAAsB,OAAA;AACtB,8GAAA,gBAAgB,OAAA;AAChB,8GAAA,gBAAgB,OAAA;AAIlB,uDAG4B;AAF1B,kHAAA,cAAc,OAAA;AACd,kHAAA,cAAc,OAAA;AAGhB,+CAGwB;AAFtB,yGAAA,SAAS,OAAA;AACT,6GAAA,aAAa,OAAA;AAGf,uCAIoB;AAHlB,sGAAA,UAAU,OAAA;AACV,yGAAA,aAAa,OAAA;AACb,wGAAA,YAAY,OAAA;AAGd,iCAiBiB;AAhBf,kGAAA,SAAS,OAAA;AACT,iGAAA,QAAQ,OAAA;AACR,qGAAA,YAAY,OAAA;AACZ,qGAAA,YAAY,OAAA;AACZ,uGAAA,cAAc,OAAA;AACd,oGAAA,WAAW,OAAA;AACX,oGAAA,WAAW,OAAA;AACX,yGAAA,gBAAgB,OAAA;AAChB,kGAAA,SAAS,OAAA;AACT,gGAAA,OAAO,OAAA;AACP,mGAAA,UAAU,OAAA;AACV,iGAAA,QAAQ,OAAA;AACR,mGAAA,UAAU,OAAA;AACV,iGAAA,QAAQ,OAAA;AACR,kGAAA,SAAS,OAAA;AAIX,iCAIiB;AAHf,gGAAA,OAAO,OAAA"}
|
package/dist/steps/locators.d.ts
CHANGED
|
@@ -9,8 +9,11 @@ export declare function findButton(container: Locator | Page, text: string): Loc
|
|
|
9
9
|
*/
|
|
10
10
|
export declare function findPopupMenu(page: Page): Locator;
|
|
11
11
|
/**
|
|
12
|
-
* Finds a menu item by data-testid first, falling back to visible text.
|
|
12
|
+
* Finds a menu item by data-testid / data-automationid first, falling back to visible text.
|
|
13
13
|
* Supports Angular Material (.mat-mdc-menu-panel) and PrimeNG (.p-menu, .p-tieredmenu, .p-contextmenu) menus.
|
|
14
|
+
*
|
|
15
|
+
* PrimeNG MenuItem does not expose data-testid — only `menuItem.automationId`, which renders as
|
|
16
|
+
* the `data-automationid` DOM attribute. Material menu items keep using data-testid.
|
|
14
17
|
*/
|
|
15
18
|
export declare function findMenuItem(page: Page, text: string): Locator;
|
|
16
19
|
//# sourceMappingURL=locators.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locators.d.ts","sourceRoot":"","sources":["../../src/steps/locators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE3E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAEjD;AAED
|
|
1
|
+
{"version":3,"file":"locators.d.ts","sourceRoot":"","sources":["../../src/steps/locators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE3E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAEjD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAO9D"}
|
package/dist/steps/locators.js
CHANGED
|
@@ -17,14 +17,18 @@ function findPopupMenu(page) {
|
|
|
17
17
|
return page.locator('.mat-mdc-menu-panel, .p-menu-overlay, .p-tieredmenu-overlay, .p-contextmenu, .p-menu.p-component').last();
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
|
-
* Finds a menu item by data-testid first, falling back to visible text.
|
|
20
|
+
* Finds a menu item by data-testid / data-automationid first, falling back to visible text.
|
|
21
21
|
* Supports Angular Material (.mat-mdc-menu-panel) and PrimeNG (.p-menu, .p-tieredmenu, .p-contextmenu) menus.
|
|
22
|
+
*
|
|
23
|
+
* PrimeNG MenuItem does not expose data-testid — only `menuItem.automationId`, which renders as
|
|
24
|
+
* the `data-automationid` DOM attribute. Material menu items keep using data-testid.
|
|
22
25
|
*/
|
|
23
26
|
function findMenuItem(page, text) {
|
|
24
27
|
const matByTestId = `.mat-mdc-menu-panel button.mat-mdc-menu-item[data-testid="${text}"]`;
|
|
25
28
|
const matByText = `.mat-mdc-menu-panel button.mat-mdc-menu-item:has-text("${text}")`;
|
|
26
29
|
const primeByTestId = `.p-menu-list [data-testid="${text}"], .p-menuitem [data-testid="${text}"]`;
|
|
30
|
+
const primeByAutomationId = `.p-menu-list [data-automationid="${text}"], .p-menuitem [data-automationid="${text}"]`;
|
|
27
31
|
const primeByText = `.p-menu-list .p-menuitem-link:has-text("${text}"), .p-menuitem-content:has-text("${text}")`;
|
|
28
|
-
return page.locator(`${matByTestId}, ${matByText}, ${primeByTestId}, ${primeByText}`).first();
|
|
32
|
+
return page.locator(`${matByTestId}, ${matByText}, ${primeByTestId}, ${primeByAutomationId}, ${primeByText}`).first();
|
|
29
33
|
}
|
|
30
34
|
//# sourceMappingURL=locators.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locators.js","sourceRoot":"","sources":["../../src/steps/locators.ts"],"names":[],"mappings":";;AAMA,gCAEC;AAKD,sCAEC;
|
|
1
|
+
{"version":3,"file":"locators.js","sourceRoot":"","sources":["../../src/steps/locators.ts"],"names":[],"mappings":";;AAMA,gCAEC;AAKD,sCAEC;AASD,oCAOC;AA7BD;;;GAGG;AACH,SAAgB,UAAU,CAAC,SAAyB,EAAE,IAAY;IAChE,OAAO,SAAS,CAAC,OAAO,CAAC,uBAAuB,IAAI,wBAAwB,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;AAChG,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,IAAU;IACtC,OAAO,IAAI,CAAC,OAAO,CAAC,kGAAkG,CAAC,CAAC,IAAI,EAAE,CAAC;AACjI,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,YAAY,CAAC,IAAU,EAAE,IAAY;IACnD,MAAM,WAAW,GAAG,6DAA6D,IAAI,IAAI,CAAC;IAC1F,MAAM,SAAS,GAAG,0DAA0D,IAAI,IAAI,CAAC;IACrF,MAAM,aAAa,GAAG,8BAA8B,IAAI,iCAAiC,IAAI,IAAI,CAAC;IAClG,MAAM,mBAAmB,GAAG,oCAAoC,IAAI,uCAAuC,IAAI,IAAI,CAAC;IACpH,MAAM,WAAW,GAAG,2CAA2C,IAAI,qCAAqC,IAAI,IAAI,CAAC;IACjH,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,WAAW,KAAK,SAAS,KAAK,aAAa,KAAK,mBAAmB,KAAK,WAAW,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AACxH,CAAC"}
|
package/package.json
CHANGED