@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 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"}
@@ -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;AA8DtD;;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,CAI5G;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,CA4B7G;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"}
1
+ {"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../src/steps/forms.ts"],"names":[],"mappings":"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"}
@@ -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 container for a chip input identified by data-testid or label.
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 findChipGrid(container, identifier) {
64
- const byTestId = container.locator(`input[data-testid="${identifier}"]`).first()
65
- .locator('xpath=ancestor::mat-chip-grid');
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 byWidget = widget.locator('mat-chip-grid').first();
68
- return byTestId.or(byWidget).first();
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 resolveInput(container, identifier);
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 chipGrid = findChipGrid(container, identifier);
240
- const chip = chipGrid.locator('mat-chip-row', { hasText: value });
241
- await chip.locator('button[matChipRemove]').click();
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 chipGrid = findChipGrid(container, identifier);
272
+ const { chipContainer, isPrime } = await findChipContainerAndInput(container, identifier);
250
273
  // Read current chips
251
- const chipRows = chipGrid.locator('mat-chip-row');
252
- const count = await chipRows.count();
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
- const text = await chipRows.nth(i).textContent();
256
- if (text) {
257
- // Chip text may contain the remove button icon text — strip it
258
- currentChips.push(text.replace(/cancel/g, '').trim());
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.
@@ -1 +1 @@
1
- {"version":3,"file":"forms.js","sourceRoot":"","sources":["../../src/steps/forms.ts"],"names":[],"mappings":";;AAiEA,8BAGC;AAMD,4BAGC;AAOD,oCAkBC;AAQD,oCAgBC;AAMD,wCAmBC;AAKD,kCAkBC;AAQD,kCAcC;AAQD,4CAmBC;AAMD,8BAcC;AAQD,0BAIC;AAMD,gCAIC;AAOD,4BA4BC;AAQD,gCASC;AA3TD;;;;GAIG;AACH,SAAS,aAAa,CAAC,SAAyB,EAAE,KAAa;IAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,qEAAqE;IACrE,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE;QACzD,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,sCAAsC,KAAK,IAAI,CAAC;KACnE,CAAC,CAAC,KAAK,EAAE,CAAC;IACX,6CAA6C;IAC7C,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,oDAAoD,EAAE;QAC7F,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,KAAK,uBAAuB,KAAK,IAAI,CAAC;KACzE,CAAC,CAAC,KAAK,EAAE,CAAC;IACX,OAAO,YAAY,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,YAAY,CAAC,SAAyB,EAAE,UAAkB;IACvE,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,aAAa,GAAG,2EAA2E,CAAC;IAElG,8CAA8C;IAC9C,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,sBAAsB,UAAU,6BAA6B,UAAU,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IACxH,IAAI,MAAM,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEhD,6DAA6D;IAC7D,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE;QACzD,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,sCAAsC,UAAU,IAAI,CAAC;KACxE,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;IAC1C,IAAI,MAAM,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC;QAAE,OAAO,YAAY,CAAC;IAExD,sCAAsC;IACtC,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,sBAAsB,UAAU,6BAA6B,UAAU,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IAC3H,IAAI,MAAM,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC;QAAE,OAAO,WAAW,CAAC;IAEtD,mDAAmD;IACnD,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,gBAAgB,UAAU,oBAAoB,UAAU,IAAI,CAAC,CAAC,KAAK,EAAE;SACtG,OAAO,CAAC,sCAAsC,CAAC,CAAC,KAAK,EAAE;SACvD,OAAO,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;IAClC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,SAAyB,EAAE,UAAkB;IACjE,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,sBAAsB,UAAU,IAAI,CAAC,CAAC,KAAK,EAAE;SAC7E,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;IACzD,OAAO,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;AACvC,CAAC;AAED,+BAA+B;AAE/B;;GAEG;AACI,KAAK,UAAU,SAAS,CAAC,SAAyB,EAAE,UAAkB,EAAE,KAAa;IAC1F,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACxD,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,QAAQ,CAAC,SAAyB,EAAE,UAAkB,EAAE,IAAY;IACxF,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACxD,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,YAAY,CAAC,SAAyB,EAAE,UAAkB,EAAE,IAAY,EAAE,IAAY;IAC1G,MAAM,aAAa,GAAG,iEAAiE,CAAC;IAExF,6DAA6D;IAC7D,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,2BAA2B,UAAU,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IAE3F,IAAI,MAAM,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QACrD,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,uDAAuD;QACvD,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,8BAA8B;AAE9B;;;GAGG;AACI,KAAK,UAAU,YAAY,CAAC,SAAyB,EAAE,UAAkB,EAAE,UAAkB;IAClG,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,wBAAwB;IACxB,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,2BAA2B,UAAU,+BAA+B,UAAU,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IAC/H,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,KAAK,EAAE,CAAC;IAElE,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IAE7C,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IAErB,gEAAgE;IAChE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IACtE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IAC9E,MAAM,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;AAClD,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,cAAc,CAAC,SAAyB,EAAE,UAAkB,EAAE,OAAiB;IACnG,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,wBAAwB;IACxB,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,2BAA2B,UAAU,kCAAkC,UAAU,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IAClI,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,KAAK,EAAE,CAAC;IAErE,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IAErB,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QACjF,MAAM,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;IAClD,CAAC;IAED,qBAAqB;IACrB,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,WAAW,CAAC,SAAyB,EAAE,UAAkB,EAAE,KAAa;IAC5F,4DAA4D;IAC5D,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,gCAAgC,UAAU,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IAC3F,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAEpD,mBAAmB;IACnB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAClF,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAChF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;IAE/D,UAAU;IACV,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAEvE,IAAI,MAAM,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;SAAM,IAAI,MAAM,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,sCAAsC;AAEtC;;;GAGG;AACI,KAAK,UAAU,WAAW,CAAC,SAAyB,EAAE,UAAkB,EAAE,OAAgB;IAC/F,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAEpD,wBAAwB;IACxB,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,6BAA6B,UAAU,+BAA+B,UAAU,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IACjI,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;IAEpE,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IAE7C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;IAC1C,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,gBAAgB,CAAC,SAAyB,EAAE,UAAkB,EAAE,UAAmC;IACvH,iCAAiC;IACjC,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,oBAAoB,UAAU,qCAAqC,UAAU,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IAC9H,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;IAE1C,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1D,mBAAmB;QACnB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,UAAU;QACV,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAEhE,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;QAC1C,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YAC1B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,SAAS,CAAC,SAAyB,EAAE,UAAkB,EAAE,EAAW;IACxF,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAEpD,wBAAwB;IACxB,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,iCAAiC,UAAU,kCAAkC,UAAU,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IACxI,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,KAAK,EAAE,CAAC;IAE3E,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IAE7C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;IAC1C,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACrB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,yBAAyB;AAEzB;;;GAGG;AACI,KAAK,UAAU,OAAO,CAAC,SAAyB,EAAE,UAAkB,EAAE,KAAa;IACxF,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACxD,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxB,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,UAAU,CAAC,SAAyB,EAAE,UAAkB,EAAE,KAAa;IAC3F,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAClE,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,QAAQ,CAAC,SAAyB,EAAE,UAAkB,EAAE,MAAgB;IAC5F,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAErD,qBAAqB;IACrB,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;IACrC,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACjD,IAAI,IAAI,EAAE,CAAC;YACT,+DAA+D;YAC/D,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,UAAU,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;AACH,CAAC;AAED,sBAAsB;AAEtB;;;GAGG;AACI,KAAK,UAAU,UAAU,CAAC,SAAyB,EAAE,UAAkB,EAAE,QAAgB;IAC9F,uCAAuC;IACvC,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,kCAAkC,UAAU,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IAC7F,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;IAE7D,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrD,MAAM,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,2BAA2B;AAE3B;;GAEG;AACH,SAAS,OAAO,CAAC,SAAyB;IACxC,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;QACxB,OAAQ,SAAqB,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IACD,OAAO,SAAiB,CAAC;AAC3B,CAAC"}
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;AASxD;;;;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,CAef;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,CAiBf;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,CAa/G;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAW/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,CAOf;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,IAAI,GAAG,OAAO,EACzB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,IAAI,GAAG,OAAO,EACzB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAMf"}
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"}
@@ -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.locator('td.mat-column-my_menu button').click();
40
+ await clickRowMenuButton(row, gridType);
34
41
  }
35
42
  else {
36
- await row.locator('td.mat-column-my_menu button').click();
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.locator('td.mat-column-my_menu button').click();
65
+ await clickRowMenuButton(row, gridType);
55
66
  }
56
67
  else {
57
- await row.locator('td.mat-column-my_menu button').click();
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.mat-mdc-input-element');
82
+ const filterInput = fieldContainer.locator('input:not([type=hidden]):not([type=checkbox]):not([type=radio])');
72
83
  await filterInput.fill(value);
73
84
  }
74
- await container.locator('button', { has: page.locator('mat-icon', { hasText: 'search' }) }).click();
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
- await container.locator('button', { has: page.locator('mat-icon', { hasText: 'search' }) }).click();
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 findAllMatchingRows(page, table, filter) {
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
- const columnMap = await buildColumnMap(table);
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 columnId = columnMap.get(firstEntry[0]);
155
- if (!columnId) {
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(`td.mat-column-${columnId}`, { hasText: firstEntry[1] }),
191
+ has: page.locator(columnSelector, { hasText: firstEntry[1] }),
160
192
  });
161
193
  for (let i = 1; i < entries.length; i++) {
162
- const colId = columnMap.get(entries[i][0]);
163
- if (!colId) {
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(`td.mat-column-${colId}`, { hasText: entries[i][1] }),
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
- // Try to go to next page
184
- const nextBtn = page.locator('.mat-mdc-paginator-navigation-next');
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
- const columnMap = await buildColumnMap(table);
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 columnId = columnMap.get(firstEntry[0]);
207
- if (!columnId) {
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(`td.mat-column-${columnId}`, { hasText: firstEntry[1] }),
247
+ has: page.locator(columnSelector, { hasText: firstEntry[1] }),
212
248
  });
213
249
  for (let i = 1; i < entries.length; i++) {
214
- const colId = columnMap.get(entries[i][0]);
215
- if (!colId) {
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(`td.mat-column-${colId}`, { hasText: entries[i][1] }),
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
- const columnMap = await buildColumnMap(table);
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 columnId = columnMap.get(firstEntry[0]);
232
- if (!columnId) {
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(`td.mat-column-${columnId}`, { hasText: firstEntry[1] }),
277
+ has: page.locator(columnSelector, { hasText: firstEntry[1] }),
237
278
  });
238
279
  for (let i = 1; i < entries.length; i++) {
239
- const colId = columnMap.get(entries[i][0]);
240
- if (!colId) {
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(`td.mat-column-${colId}`, { hasText: entries[i][1] }),
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
- for (const th of headers) {
254
- const text = (await th.textContent())?.trim() ?? '';
255
- const classList = await th.evaluate(el => Array.from(el.classList).find(c => c.startsWith('mat-column-')) ?? '');
256
- if (text && classList) {
257
- columnMap.set(text, classList.replace('mat-column-', ''));
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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"}
@@ -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,GACX,MAAM,SAAS,CAAC"}
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"}
@@ -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
@@ -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,iCAciB;AAbf,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"}
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"}
@@ -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;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAM9D"}
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"}
@@ -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;AAMD,oCAMC;AAzBD;;;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;;;GAGG;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,WAAW,GAAG,2CAA2C,IAAI,qCAAqC,IAAI,IAAI,CAAC;IACjH,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,WAAW,KAAK,SAAS,KAAK,aAAa,KAAK,WAAW,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AAChG,CAAC"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartbit4all/playwright-qa",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "description": "Playwright-based testing and documentation framework for smartbit4all projects",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",