@sungen/driver-ui 3.2.34 → 3.3.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app-profile-presets.d.ts +12 -0
- package/dist/app-profile-presets.d.ts.map +1 -0
- package/dist/app-profile-presets.js +85 -0
- package/dist/app-profile-presets.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +93 -0
- package/dist/index.js.map +1 -0
- package/dist/patterns/assertion-patterns.d.ts +13 -0
- package/dist/patterns/assertion-patterns.d.ts.map +1 -0
- package/dist/patterns/assertion-patterns.js +903 -0
- package/dist/patterns/assertion-patterns.js.map +1 -0
- package/dist/patterns/capture-patterns.d.ts +21 -0
- package/dist/patterns/capture-patterns.d.ts.map +1 -0
- package/dist/patterns/capture-patterns.js +174 -0
- package/dist/patterns/capture-patterns.js.map +1 -0
- package/dist/patterns/focus-patterns.d.ts +22 -0
- package/dist/patterns/focus-patterns.d.ts.map +1 -0
- package/dist/patterns/focus-patterns.js +79 -0
- package/dist/patterns/focus-patterns.js.map +1 -0
- package/dist/patterns/form-patterns.d.ts +6 -0
- package/dist/patterns/form-patterns.d.ts.map +1 -0
- package/dist/patterns/form-patterns.js +239 -0
- package/dist/patterns/form-patterns.js.map +1 -0
- package/dist/patterns/interaction-patterns.d.ts +20 -0
- package/dist/patterns/interaction-patterns.d.ts.map +1 -0
- package/dist/patterns/interaction-patterns.js +633 -0
- package/dist/patterns/interaction-patterns.js.map +1 -0
- package/dist/patterns/keyboard-patterns.d.ts +7 -0
- package/dist/patterns/keyboard-patterns.d.ts.map +1 -0
- package/dist/patterns/keyboard-patterns.js +57 -0
- package/dist/patterns/keyboard-patterns.js.map +1 -0
- package/dist/patterns/navigation-patterns.d.ts +6 -0
- package/dist/patterns/navigation-patterns.d.ts.map +1 -0
- package/dist/patterns/navigation-patterns.js +185 -0
- package/dist/patterns/navigation-patterns.js.map +1 -0
- package/dist/patterns/scope-patterns.d.ts +7 -0
- package/dist/patterns/scope-patterns.d.ts.map +1 -0
- package/dist/patterns/scope-patterns.js +36 -0
- package/dist/patterns/scope-patterns.js.map +1 -0
- package/dist/patterns/scroll-patterns.d.ts +7 -0
- package/dist/patterns/scroll-patterns.d.ts.map +1 -0
- package/dist/patterns/scroll-patterns.js +25 -0
- package/dist/patterns/scroll-patterns.js.map +1 -0
- package/dist/patterns/setup-patterns.d.ts +6 -0
- package/dist/patterns/setup-patterns.d.ts.map +1 -0
- package/dist/patterns/setup-patterns.js +75 -0
- package/dist/patterns/setup-patterns.js.map +1 -0
- package/dist/patterns/storage-patterns.d.ts +26 -0
- package/dist/patterns/storage-patterns.d.ts.map +1 -0
- package/dist/patterns/storage-patterns.js +142 -0
- package/dist/patterns/storage-patterns.js.map +1 -0
- package/dist/patterns/table-pagination-patterns.d.ts +42 -0
- package/dist/patterns/table-pagination-patterns.d.ts.map +1 -0
- package/dist/patterns/table-pagination-patterns.js +93 -0
- package/dist/patterns/table-pagination-patterns.js.map +1 -0
- package/dist/patterns/table-patterns.d.ts +19 -0
- package/dist/patterns/table-patterns.d.ts.map +1 -0
- package/dist/patterns/table-patterns.js +594 -0
- package/dist/patterns/table-patterns.js.map +1 -0
- package/dist/trace-identity/aria-snapshot-head.d.ts +23 -0
- package/dist/trace-identity/aria-snapshot-head.d.ts.map +1 -0
- package/dist/trace-identity/aria-snapshot-head.js +26 -0
- package/dist/trace-identity/aria-snapshot-head.js.map +1 -0
- package/dist/trace-identity/playwright-identity-resolver.d.ts +10 -0
- package/dist/trace-identity/playwright-identity-resolver.d.ts.map +1 -0
- package/dist/trace-identity/playwright-identity-resolver.js +130 -0
- package/dist/trace-identity/playwright-identity-resolver.js.map +1 -0
- package/dist/trace-identity/trace-run-record-reporter.d.ts +39 -0
- package/dist/trace-identity/trace-run-record-reporter.d.ts.map +1 -0
- package/dist/trace-identity/trace-run-record-reporter.js +113 -0
- package/dist/trace-identity/trace-run-record-reporter.js.map +1 -0
- package/dist/utils/column-header.d.ts +37 -0
- package/dist/utils/column-header.d.ts.map +1 -0
- package/dist/utils/column-header.js +46 -0
- package/dist/utils/column-header.js.map +1 -0
- package/dist/utils/row-index.d.ts +18 -0
- package/dist/utils/row-index.d.ts.map +1 -0
- package/dist/utils/row-index.js +39 -0
- package/dist/utils/row-index.js.map +1 -0
- package/dist/utils/url-path-regex.d.ts +45 -0
- package/dist/utils/url-path-regex.d.ts.map +1 -0
- package/dist/utils/url-path-regex.js +68 -0
- package/dist/utils/url-path-regex.js.map +1 -0
- package/package.json +7 -3
- package/src/index.ts +10 -1
- package/src/trace-identity/aria-snapshot-head.ts +33 -0
- package/src/trace-identity/playwright-identity-resolver.ts +123 -0
- package/src/trace-identity/trace-run-record-reporter.ts +103 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assertion-patterns.js","sourceRoot":"","sources":["../../src/patterns/assertion-patterns.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { StepPattern } from '@sun-asterisk/sungen';
|
|
2
|
+
/**
|
|
3
|
+
* Capture & collection patterns (P5) — enable cross-screen data consistency and
|
|
4
|
+
* filter-result correctness that plain single-element assertions can't express.
|
|
5
|
+
*
|
|
6
|
+
* 1. Capture: `User remember [Product Name] text as {{selected_product_name}}`
|
|
7
|
+
* → stores the element's text/value into a runtime variable so a
|
|
8
|
+
* later step (on another screen) can assert against it.
|
|
9
|
+
* REQUIRES runtime data mode (default) — emits `testData.set(...)`.
|
|
10
|
+
*
|
|
11
|
+
* 2. List: `User see all [Product Name] contain {{selected_category}}`
|
|
12
|
+
* → asserts EVERY matching element's text contains the value
|
|
13
|
+
* (e.g. all products belong to the selected category/brand).
|
|
14
|
+
*
|
|
15
|
+
* 3. All-card: `User see all [Product Card] contain [Add To Cart] button`
|
|
16
|
+
* → asserts EVERY container element holds the child element
|
|
17
|
+
* (structural per-card proof: every card has name/price/action).
|
|
18
|
+
* Roadmap Q2 — the fix for "each card exposes X" claims.
|
|
19
|
+
*/
|
|
20
|
+
export declare const capturePatterns: StepPattern[];
|
|
21
|
+
//# sourceMappingURL=capture-patterns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture-patterns.d.ts","sourceRoot":"","sources":["../../src/patterns/capture-patterns.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAoB,MAAM,sBAAsB,CAAC;AAGrE;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,eAAe,EAAE,WAAW,EA2KxC,CAAC"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.capturePatterns = void 0;
|
|
4
|
+
const row_index_1 = require("../utils/row-index");
|
|
5
|
+
/**
|
|
6
|
+
* Capture & collection patterns (P5) — enable cross-screen data consistency and
|
|
7
|
+
* filter-result correctness that plain single-element assertions can't express.
|
|
8
|
+
*
|
|
9
|
+
* 1. Capture: `User remember [Product Name] text as {{selected_product_name}}`
|
|
10
|
+
* → stores the element's text/value into a runtime variable so a
|
|
11
|
+
* later step (on another screen) can assert against it.
|
|
12
|
+
* REQUIRES runtime data mode (default) — emits `testData.set(...)`.
|
|
13
|
+
*
|
|
14
|
+
* 2. List: `User see all [Product Name] contain {{selected_category}}`
|
|
15
|
+
* → asserts EVERY matching element's text contains the value
|
|
16
|
+
* (e.g. all products belong to the selected category/brand).
|
|
17
|
+
*
|
|
18
|
+
* 3. All-card: `User see all [Product Card] contain [Add To Cart] button`
|
|
19
|
+
* → asserts EVERY container element holds the child element
|
|
20
|
+
* (structural per-card proof: every card has name/price/action).
|
|
21
|
+
* Roadmap Q2 — the fix for "each card exposes X" claims.
|
|
22
|
+
*/
|
|
23
|
+
exports.capturePatterns = [
|
|
24
|
+
{
|
|
25
|
+
// FR2 (issue #468): `User remember [Col] column in [Table] table row {{n}} as {{var}}`
|
|
26
|
+
// — read a cell by POSITION so a later `… in [Table] table row {{n}}` action targets
|
|
27
|
+
// the same `getByRole('row').nth(...)` chain (no read-then-act two-query race).
|
|
28
|
+
// The cell comes from the table entry's `columns:` config (index); without one, the
|
|
29
|
+
// whole row's text is captured.
|
|
30
|
+
// NOTE: the `table-` name prefix opts out of generateStep's parentRef auto-scoping
|
|
31
|
+
// (the table locator is resolved internally from the step text, like all table-* patterns).
|
|
32
|
+
name: 'table-capture-row-nth',
|
|
33
|
+
platforms: ['web'],
|
|
34
|
+
platformAlternative: 'there is no HTML table on a native screen - remember the value from the row element itself with the generic capture step (`User remember [Row 2 Amount] as {{v}}`)',
|
|
35
|
+
matcher: (step) => /\bremember\b/i.test(step.text) && /\bas\s+\{\{[^}]+\}\}/i.test(step.text) && row_index_1.TABLE_ROW_NTH.test(step.text),
|
|
36
|
+
resolver: (step, context) => {
|
|
37
|
+
const brackets = step.text.match(/\[([^\]]+)\]/g) || [];
|
|
38
|
+
const columnName = brackets[0]?.replace(/[\[\]]/g, '') || '';
|
|
39
|
+
const tableName = brackets.length >= 2 ? brackets[1].replace(/[\[\]]/g, '') : '';
|
|
40
|
+
const rowToken = step.text.match(row_index_1.TABLE_ROW_NTH)[1];
|
|
41
|
+
const varName = step.text.match(/\bas\s+\{\{([^}]+)\}\}/i)[1].trim();
|
|
42
|
+
const tableResolved = context.selectorResolver.resolveSelector(tableName, context.featureName, 'table', 0);
|
|
43
|
+
// Cell by column index from the table entry's `columns:` config.
|
|
44
|
+
const columnKey = columnName.normalize('NFC').toLowerCase().trim().replace(/\s+/g, ' ');
|
|
45
|
+
const column = tableResolved.columns?.[columnKey];
|
|
46
|
+
const cellExpr = column !== undefined
|
|
47
|
+
? `tableRow.getByRole('cell').nth(${column.index})`
|
|
48
|
+
: 'tableRow';
|
|
49
|
+
context.dataResolver.registerCaptured(varName);
|
|
50
|
+
return {
|
|
51
|
+
templateName: 'capture-row-column',
|
|
52
|
+
data: { ...tableResolved, varName, cellExpr, rowIndexExpr: (0, row_index_1.rowIndexExpr)(rowToken, context) },
|
|
53
|
+
comment: `Remember ${columnName} column in ${tableName} table row ${rowToken} as ${varName}`,
|
|
54
|
+
};
|
|
55
|
+
},
|
|
56
|
+
priority: 36,
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
name: 'capture-variable',
|
|
60
|
+
matcher: (step) => /\bremember\b/i.test(step.text) && /\bas\b/i.test(step.text) && !!step.selectorRef && !!step.dataRef,
|
|
61
|
+
resolver: (step, context) => {
|
|
62
|
+
const resolved = context.selectorResolver.resolveSelector(step.selectorRef, undefined, step.elementType, step.nth);
|
|
63
|
+
const varName = step.dataRef;
|
|
64
|
+
// What to capture is stated BETWEEN the reference and `as` — nowhere else (#736). Scanning the
|
|
65
|
+
// whole sentence also saw the word inside the reference name and inside the variable name, so
|
|
66
|
+
// `remember [Name Value] text as {{v}}` and `remember [Label] text as {{value}}` both compiled
|
|
67
|
+
// to .inputValue() and died on a <span> with "Node is not an <input>".
|
|
68
|
+
//
|
|
69
|
+
// `step.elementType` alone is NOT enough: it holds only the FIRST token after `]`, so the
|
|
70
|
+
// documented `remember [Email] field value as {{v}}` reads as 'field' and would lose its value
|
|
71
|
+
// capture. Slicing after `]` first is also what makes the `as` split safe — a reference like
|
|
72
|
+
// `[As Of Date]` never reaches it.
|
|
73
|
+
const descriptor = step.text.slice(step.text.indexOf(']') + 1).split(/\bas\b/i)[0];
|
|
74
|
+
const isValue = /\bvalue\b/i.test(descriptor);
|
|
75
|
+
// Register so later `{{varName}}` references resolve to testData.get(varName)
|
|
76
|
+
// and skip YAML validation.
|
|
77
|
+
context.dataResolver.registerCaptured(varName);
|
|
78
|
+
// A capture reads ONE element, and the template now takes the first match rather than dying
|
|
79
|
+
// in strict mode. That is the right default — the documented workaround for the failure was
|
|
80
|
+
// `nth: 0`, i.e. this — but taking the first of many is a decision, and nothing else would
|
|
81
|
+
// ever say so: a capture feeds later steps, so a value read off the wrong row travels
|
|
82
|
+
// silently into whatever consumes it, possibly in another file.
|
|
83
|
+
//
|
|
84
|
+
// Reported on what the entry PROVES about cardinality, not on its strategy name. An id, a
|
|
85
|
+
// testid, a role WITH an accessible name, a label or a placeholder each address one thing by
|
|
86
|
+
// construction. `getByText` does not — it matches every element containing the text, which is
|
|
87
|
+
// exactly a list — and neither does a bare role or a class selector. The earlier reading of
|
|
88
|
+
// this rule ("warn for locator/css") got both halves wrong: it fired on `#order-id`, which is
|
|
89
|
+
// singular by definition, and stayed silent on `type: text`, which the `.first()` above
|
|
90
|
+
// silently narrows.
|
|
91
|
+
const value = String(resolved.value ?? '');
|
|
92
|
+
// Strategies that address ONE element by construction. The mobile native four are here for the
|
|
93
|
+
// same reason `testid` is: they are hand-written targeting expressions naming an element by an
|
|
94
|
+
// identifying attribute, so warning on them would fire on most captures in a mobile suite.
|
|
95
|
+
const IDENTIFYING = new Set([
|
|
96
|
+
'id', 'testid', 'label', 'placeholder',
|
|
97
|
+
'accessibility-id', 'xpath', 'android-uiautomator', 'ios-predicate',
|
|
98
|
+
]);
|
|
99
|
+
const singular = resolved.nth !== undefined
|
|
100
|
+
|| IDENTIFYING.has(String(resolved.strategy))
|
|
101
|
+
|| (resolved.strategy === 'role' && !!resolved.name)
|
|
102
|
+
|| ((resolved.strategy === 'locator' || resolved.strategy === 'css') && value.includes('#'));
|
|
103
|
+
if (!singular) {
|
|
104
|
+
const fix = resolved.strategy === 'role'
|
|
105
|
+
? 'give the role an accessible name, or declare the index you want ("nth: 0")'
|
|
106
|
+
: 'declare the index you want ("nth: 0"), or narrow the selector to the one element';
|
|
107
|
+
context.diagnostics?.add('SG-W036', `"[${step.selectorRef}]" is captured through a ${resolved.strategy} selector `
|
|
108
|
+
+ `("${value}") that can match several elements and declares no "nth:", so this step reads `
|
|
109
|
+
+ `whichever one the page yields FIRST. If it describes every item in a list, the captured `
|
|
110
|
+
+ `{{${varName}}} is the first row's value rather than the one the scenario means. `
|
|
111
|
+
+ `To say the first one is meant, ${fix}.`, { feature: context.featureName, step: step.text });
|
|
112
|
+
}
|
|
113
|
+
return {
|
|
114
|
+
templateName: 'capture-variable',
|
|
115
|
+
data: { ...resolved, varName, capture: isValue ? 'inputValue' : 'textContent' },
|
|
116
|
+
comment: `Remember ${step.selectorRef} ${isValue ? 'value' : 'text'} as ${varName}`,
|
|
117
|
+
};
|
|
118
|
+
},
|
|
119
|
+
priority: 35,
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
name: 'all-contain-assertion',
|
|
123
|
+
matcher: (step) => /\b(see|sees)\b/i.test(step.text) &&
|
|
124
|
+
/\ball\b/i.test(step.text) &&
|
|
125
|
+
/(contain|contains|match|matches|belong)/i.test(step.text) &&
|
|
126
|
+
!!step.selectorRef && !!(step.value || step.dataRef),
|
|
127
|
+
resolver: (step, context) => {
|
|
128
|
+
const resolved = context.selectorResolver.resolveSelector(step.selectorRef, undefined, step.elementType, step.nth);
|
|
129
|
+
const expectedText = step.value || context.dataResolver.resolveData(step.dataRef, context.featureName);
|
|
130
|
+
return {
|
|
131
|
+
templateName: 'all-contain-assertion',
|
|
132
|
+
data: { ...resolved, expectedText, selectorRef: step.selectorRef, stepCounter: context.stepCounter },
|
|
133
|
+
comment: `Assert all ${step.selectorRef} contain "${step.value || step.dataRef}"`,
|
|
134
|
+
};
|
|
135
|
+
},
|
|
136
|
+
priority: 34,
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
// Q2 — all-card structural assertion: every container holds the child element.
|
|
140
|
+
// Distinguished from `all-contain-assertion` by a second [ref] (childRef) and the
|
|
141
|
+
// ABSENCE of a value/data (which would make it a text-contains assertion instead).
|
|
142
|
+
name: 'all-contain-element',
|
|
143
|
+
matcher: (step) => /\b(see|sees)\b/i.test(step.text) &&
|
|
144
|
+
/\ball\b/i.test(step.text) &&
|
|
145
|
+
/(contain|contains|include|includes)/i.test(step.text) &&
|
|
146
|
+
!!step.selectorRef && !!step.childRef && !step.value && !step.dataRef,
|
|
147
|
+
resolver: (step, context) => {
|
|
148
|
+
const container = context.selectorResolver.resolveSelector(step.selectorRef, undefined, step.elementType, step.nth);
|
|
149
|
+
const child = context.selectorResolver.resolveSelector(step.childRef, undefined, step.childElementType, 0);
|
|
150
|
+
const sc = context.stepCounter;
|
|
151
|
+
return {
|
|
152
|
+
templateName: 'all-contain-element',
|
|
153
|
+
data: {
|
|
154
|
+
...container,
|
|
155
|
+
selectorRef: step.selectorRef,
|
|
156
|
+
childRef: step.childRef,
|
|
157
|
+
stepCounter: sc,
|
|
158
|
+
// C4 — plain variable NAMES only, no built locator expression. `.nth()` is a
|
|
159
|
+
// Playwright-only method; baking it into a string here (as the driver-agnostic
|
|
160
|
+
// pattern layer) leaked into the Appium output. Each adapter's own
|
|
161
|
+
// all-contain-element template composes its own per-index child chain
|
|
162
|
+
// (Playwright: `{{containerVar}}.nth({{containerIndexVar}})`; Appium:
|
|
163
|
+
// `{{containerVar}}[{{containerIndexVar}}]`).
|
|
164
|
+
containerVar: `__cards_${sc}`,
|
|
165
|
+
containerIndexVar: `__i_${sc}`,
|
|
166
|
+
child,
|
|
167
|
+
},
|
|
168
|
+
comment: `Assert all ${step.selectorRef} contain [${step.childRef}]`,
|
|
169
|
+
};
|
|
170
|
+
},
|
|
171
|
+
priority: 36,
|
|
172
|
+
},
|
|
173
|
+
];
|
|
174
|
+
//# sourceMappingURL=capture-patterns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture-patterns.js","sourceRoot":"","sources":["../../src/patterns/capture-patterns.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Focus/tab-order assertion — a Gherkin data table declares the expected keyboard
|
|
3
|
+
* focus sequence:
|
|
4
|
+
*
|
|
5
|
+
* Then User see tab order:
|
|
6
|
+
* | Ref |
|
|
7
|
+
* | [Station Dropdown] |
|
|
8
|
+
* | [Departure Date] |
|
|
9
|
+
*
|
|
10
|
+
* Compiles to: focus row 1 (the pinned origin — there is deliberately no separate
|
|
11
|
+
* `focus [X]` step), then for each following row press Tab and assert that element
|
|
12
|
+
* is focused. Web-only: no Appium twin — a mobile feature using this step fails
|
|
13
|
+
* loudly at compile ("Template not found") instead of faking a result.
|
|
14
|
+
*
|
|
15
|
+
* Cell refs ARE selector references (unlike storage keys) — each resolves through
|
|
16
|
+
* selectors.yaml. Resolution failures are COLLECTED and thrown as one compile error
|
|
17
|
+
* listing every broken row: neither the fail-open `getByRole` guess some table
|
|
18
|
+
* paths use (a wrong a11y assertion on a deliverable), nor dying on the first typo.
|
|
19
|
+
*/
|
|
20
|
+
import { StepPattern } from '@sun-asterisk/sungen';
|
|
21
|
+
export declare const focusPatterns: StepPattern[];
|
|
22
|
+
//# sourceMappingURL=focus-patterns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus-patterns.d.ts","sourceRoot":"","sources":["../../src/patterns/focus-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AASnD,eAAO,MAAM,aAAa,EAAE,WAAW,EAwDtC,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Focus/tab-order assertion — a Gherkin data table declares the expected keyboard
|
|
4
|
+
* focus sequence:
|
|
5
|
+
*
|
|
6
|
+
* Then User see tab order:
|
|
7
|
+
* | Ref |
|
|
8
|
+
* | [Station Dropdown] |
|
|
9
|
+
* | [Departure Date] |
|
|
10
|
+
*
|
|
11
|
+
* Compiles to: focus row 1 (the pinned origin — there is deliberately no separate
|
|
12
|
+
* `focus [X]` step), then for each following row press Tab and assert that element
|
|
13
|
+
* is focused. Web-only: no Appium twin — a mobile feature using this step fails
|
|
14
|
+
* loudly at compile ("Template not found") instead of faking a result.
|
|
15
|
+
*
|
|
16
|
+
* Cell refs ARE selector references (unlike storage keys) — each resolves through
|
|
17
|
+
* selectors.yaml. Resolution failures are COLLECTED and thrown as one compile error
|
|
18
|
+
* listing every broken row: neither the fail-open `getByRole` guess some table
|
|
19
|
+
* paths use (a wrong a11y assertion on a deliverable), nor dying on the first typo.
|
|
20
|
+
*/
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.focusPatterns = void 0;
|
|
23
|
+
// The step line carries no refs, so masked text == raw text. Anchored: exactly
|
|
24
|
+
// `see tab order:` — nothing else fits, nothing else may claim it.
|
|
25
|
+
const reTabOrder = /^\s*(?:user\s+)?sees?\s+tab\s+order\s*:?\s*$/i;
|
|
26
|
+
/** `[Ref]` with an optional trailing element type: `[Save] button`. */
|
|
27
|
+
const CELL = /^\s*\[([^\]]+)\]\s*([A-Za-z][A-Za-z-]*)?\s*$/;
|
|
28
|
+
exports.focusPatterns = [
|
|
29
|
+
{
|
|
30
|
+
name: 'tab-order-assertion',
|
|
31
|
+
platforms: ['web'],
|
|
32
|
+
platformAlternative: 'a touch screen has no keyboard focus traversal - run the accessibility audit manually and tag the scenario @manual:M10',
|
|
33
|
+
matcher: (step) => reTabOrder.test(step.text),
|
|
34
|
+
resolver: (step, context) => {
|
|
35
|
+
const table = step.dataTable;
|
|
36
|
+
// The parser silently DROPS a table with fewer than 2 total rows, so a
|
|
37
|
+
// missing header row and a missing table look identical here — both must
|
|
38
|
+
// be a loud compile error, or the scenario would pass asserting nothing.
|
|
39
|
+
if (!table) {
|
|
40
|
+
throw new Error(`"${step.text}": tab order needs a data table with a header row and at least 2 element rows:\n` +
|
|
41
|
+
' | Ref |\n | [First Element] |\n | [Second Element] |');
|
|
42
|
+
}
|
|
43
|
+
if (/^\s*\[/.test(table.headers[0] ?? '')) {
|
|
44
|
+
throw new Error(`"${step.text}": the first table row looks like an element ("${table.headers[0]}") — it was consumed as the HEADER. ` +
|
|
45
|
+
'Add a header row (`| Ref |`) so no element is silently swallowed.');
|
|
46
|
+
}
|
|
47
|
+
if (table.rows.length < 2) {
|
|
48
|
+
throw new Error(`"${step.text}": a tab order needs at least 2 element rows — with one row there is nothing after the origin to assert, and the step would pass unconditionally.`);
|
|
49
|
+
}
|
|
50
|
+
const cells = [];
|
|
51
|
+
const errors = [];
|
|
52
|
+
table.rows.forEach((row, i) => {
|
|
53
|
+
const raw = row.cells[0] ?? '';
|
|
54
|
+
const m = raw.match(CELL);
|
|
55
|
+
if (!m) {
|
|
56
|
+
errors.push(`row ${i + 1} ("${raw}"): cell must be "[Ref]" with an optional element type, e.g. "[Save] button"`);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
try {
|
|
60
|
+
const resolved = context.selectorResolver.resolveSelector(m[1], context.featureName, m[2], 0);
|
|
61
|
+
cells.push({ ...resolved, label: m[1] });
|
|
62
|
+
}
|
|
63
|
+
catch (e) {
|
|
64
|
+
errors.push(`row ${i + 1} [${m[1]}]: ${e instanceof Error ? e.message : String(e)}`);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
if (errors.length > 0) {
|
|
68
|
+
throw new Error(`"${step.text}": ${errors.length} tab-order cell(s) failed to resolve — fix selectors.yaml, no fallback is guessed:\n - ${errors.join('\n - ')}`);
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
templateName: 'tab-order-assertion',
|
|
72
|
+
data: { cells, stepCounter: context.stepCounter },
|
|
73
|
+
comment: `Assert tab order: ${cells.map((c) => `[${c.label}]`).join(' → ')}`,
|
|
74
|
+
};
|
|
75
|
+
},
|
|
76
|
+
priority: 60,
|
|
77
|
+
},
|
|
78
|
+
];
|
|
79
|
+
//# sourceMappingURL=focus-patterns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus-patterns.js","sourceRoot":"","sources":["../../src/patterns/focus-patterns.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-patterns.d.ts","sourceRoot":"","sources":["../../src/patterns/form-patterns.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAkC,MAAM,sBAAsB,CAAC;AAEnF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,WAAW,EAmPrC,CAAC"}
|