@sun-asterisk/sungen 3.2.28 → 3.2.30

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.
Files changed (486) hide show
  1. package/dist/capabilities/discover.d.ts +29 -0
  2. package/dist/capabilities/discover.d.ts.map +1 -1
  3. package/dist/capabilities/discover.js +144 -10
  4. package/dist/capabilities/discover.js.map +1 -1
  5. package/dist/capabilities/registry.d.ts +18 -0
  6. package/dist/capabilities/registry.d.ts.map +1 -1
  7. package/dist/capabilities/registry.js +25 -0
  8. package/dist/capabilities/registry.js.map +1 -1
  9. package/dist/cli/commands/audit.d.ts.map +1 -1
  10. package/dist/cli/commands/audit.js +9 -0
  11. package/dist/cli/commands/audit.js.map +1 -1
  12. package/dist/cli/commands/capability.js +1 -1
  13. package/dist/cli/commands/capability.js.map +1 -1
  14. package/dist/cli/commands/delivery.d.ts.map +1 -1
  15. package/dist/cli/commands/delivery.js +2 -1
  16. package/dist/cli/commands/delivery.js.map +1 -1
  17. package/dist/cli/commands/generate.d.ts.map +1 -1
  18. package/dist/cli/commands/generate.js +6 -2
  19. package/dist/cli/commands/generate.js.map +1 -1
  20. package/dist/cli/commands/inspect.js +1 -1
  21. package/dist/cli/commands/inspect.js.map +1 -1
  22. package/dist/cli/commands/results-merge.d.ts.map +1 -1
  23. package/dist/cli/commands/results-merge.js +9 -2
  24. package/dist/cli/commands/results-merge.js.map +1 -1
  25. package/dist/cli/commands/results-sanitize.d.ts +24 -0
  26. package/dist/cli/commands/results-sanitize.d.ts.map +1 -0
  27. package/dist/cli/commands/results-sanitize.js +126 -0
  28. package/dist/cli/commands/results-sanitize.js.map +1 -0
  29. package/dist/cli/commands/script-check.d.ts.map +1 -1
  30. package/dist/cli/commands/script-check.js +3 -1
  31. package/dist/cli/commands/script-check.js.map +1 -1
  32. package/dist/cli/commands/update.d.ts.map +1 -1
  33. package/dist/cli/commands/update.js +3 -0
  34. package/dist/cli/commands/update.js.map +1 -1
  35. package/dist/dashboard/templates/index.html +1 -1
  36. package/dist/exporters/api-testcase-formatter.d.ts +3 -6
  37. package/dist/exporters/api-testcase-formatter.d.ts.map +1 -1
  38. package/dist/exporters/api-testcase-formatter.js +7 -10
  39. package/dist/exporters/api-testcase-formatter.js.map +1 -1
  40. package/dist/exporters/feature-parser.d.ts +1 -1
  41. package/dist/exporters/feature-parser.js +1 -1
  42. package/dist/exporters/matrix/build.d.ts.map +1 -1
  43. package/dist/exporters/matrix/build.js +18 -3
  44. package/dist/exporters/matrix/build.js.map +1 -1
  45. package/dist/exporters/matrix/item-labels.d.ts +35 -0
  46. package/dist/exporters/matrix/item-labels.d.ts.map +1 -0
  47. package/dist/exporters/matrix/item-labels.js +90 -0
  48. package/dist/exporters/matrix/item-labels.js.map +1 -0
  49. package/dist/exporters/matrix/render-coverage-sheet.d.ts +14 -0
  50. package/dist/exporters/matrix/render-coverage-sheet.d.ts.map +1 -0
  51. package/dist/exporters/matrix/render-coverage-sheet.js +162 -0
  52. package/dist/exporters/matrix/render-coverage-sheet.js.map +1 -0
  53. package/dist/exporters/matrix/render-csv.d.ts.map +1 -1
  54. package/dist/exporters/matrix/render-csv.js +3 -1
  55. package/dist/exporters/matrix/render-csv.js.map +1 -1
  56. package/dist/exporters/matrix/render-overview-sheet.d.ts +20 -0
  57. package/dist/exporters/matrix/render-overview-sheet.d.ts.map +1 -0
  58. package/dist/exporters/matrix/render-overview-sheet.js +32 -0
  59. package/dist/exporters/matrix/render-overview-sheet.js.map +1 -0
  60. package/dist/exporters/matrix/render-testcase-sheet.d.ts +30 -0
  61. package/dist/exporters/matrix/render-testcase-sheet.d.ts.map +1 -0
  62. package/dist/exporters/matrix/render-testcase-sheet.js +156 -0
  63. package/dist/exporters/matrix/render-testcase-sheet.js.map +1 -0
  64. package/dist/exporters/matrix/render-xlsx.d.ts +41 -31
  65. package/dist/exporters/matrix/render-xlsx.d.ts.map +1 -1
  66. package/dist/exporters/matrix/render-xlsx.js +72 -425
  67. package/dist/exporters/matrix/render-xlsx.js.map +1 -1
  68. package/dist/exporters/matrix/result-totals.d.ts +23 -0
  69. package/dist/exporters/matrix/result-totals.d.ts.map +1 -0
  70. package/dist/exporters/matrix/result-totals.js +21 -0
  71. package/dist/exporters/matrix/result-totals.js.map +1 -0
  72. package/dist/exporters/matrix/testcase-summary-band.d.ts +30 -0
  73. package/dist/exporters/matrix/testcase-summary-band.d.ts.map +1 -0
  74. package/dist/exporters/matrix/testcase-summary-band.js +71 -0
  75. package/dist/exporters/matrix/testcase-summary-band.js.map +1 -0
  76. package/dist/exporters/matrix/wording.d.ts.map +1 -1
  77. package/dist/exporters/matrix/wording.js +13 -0
  78. package/dist/exporters/matrix/wording.js.map +1 -1
  79. package/dist/exporters/matrix/xlsx-cells.d.ts +38 -0
  80. package/dist/exporters/matrix/xlsx-cells.d.ts.map +1 -0
  81. package/dist/exporters/matrix/xlsx-cells.js +52 -0
  82. package/dist/exporters/matrix/xlsx-cells.js.map +1 -0
  83. package/dist/exporters/qa-env-secret-denylist.js +2 -2
  84. package/dist/exporters/qa-env-secret-denylist.js.map +1 -1
  85. package/dist/exporters/report-path-sanitizer.d.ts +38 -0
  86. package/dist/exporters/report-path-sanitizer.d.ts.map +1 -0
  87. package/dist/exporters/report-path-sanitizer.js +137 -0
  88. package/dist/exporters/report-path-sanitizer.js.map +1 -0
  89. package/dist/exporters/result-variants.d.ts.map +1 -1
  90. package/dist/exporters/result-variants.js +2 -1
  91. package/dist/exporters/result-variants.js.map +1 -1
  92. package/dist/exporters/sensitive-key.d.ts +31 -0
  93. package/dist/exporters/sensitive-key.d.ts.map +1 -0
  94. package/dist/exporters/sensitive-key.js +50 -0
  95. package/dist/exporters/sensitive-key.js.map +1 -0
  96. package/dist/exporters/test-data-resolver.d.ts +4 -1
  97. package/dist/exporters/test-data-resolver.d.ts.map +1 -1
  98. package/dist/exporters/test-data-resolver.js +12 -2
  99. package/dist/exporters/test-data-resolver.js.map +1 -1
  100. package/dist/exporters/xlsx-report-builder.d.ts +12 -1
  101. package/dist/exporters/xlsx-report-builder.d.ts.map +1 -1
  102. package/dist/exporters/xlsx-report-builder.js +10 -2
  103. package/dist/exporters/xlsx-report-builder.js.map +1 -1
  104. package/dist/generators/gherkin-parser/index.d.ts +10 -0
  105. package/dist/generators/gherkin-parser/index.d.ts.map +1 -1
  106. package/dist/generators/gherkin-parser/index.js +20 -12
  107. package/dist/generators/gherkin-parser/index.js.map +1 -1
  108. package/dist/generators/gherkin-parser/parent-scope-clause.d.ts +54 -0
  109. package/dist/generators/gherkin-parser/parent-scope-clause.d.ts.map +1 -0
  110. package/dist/generators/gherkin-parser/parent-scope-clause.js +109 -0
  111. package/dist/generators/gherkin-parser/parent-scope-clause.js.map +1 -0
  112. package/dist/generators/test-generator/adapters/adapter-interface.d.ts +23 -18
  113. package/dist/generators/test-generator/adapters/adapter-interface.d.ts.map +1 -1
  114. package/dist/generators/test-generator/adapters/appium/appium-adapter.d.ts +4 -19
  115. package/dist/generators/test-generator/adapters/appium/appium-adapter.d.ts.map +1 -1
  116. package/dist/generators/test-generator/adapters/appium/appium-adapter.js.map +1 -1
  117. package/dist/generators/test-generator/adapters/appium/os-support.d.ts +53 -0
  118. package/dist/generators/test-generator/adapters/appium/os-support.d.ts.map +1 -0
  119. package/dist/generators/test-generator/adapters/appium/os-support.js +200 -0
  120. package/dist/generators/test-generator/adapters/appium/os-support.js.map +1 -0
  121. package/dist/generators/test-generator/adapters/appium/templates/after-all.hbs +18 -0
  122. package/dist/generators/test-generator/adapters/appium/templates/after-each.hbs +18 -0
  123. package/dist/generators/test-generator/adapters/appium/templates/before-all.hbs +18 -0
  124. package/dist/generators/test-generator/adapters/appium/templates/steps/actions/alert-fill-action.hbs +9 -2
  125. package/dist/generators/test-generator/adapters/appium/templates/steps/actions/capture-variable.hbs +24 -1
  126. package/dist/generators/test-generator/adapters/appium/templates/steps/actions/click-at-position-action.hbs +1 -0
  127. package/dist/generators/test-generator/adapters/appium/templates/steps/actions/click-element-with-text.hbs +1 -1
  128. package/dist/generators/test-generator/adapters/appium/templates/steps/actions/double-click-action.hbs +7 -0
  129. package/dist/generators/test-generator/adapters/appium/templates/steps/actions/frame-enter-action.hbs +3 -6
  130. package/dist/generators/test-generator/adapters/appium/templates/steps/actions/hover-action.hbs +6 -2
  131. package/dist/generators/test-generator/adapters/appium/templates/steps/actions/hover-element-with-text.hbs +4 -3
  132. package/dist/generators/test-generator/adapters/appium/templates/steps/actions/table-paginate-action.hbs +3 -0
  133. package/dist/generators/test-generator/adapters/appium/templates/steps/actions/unknown-element-action.hbs +9 -0
  134. package/dist/generators/test-generator/adapters/appium/templates/steps/assertions/have-value-assertion.hbs +34 -1
  135. package/dist/generators/test-generator/adapters/appium/templates/steps/assertions/label-value-assertion.hbs +14 -6
  136. package/dist/generators/test-generator/adapters/appium/templates/steps/assertions/visible-assertion.hbs +1 -1
  137. package/dist/generators/test-generator/adapters/appium/templates/steps/gestures/go-back-action.hbs +21 -0
  138. package/dist/generators/test-generator/adapters/appium/templates/steps/gestures/long-press-action.hbs +4 -0
  139. package/dist/generators/test-generator/adapters/appium/templates/steps/gestures/pinch-zoom-action.hbs +4 -0
  140. package/dist/generators/test-generator/adapters/appium/templates/steps/gestures/set-geolocation-action.hbs +16 -0
  141. package/dist/generators/test-generator/adapters/appium/templates/steps/partials/locator.hbs +9 -1
  142. package/dist/generators/test-generator/adapters/appium/templates/test-file.hbs +62 -23
  143. package/dist/generators/test-generator/adapters/index.d.ts +1 -1
  144. package/dist/generators/test-generator/adapters/index.d.ts.map +1 -1
  145. package/dist/generators/test-generator/adapters/playwright/playwright-adapter.d.ts +4 -19
  146. package/dist/generators/test-generator/adapters/playwright/playwright-adapter.d.ts.map +1 -1
  147. package/dist/generators/test-generator/adapters/playwright/playwright-adapter.js.map +1 -1
  148. package/dist/generators/test-generator/adapters/playwright/templates/after-all.hbs +19 -1
  149. package/dist/generators/test-generator/adapters/playwright/templates/after-each.hbs +18 -0
  150. package/dist/generators/test-generator/adapters/playwright/templates/before-all.hbs +19 -1
  151. package/dist/generators/test-generator/adapters/playwright/templates/imports.hbs +3 -0
  152. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/check-action.hbs +6 -1
  153. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/click-at-position-action.hbs +23 -0
  154. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/expand-action.hbs +8 -8
  155. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/fill-editor-action.hbs +7 -2
  156. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/table-action-in-row-nth.hbs +7 -2
  157. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/table-action-in-row.hbs +7 -2
  158. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/table-paginate-action.hbs +5 -0
  159. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/uncheck-action.hbs +3 -1
  160. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/unknown-element-action.hbs +1 -1
  161. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/wait-for-page.hbs +18 -1
  162. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/all-contain-assertion.hbs +32 -4
  163. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/all-contain-element.hbs +5 -2
  164. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/checked-assertion.hbs +5 -1
  165. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/column-cell-assertion.hbs +13 -2
  166. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/contain-text-assertion.hbs +1 -1
  167. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/disabled-with-role-variable-assertion.hbs +2 -2
  168. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/disabled-with-variable-assertion.hbs +1 -1
  169. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/have-text-assertion.hbs +1 -1
  170. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/hidden-with-role-variable-assertion.hbs +2 -2
  171. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/hidden-with-variable-assertion.hbs +1 -1
  172. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/not-checked-assertion.hbs +2 -1
  173. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/selected-assertion.hbs +21 -3
  174. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/state-with-filter-assertion.hbs +20 -2
  175. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/table-empty.hbs +4 -1
  176. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/table-match-data.hbs +4 -1
  177. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/table-row-count.hbs +4 -1
  178. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/table-row-exists.hbs +12 -4
  179. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/table-row-not-exists.hbs +14 -2
  180. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-role-variable-assertion.hbs +3 -3
  181. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-value-assertion.hbs +1 -1
  182. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-variable-assertion.hbs +1 -1
  183. package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/checked-opts.hbs +8 -0
  184. package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/locator-base.hbs +8 -8
  185. package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/locator-nth.hbs +1 -1
  186. package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/locator-strategies/id.hbs +1 -1
  187. package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/locator-strategies/testid.hbs +1 -1
  188. package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/locator.hbs +8 -8
  189. package/dist/generators/test-generator/adapters/playwright/templates/test-file.hbs +10 -8
  190. package/dist/generators/test-generator/code-generator.d.ts +37 -0
  191. package/dist/generators/test-generator/code-generator.d.ts.map +1 -1
  192. package/dist/generators/test-generator/code-generator.js +165 -40
  193. package/dist/generators/test-generator/code-generator.js.map +1 -1
  194. package/dist/generators/test-generator/diagnostics.d.ts +116 -6
  195. package/dist/generators/test-generator/diagnostics.d.ts.map +1 -1
  196. package/dist/generators/test-generator/diagnostics.js +115 -5
  197. package/dist/generators/test-generator/diagnostics.js.map +1 -1
  198. package/dist/generators/test-generator/patterns/index.d.ts +57 -11
  199. package/dist/generators/test-generator/patterns/index.d.ts.map +1 -1
  200. package/dist/generators/test-generator/patterns/index.js +163 -21
  201. package/dist/generators/test-generator/patterns/index.js.map +1 -1
  202. package/dist/generators/test-generator/patterns/types.d.ts +8 -0
  203. package/dist/generators/test-generator/patterns/types.d.ts.map +1 -1
  204. package/dist/generators/test-generator/patterns/with-parent-scope.d.ts +18 -0
  205. package/dist/generators/test-generator/patterns/with-parent-scope.d.ts.map +1 -0
  206. package/dist/generators/test-generator/patterns/with-parent-scope.js +40 -0
  207. package/dist/generators/test-generator/patterns/with-parent-scope.js.map +1 -0
  208. package/dist/generators/test-generator/step-mapper.d.ts +103 -10
  209. package/dist/generators/test-generator/step-mapper.d.ts.map +1 -1
  210. package/dist/generators/test-generator/step-mapper.js +266 -45
  211. package/dist/generators/test-generator/step-mapper.js.map +1 -1
  212. package/dist/generators/test-generator/template-engine.d.ts +4 -19
  213. package/dist/generators/test-generator/template-engine.d.ts.map +1 -1
  214. package/dist/generators/test-generator/template-engine.js +17 -12
  215. package/dist/generators/test-generator/template-engine.js.map +1 -1
  216. package/dist/generators/test-generator/utils/data-resolver.d.ts +7 -0
  217. package/dist/generators/test-generator/utils/data-resolver.d.ts.map +1 -1
  218. package/dist/generators/test-generator/utils/data-resolver.js +19 -2
  219. package/dist/generators/test-generator/utils/data-resolver.js.map +1 -1
  220. package/dist/generators/test-generator/utils/dialog-scope-identity.d.ts +41 -0
  221. package/dist/generators/test-generator/utils/dialog-scope-identity.d.ts.map +1 -0
  222. package/dist/generators/test-generator/utils/dialog-scope-identity.js +61 -0
  223. package/dist/generators/test-generator/utils/dialog-scope-identity.js.map +1 -0
  224. package/dist/generators/test-generator/utils/escape-js-string.d.ts +17 -0
  225. package/dist/generators/test-generator/utils/escape-js-string.d.ts.map +1 -0
  226. package/dist/generators/test-generator/utils/escape-js-string.js +29 -0
  227. package/dist/generators/test-generator/utils/escape-js-string.js.map +1 -0
  228. package/dist/generators/test-generator/utils/nearest-match.d.ts +24 -0
  229. package/dist/generators/test-generator/utils/nearest-match.d.ts.map +1 -0
  230. package/dist/generators/test-generator/utils/nearest-match.js +56 -0
  231. package/dist/generators/test-generator/utils/nearest-match.js.map +1 -0
  232. package/dist/generators/test-generator/utils/selector-entry-fields.d.ts +58 -0
  233. package/dist/generators/test-generator/utils/selector-entry-fields.d.ts.map +1 -0
  234. package/dist/generators/test-generator/utils/selector-entry-fields.js +119 -0
  235. package/dist/generators/test-generator/utils/selector-entry-fields.js.map +1 -0
  236. package/dist/generators/test-generator/utils/selector-entry-walk.d.ts +25 -0
  237. package/dist/generators/test-generator/utils/selector-entry-walk.d.ts.map +1 -0
  238. package/dist/generators/test-generator/utils/selector-entry-walk.js +54 -0
  239. package/dist/generators/test-generator/utils/selector-entry-walk.js.map +1 -0
  240. package/dist/generators/test-generator/utils/selector-nth-validation.d.ts +59 -0
  241. package/dist/generators/test-generator/utils/selector-nth-validation.d.ts.map +1 -0
  242. package/dist/generators/test-generator/utils/selector-nth-validation.js +91 -0
  243. package/dist/generators/test-generator/utils/selector-nth-validation.js.map +1 -0
  244. package/dist/generators/test-generator/utils/selector-resolver.d.ts +53 -2
  245. package/dist/generators/test-generator/utils/selector-resolver.d.ts.map +1 -1
  246. package/dist/generators/test-generator/utils/selector-resolver.js +273 -27
  247. package/dist/generators/test-generator/utils/selector-resolver.js.map +1 -1
  248. package/dist/generators/test-generator/utils/selector-type-validation.d.ts +51 -0
  249. package/dist/generators/test-generator/utils/selector-type-validation.d.ts.map +1 -0
  250. package/dist/generators/test-generator/utils/selector-type-validation.js +77 -0
  251. package/dist/generators/test-generator/utils/selector-type-validation.js.map +1 -0
  252. package/dist/harness/audit.d.ts +3 -1
  253. package/dist/harness/audit.d.ts.map +1 -1
  254. package/dist/harness/audit.js +51 -28
  255. package/dist/harness/audit.js.map +1 -1
  256. package/dist/harness/capability-plan.d.ts +4 -0
  257. package/dist/harness/capability-plan.d.ts.map +1 -1
  258. package/dist/harness/capability-plan.js +32 -2
  259. package/dist/harness/capability-plan.js.map +1 -1
  260. package/dist/harness/catalog/drivers.yaml +1 -1
  261. package/dist/harness/catalog/universal-viewpoints.yaml +145 -0
  262. package/dist/harness/data-driven-lint.d.ts.map +1 -1
  263. package/dist/harness/data-driven-lint.js +217 -33
  264. package/dist/harness/data-driven-lint.js.map +1 -1
  265. package/dist/harness/parse.d.ts +6 -0
  266. package/dist/harness/parse.d.ts.map +1 -1
  267. package/dist/harness/parse.js +1 -1
  268. package/dist/harness/parse.js.map +1 -1
  269. package/dist/harness/repair.d.ts.map +1 -1
  270. package/dist/harness/repair.js +8 -1
  271. package/dist/harness/repair.js.map +1 -1
  272. package/dist/harness/script-check.d.ts +2 -2
  273. package/dist/harness/script-check.d.ts.map +1 -1
  274. package/dist/harness/script-check.js +186 -25
  275. package/dist/harness/script-check.js.map +1 -1
  276. package/dist/harness/sensors.d.ts +48 -0
  277. package/dist/harness/sensors.d.ts.map +1 -1
  278. package/dist/harness/sensors.js +26 -1
  279. package/dist/harness/sensors.js.map +1 -1
  280. package/dist/harness/viewpoint-ledger.d.ts +10 -0
  281. package/dist/harness/viewpoint-ledger.d.ts.map +1 -1
  282. package/dist/harness/viewpoint-ledger.js +23 -2
  283. package/dist/harness/viewpoint-ledger.js.map +1 -1
  284. package/dist/index.d.ts +2 -0
  285. package/dist/index.d.ts.map +1 -1
  286. package/dist/index.js +10 -1
  287. package/dist/index.js.map +1 -1
  288. package/dist/orchestrator/project-initializer.d.ts +6 -0
  289. package/dist/orchestrator/project-initializer.d.ts.map +1 -1
  290. package/dist/orchestrator/project-initializer.js +16 -0
  291. package/dist/orchestrator/project-initializer.js.map +1 -1
  292. package/dist/orchestrator/report-sanitize-reporter-install.d.ts +24 -0
  293. package/dist/orchestrator/report-sanitize-reporter-install.d.ts.map +1 -0
  294. package/dist/orchestrator/report-sanitize-reporter-install.js +161 -0
  295. package/dist/orchestrator/report-sanitize-reporter-install.js.map +1 -0
  296. package/dist/orchestrator/templates/ai-src/commands/delivery.md +4 -3
  297. package/dist/orchestrator/templates/ai-src/commands/run-test.md +9 -1
  298. package/dist/orchestrator/templates/ai-src/skills/sungen-api-coverage-model/SKILL.md +10 -0
  299. package/dist/orchestrator/templates/ai-src/skills/sungen-delivery/SKILL.md +14 -5
  300. package/dist/orchestrator/templates/ai-src/skills/sungen-error-mapping/SKILL.md +62 -3
  301. package/dist/orchestrator/templates/ai-src/skills/sungen-gherkin-syntax/SKILL.md +126 -11
  302. package/dist/orchestrator/templates/ai-src/skills/sungen-mobile-gestures/SKILL.md +16 -1
  303. package/dist/orchestrator/templates/ai-src/skills/sungen-selector-fix/SKILL.md +12 -0
  304. package/dist/orchestrator/templates/ai-src/skills/sungen-selector-keys/SKILL.md +19 -5
  305. package/dist/orchestrator/templates/ai-src/skills/sungen-tc-generation/SKILL.md +88 -2
  306. package/dist/orchestrator/templates/ai-src/skills/sungen-tc-review/SKILL.md +62 -5
  307. package/dist/orchestrator/templates/ai-src/skills/sungen-test-design-techniques/SKILL.md +13 -0
  308. package/dist/orchestrator/templates/ai-src/skills/sungen-viewpoint/SKILL.md +59 -10
  309. package/dist/orchestrator/templates/ai-src/skills/sungen-viewpoint/group-f-mobile-native.md +419 -0
  310. package/dist/orchestrator/templates/playwright.config.ts +7 -0
  311. package/dist/orchestrator/templates/readme.md +1 -1
  312. package/dist/orchestrator/templates/specs-checked-state.d.ts +83 -0
  313. package/dist/orchestrator/templates/specs-checked-state.d.ts.map +1 -0
  314. package/dist/orchestrator/templates/specs-checked-state.js +261 -0
  315. package/dist/orchestrator/templates/specs-checked-state.js.map +1 -0
  316. package/dist/orchestrator/templates/specs-checked-state.ts +324 -0
  317. package/dist/orchestrator/templates/specs-pw-shape-reporter.ts +0 -0
  318. package/dist/orchestrator/templates/specs-report-path-sanitize-reporter.d.ts +36 -0
  319. package/dist/orchestrator/templates/specs-report-path-sanitize-reporter.d.ts.map +1 -0
  320. package/dist/orchestrator/templates/specs-report-path-sanitize-reporter.js +155 -0
  321. package/dist/orchestrator/templates/specs-report-path-sanitize-reporter.js.map +1 -0
  322. package/dist/orchestrator/templates/specs-report-path-sanitize-reporter.ts +142 -0
  323. package/dist/orchestrator/templates/specs-url-assert.d.ts +50 -25
  324. package/dist/orchestrator/templates/specs-url-assert.d.ts.map +1 -1
  325. package/dist/orchestrator/templates/specs-url-assert.js +65 -24
  326. package/dist/orchestrator/templates/specs-url-assert.js.map +1 -1
  327. package/dist/orchestrator/templates/specs-url-assert.ts +101 -28
  328. package/dist/orchestrator/templates/wdio.conf.ts +105 -1
  329. package/dist/utils/selector-types.d.ts +43 -1
  330. package/dist/utils/selector-types.d.ts.map +1 -1
  331. package/dist/utils/selector-types.js +51 -7
  332. package/dist/utils/selector-types.js.map +1 -1
  333. package/package.json +3 -3
  334. package/src/capabilities/discover.ts +146 -10
  335. package/src/capabilities/registry.ts +30 -0
  336. package/src/cli/commands/audit.ts +9 -0
  337. package/src/cli/commands/capability.ts +1 -1
  338. package/src/cli/commands/delivery.ts +2 -1
  339. package/src/cli/commands/generate.ts +5 -2
  340. package/src/cli/commands/inspect.ts +1 -1
  341. package/src/cli/commands/results-merge.ts +9 -2
  342. package/src/cli/commands/results-sanitize.ts +98 -0
  343. package/src/cli/commands/script-check.ts +3 -1
  344. package/src/cli/commands/update.ts +3 -0
  345. package/src/dashboard/templates/index.html +1 -1
  346. package/src/exporters/api-testcase-formatter.ts +5 -7
  347. package/src/exporters/feature-parser.ts +1 -1
  348. package/src/exporters/matrix/build.ts +17 -3
  349. package/src/exporters/matrix/item-labels.ts +78 -0
  350. package/src/exporters/matrix/render-coverage-sheet.ts +170 -0
  351. package/src/exporters/matrix/render-csv.ts +3 -1
  352. package/src/exporters/matrix/render-overview-sheet.ts +51 -0
  353. package/src/exporters/matrix/render-testcase-sheet.ts +178 -0
  354. package/src/exporters/matrix/render-xlsx.ts +67 -448
  355. package/src/exporters/matrix/result-totals.ts +37 -0
  356. package/src/exporters/matrix/testcase-summary-band.ts +74 -0
  357. package/src/exporters/matrix/wording.ts +13 -0
  358. package/src/exporters/matrix/xlsx-cells.ts +56 -0
  359. package/src/exporters/qa-env-secret-denylist.ts +1 -1
  360. package/src/exporters/report-path-sanitizer.ts +144 -0
  361. package/src/exporters/result-variants.ts +2 -1
  362. package/src/exporters/sensitive-key.ts +48 -0
  363. package/src/exporters/test-data-resolver.ts +12 -2
  364. package/src/exporters/xlsx-report-builder.ts +16 -2
  365. package/src/generators/gherkin-parser/index.ts +22 -11
  366. package/src/generators/gherkin-parser/parent-scope-clause.ts +130 -0
  367. package/src/generators/test-generator/adapters/adapter-interface.ts +25 -3
  368. package/src/generators/test-generator/adapters/appium/appium-adapter.ts +4 -4
  369. package/src/generators/test-generator/adapters/appium/os-support.ts +176 -0
  370. package/src/generators/test-generator/adapters/appium/templates/after-all.hbs +18 -0
  371. package/src/generators/test-generator/adapters/appium/templates/after-each.hbs +18 -0
  372. package/src/generators/test-generator/adapters/appium/templates/before-all.hbs +18 -0
  373. package/src/generators/test-generator/adapters/appium/templates/steps/actions/alert-fill-action.hbs +9 -2
  374. package/src/generators/test-generator/adapters/appium/templates/steps/actions/capture-variable.hbs +24 -1
  375. package/src/generators/test-generator/adapters/appium/templates/steps/actions/click-at-position-action.hbs +1 -0
  376. package/src/generators/test-generator/adapters/appium/templates/steps/actions/click-element-with-text.hbs +1 -1
  377. package/src/generators/test-generator/adapters/appium/templates/steps/actions/double-click-action.hbs +7 -0
  378. package/src/generators/test-generator/adapters/appium/templates/steps/actions/frame-enter-action.hbs +3 -6
  379. package/src/generators/test-generator/adapters/appium/templates/steps/actions/hover-action.hbs +6 -2
  380. package/src/generators/test-generator/adapters/appium/templates/steps/actions/hover-element-with-text.hbs +4 -3
  381. package/src/generators/test-generator/adapters/appium/templates/steps/actions/table-paginate-action.hbs +3 -0
  382. package/src/generators/test-generator/adapters/appium/templates/steps/actions/unknown-element-action.hbs +9 -0
  383. package/src/generators/test-generator/adapters/appium/templates/steps/assertions/have-value-assertion.hbs +34 -1
  384. package/src/generators/test-generator/adapters/appium/templates/steps/assertions/label-value-assertion.hbs +14 -6
  385. package/src/generators/test-generator/adapters/appium/templates/steps/assertions/visible-assertion.hbs +1 -1
  386. package/src/generators/test-generator/adapters/appium/templates/steps/gestures/go-back-action.hbs +21 -0
  387. package/src/generators/test-generator/adapters/appium/templates/steps/gestures/long-press-action.hbs +4 -0
  388. package/src/generators/test-generator/adapters/appium/templates/steps/gestures/pinch-zoom-action.hbs +4 -0
  389. package/src/generators/test-generator/adapters/appium/templates/steps/gestures/set-geolocation-action.hbs +16 -0
  390. package/src/generators/test-generator/adapters/appium/templates/steps/partials/locator.hbs +9 -1
  391. package/src/generators/test-generator/adapters/appium/templates/test-file.hbs +62 -23
  392. package/src/generators/test-generator/adapters/index.ts +1 -1
  393. package/src/generators/test-generator/adapters/playwright/playwright-adapter.ts +4 -4
  394. package/src/generators/test-generator/adapters/playwright/templates/after-all.hbs +19 -1
  395. package/src/generators/test-generator/adapters/playwright/templates/after-each.hbs +18 -0
  396. package/src/generators/test-generator/adapters/playwright/templates/before-all.hbs +19 -1
  397. package/src/generators/test-generator/adapters/playwright/templates/imports.hbs +3 -0
  398. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/check-action.hbs +6 -1
  399. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/click-at-position-action.hbs +23 -0
  400. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/expand-action.hbs +8 -8
  401. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/fill-editor-action.hbs +7 -2
  402. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/table-action-in-row-nth.hbs +7 -2
  403. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/table-action-in-row.hbs +7 -2
  404. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/table-paginate-action.hbs +5 -0
  405. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/uncheck-action.hbs +3 -1
  406. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/unknown-element-action.hbs +1 -1
  407. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/wait-for-page.hbs +18 -1
  408. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/all-contain-assertion.hbs +32 -4
  409. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/all-contain-element.hbs +5 -2
  410. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/checked-assertion.hbs +5 -1
  411. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/column-cell-assertion.hbs +13 -2
  412. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/contain-text-assertion.hbs +1 -1
  413. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/disabled-with-role-variable-assertion.hbs +2 -2
  414. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/disabled-with-variable-assertion.hbs +1 -1
  415. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/have-text-assertion.hbs +1 -1
  416. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/hidden-with-role-variable-assertion.hbs +2 -2
  417. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/hidden-with-variable-assertion.hbs +1 -1
  418. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/not-checked-assertion.hbs +2 -1
  419. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/selected-assertion.hbs +21 -3
  420. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/state-with-filter-assertion.hbs +20 -2
  421. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/table-empty.hbs +4 -1
  422. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/table-match-data.hbs +4 -1
  423. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/table-row-count.hbs +4 -1
  424. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/table-row-exists.hbs +12 -4
  425. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/table-row-not-exists.hbs +14 -2
  426. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-role-variable-assertion.hbs +3 -3
  427. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-value-assertion.hbs +1 -1
  428. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-variable-assertion.hbs +1 -1
  429. package/src/generators/test-generator/adapters/playwright/templates/steps/partials/checked-opts.hbs +8 -0
  430. package/src/generators/test-generator/adapters/playwright/templates/steps/partials/locator-base.hbs +8 -8
  431. package/src/generators/test-generator/adapters/playwright/templates/steps/partials/locator-nth.hbs +1 -1
  432. package/src/generators/test-generator/adapters/playwright/templates/steps/partials/locator-strategies/id.hbs +1 -1
  433. package/src/generators/test-generator/adapters/playwright/templates/steps/partials/locator-strategies/testid.hbs +1 -1
  434. package/src/generators/test-generator/adapters/playwright/templates/steps/partials/locator.hbs +8 -8
  435. package/src/generators/test-generator/adapters/playwright/templates/test-file.hbs +10 -8
  436. package/src/generators/test-generator/code-generator.ts +181 -46
  437. package/src/generators/test-generator/diagnostics.ts +117 -6
  438. package/src/generators/test-generator/patterns/index.ts +175 -24
  439. package/src/generators/test-generator/patterns/types.ts +8 -0
  440. package/src/generators/test-generator/patterns/with-parent-scope.ts +41 -0
  441. package/src/generators/test-generator/step-mapper.ts +277 -43
  442. package/src/generators/test-generator/template-engine.ts +21 -21
  443. package/src/generators/test-generator/utils/data-resolver.ts +23 -2
  444. package/src/generators/test-generator/utils/dialog-scope-identity.ts +71 -0
  445. package/src/generators/test-generator/utils/escape-js-string.ts +24 -0
  446. package/src/generators/test-generator/utils/nearest-match.ts +55 -0
  447. package/src/generators/test-generator/utils/selector-entry-fields.ts +131 -0
  448. package/src/generators/test-generator/utils/selector-entry-walk.ts +58 -0
  449. package/src/generators/test-generator/utils/selector-nth-validation.ts +99 -0
  450. package/src/generators/test-generator/utils/selector-resolver.ts +333 -28
  451. package/src/generators/test-generator/utils/selector-type-validation.ts +87 -0
  452. package/src/harness/audit.ts +55 -30
  453. package/src/harness/capability-plan.ts +33 -1
  454. package/src/harness/catalog/drivers.yaml +1 -1
  455. package/src/harness/catalog/universal-viewpoints.yaml +145 -0
  456. package/src/harness/data-driven-lint.ts +192 -32
  457. package/src/harness/parse.ts +7 -1
  458. package/src/harness/repair.ts +8 -1
  459. package/src/harness/script-check.ts +186 -21
  460. package/src/harness/sensors.ts +75 -1
  461. package/src/harness/viewpoint-ledger.ts +26 -5
  462. package/src/index.ts +7 -0
  463. package/src/orchestrator/project-initializer.ts +17 -0
  464. package/src/orchestrator/report-sanitize-reporter-install.ts +109 -0
  465. package/src/orchestrator/templates/ai-src/commands/delivery.md +4 -3
  466. package/src/orchestrator/templates/ai-src/commands/run-test.md +9 -1
  467. package/src/orchestrator/templates/ai-src/skills/sungen-api-coverage-model/SKILL.md +10 -0
  468. package/src/orchestrator/templates/ai-src/skills/sungen-delivery/SKILL.md +14 -5
  469. package/src/orchestrator/templates/ai-src/skills/sungen-error-mapping/SKILL.md +62 -3
  470. package/src/orchestrator/templates/ai-src/skills/sungen-gherkin-syntax/SKILL.md +126 -11
  471. package/src/orchestrator/templates/ai-src/skills/sungen-mobile-gestures/SKILL.md +16 -1
  472. package/src/orchestrator/templates/ai-src/skills/sungen-selector-fix/SKILL.md +12 -0
  473. package/src/orchestrator/templates/ai-src/skills/sungen-selector-keys/SKILL.md +19 -5
  474. package/src/orchestrator/templates/ai-src/skills/sungen-tc-generation/SKILL.md +88 -2
  475. package/src/orchestrator/templates/ai-src/skills/sungen-tc-review/SKILL.md +62 -5
  476. package/src/orchestrator/templates/ai-src/skills/sungen-test-design-techniques/SKILL.md +13 -0
  477. package/src/orchestrator/templates/ai-src/skills/sungen-viewpoint/SKILL.md +59 -10
  478. package/src/orchestrator/templates/ai-src/skills/sungen-viewpoint/group-f-mobile-native.md +419 -0
  479. package/src/orchestrator/templates/playwright.config.ts +7 -0
  480. package/src/orchestrator/templates/readme.md +1 -1
  481. package/src/orchestrator/templates/specs-checked-state.ts +324 -0
  482. package/src/orchestrator/templates/specs-pw-shape-reporter.ts +0 -0
  483. package/src/orchestrator/templates/specs-report-path-sanitize-reporter.ts +142 -0
  484. package/src/orchestrator/templates/specs-url-assert.ts +101 -28
  485. package/src/orchestrator/templates/wdio.conf.ts +105 -1
  486. package/src/utils/selector-types.ts +54 -5
@@ -40,6 +40,9 @@ const path = __importStar(require("path"));
40
40
  const yaml_io_1 = require("../../../utils/yaml-io");
41
41
  const data_resolver_1 = require("./data-resolver");
42
42
  const app_profile_1 = require("../app-profile");
43
+ const selector_entry_fields_1 = require("./selector-entry-fields");
44
+ const selector_type_validation_1 = require("./selector-type-validation");
45
+ const selector_nth_validation_1 = require("./selector-nth-validation");
43
46
  /**
44
47
  * Roles whose accessible name comes from their own CONTENT, not from a label — so a name the
45
48
  * compiler invented from the `[Reference]` text can never match a real element.
@@ -61,15 +64,39 @@ exports.LIST_MEMBER_ROLES = new Set(['listitem', 'option', 'cell']);
61
64
  * Supports natural language references with auto-generated keys
62
65
  */
63
66
  class SelectorResolver {
64
- constructor(selectorsDir, screenName) {
67
+ constructor(selectorsDir, screenName, platform = 'web') {
65
68
  this.selectorCache = new Map();
66
69
  this.flowMode = false;
67
70
  this.contentNamedRoles = app_profile_1.DEFAULT_CONTENT_NAMED_ROLES;
68
71
  this.warnedContentNamed = new Set();
72
+ /** The adapter's target platform — gates the list-member auto-infer (#665). Defaults to web. */
73
+ this.platform = 'web';
69
74
  this.selectorsDir = selectorsDir || path.join(process.cwd(), 'qa', 'selectors', 'screens');
70
75
  this.screenName = screenName;
76
+ this.platform = platform;
71
77
  }
72
- /** Attach the compile-diagnostics collector (SG-W003) */
78
+ /**
79
+ * A role that resolved with NO accessible name, on the mobile adapter — a dead selector (#665).
80
+ *
81
+ * `appium-selector.hbs` renders a role as `~{{name || value}}`, so with no name it emits the role
82
+ * TOKEN itself: `~listitem`, `~status`. A native a11y tree has no role concept and contains no
83
+ * such string, so the locator can never match — yet it compiled clean and only failed at run time
84
+ * with `element with selector "~listitem" wasn't found`.
85
+ *
86
+ * The invariant is "role with no name", NOT "role in LIST_MEMBER_ROLES". Both are reachable and
87
+ * both are dead:
88
+ * · auto-infer — only the three LIST_MEMBER_ROLES are nameless (the other 22 default the label)
89
+ * · an entry — a list-member role withholds the name by design, and `name: null` is the
90
+ * documented opt-out for a content-named role, so `type: role` reaches it too
91
+ * One predicate covers every door; the CALLERS choose the remedy, because it differs: with no
92
+ * entry the fix is "add one", with an entry the fix is "change its type".
93
+ *
94
+ * Web is unaffected — there the role IS the locator (see LIST_MEMBER_ROLES).
95
+ */
96
+ isUnusableMobileRole(r) {
97
+ return this.platform === 'mobile' && !!r && r.strategy === 'role' && !r.name;
98
+ }
99
+ /** Attach the compile-diagnostics collector (SG-W003, SG-W016, SG-W030) */
73
100
  setDiagnostics(collector) {
74
101
  this.diagnostics = collector;
75
102
  }
@@ -336,11 +363,27 @@ class SelectorResolver {
336
363
  // Auto-infer locator from elementType when no exact YAML entry exists
337
364
  if (elementType) {
338
365
  const inferred = SelectorResolver.inferFromElementType(elementType, displayLabel);
339
- if (inferred) {
366
+ // #665 — auto-infer is an ARIA concept. It survives on mobile only because a label-named
367
+ // role hands the appium template a `name` to render as an accessibility-id (`[Submit]
368
+ // button` → `~Submit`, a plausible guess). A nameless role has nothing to hand it, and the
369
+ // template's `~{{name || value}}` fell through to the role TOKEN — `[Job List] item` →
370
+ // `~listitem`, a string no Android/iOS a11y tree contains. Clean compile, guaranteed miss.
371
+ //
372
+ // Declining rather than warning is what repairs the workflow. `sungen-selector-fix` Phase 0
373
+ // decides whether to scan the live page by asking whether the ref "can't be auto-inferred";
374
+ // while auto-infer answered yes, Phase 0 skipped the scan, so no real selector was ever
375
+ // written and a warning would have reported the breakage with the repair path still switched
376
+ // off. Declining makes Phase 0 scan, and if it was skipped the not-found throw below names
377
+ // the exact key to add — the remedy here is "add an entry", which is what that error says.
378
+ //
379
+ // Web is untouched: `getByRole('listitem')` with no name is a real, working locator there.
380
+ if (inferred && !this.isUnusableMobileRole(inferred)) {
340
381
  // Same SG-W003 class as the explicit-entry path: an auto-inferred name on a
341
382
  // name-from-content role ([Loading] spinner → getByRole('status', { name: 'Loading' }))
342
383
  // can never match. Add a YAML entry with name: null to opt out.
343
- if (inferred.strategy === 'role' && inferred.name && inferred.role && this.contentNamedRoles.includes(inferred.role)) {
384
+ // WEB ONLY — see the note at the entry-path emission (#665).
385
+ if (this.platform !== 'mobile'
386
+ && inferred.strategy === 'role' && inferred.name && inferred.role && this.contentNamedRoles.includes(inferred.role)) {
344
387
  const warnKey = `${inferred.role}:${displayLabel}`;
345
388
  if (!this.warnedContentNamed.has(warnKey)) {
346
389
  this.warnedContentNamed.add(warnKey);
@@ -408,9 +451,112 @@ class SelectorResolver {
408
451
  return data_resolver_1.DataResolver.encodeMarker(varName.trim());
409
452
  });
410
453
  }
454
+ /** Encode `{{var}}` references inside a table's `columns: { <col>: { header } }` map. */
455
+ static resolveColumnHeaders(columns) {
456
+ const out = {};
457
+ for (const [key, col] of Object.entries(columns)) {
458
+ out[key] = col && typeof col.header === 'string'
459
+ ? { ...col, header: SelectorResolver.resolveTemplateVars(col.header) }
460
+ : col;
461
+ }
462
+ return out;
463
+ }
464
+ /**
465
+ * Normalise `checked:` / `selected:` into the one signal consumers read (issue #730). The two
466
+ * spellings are an authoring convenience for the same thing — `checked:` on a toggle, `selected:`
467
+ * on a card/tab picker — so they collapse here rather than at every call site. Each spelling can
468
+ * publish the state as a class token or as a boolean attribute; one entry declares one of them.
469
+ *
470
+ * Validated at CODEGEN because every failure mode here is silent at run time: the class token
471
+ * lands inside `[class~="..."]`, where a quote breaks the selector and whitespace can never match
472
+ * (the `~=` operator matches ONE whitespace-separated token, so 'a b' matches nothing at all and
473
+ * the step would just time out claiming the control never changed state); an attribute name has
474
+ * the same exposure inside `[name="true"]`. Refused rather than warned-and-dropped, unlike
475
+ * `expanded:`: dropping this signal leaves the step with nothing to read, so it would fail again
476
+ * with the original "no on/off state" error and hide the real cause.
477
+ */
478
+ resolveCheckedSignal(entry, label) {
479
+ const signal = {};
480
+ // Recorded BEFORE it is thrown, every time. A pattern that resolves its selector inside a
481
+ // `catch {}` — several do, to fall back when a `[Ref]` simply is not in the file — would
482
+ // otherwise swallow the refusal whole and emit a step against an unresolved locator, with
483
+ // nothing anywhere naming the entry. The throw is what stops the file; the diagnostic is what
484
+ // survives a caller that decided not to be stopped, and what `--strict` counts.
485
+ const refuse = (message) => {
486
+ this.diagnostics?.add('SG-E031', message, { feature: this.featureName });
487
+ throw new Error(message);
488
+ };
489
+ for (const key of ['class', 'attribute']) {
490
+ const fromChecked = entry.checked?.[key]?.trim();
491
+ const fromSelected = entry.selected?.[key]?.trim();
492
+ if (fromChecked && fromSelected && fromChecked !== fromSelected) {
493
+ refuse(`Selector "[${label}]" declares both \`checked.${key}\` ("${fromChecked}") and ` +
494
+ `\`selected.${key}\` ("${fromSelected}") with different values. They are two spellings of ONE ` +
495
+ `signal — how the control marks its ON state — so only one can be right. Keep \`checked:\` for ` +
496
+ `a toggle/checkbox or \`selected:\` for a card/tab picker, and delete the other.`);
497
+ }
498
+ const value = fromChecked || fromSelected;
499
+ if (!value)
500
+ continue;
501
+ if (/\s/.test(value)) {
502
+ refuse(`Selector "[${label}]" declares checked/selected ${key} "${value}", which contains whitespace. ` +
503
+ `This must be ONE ${key === 'class' ? 'class token, not a class list' : 'attribute name'}: the ` +
504
+ `generated matcher tests a single token, so a multi-token value can never match and the step ` +
505
+ `would time out rather than fail clearly. Pick the one ${key} that marks the ON state ` +
506
+ `(e.g. '${key === 'class' ? 'border-link' : 'data-checked'}', not ` +
507
+ `'${key === 'class' ? 'card border-link' : 'data-checked aria-checked'}').`);
508
+ }
509
+ if (value.includes('"') || value.includes('\\')) {
510
+ refuse(`Selector "[${label}]" declares checked/selected ${key} "${value}", which contains a quote or ` +
511
+ `backslash. The value is embedded in a [${key === 'class' ? 'class~="..."' : 'name="true"'}] CSS ` +
512
+ `selector, which those characters would break. A ${key} carrying them is almost certainly a typo.`);
513
+ }
514
+ signal[key] = value;
515
+ }
516
+ if (signal.class && signal.attribute) {
517
+ refuse(`Selector "[${label}]" declares both a checked/selected \`class\` ("${signal.class}") and ` +
518
+ `\`attribute\` ("${signal.attribute}"). One control publishes its ON state one way — declaring ` +
519
+ `two lets an action drive one signal while the assertion after it reads the other. Keep the one ` +
520
+ `the component actually swaps.`);
521
+ }
522
+ return signal.class || signal.attribute ? signal : undefined;
523
+ }
411
524
  /**
412
525
  * Resolve from new structured entry format
413
526
  */
527
+ /**
528
+ * An `expanded:` signal's `class` / `attribute` value is pasted into the generated spec — into a
529
+ * string literal, a regex, a `classList.contains()` argument. selectors.yaml is often generated
530
+ * from the page under test, so a value carrying a quote, a `${`, whitespace or any other character
531
+ * a class or attribute name cannot legitimately contain is refused (diagnostic + the field is
532
+ * dropped) rather than compiled into code. Dropping it leaves a working step — codegen falls back
533
+ * to driving/asserting `aria-expanded` — which is why this warns where the checked/selected signal,
534
+ * whose fallback is the failure it exists to fix, refuses outright.
535
+ */
536
+ validatedStateSignal(signal, field, label) {
537
+ // Letters, digits and the punctuation real class/attribute names use — including Tailwind
538
+ // arbitrary values (`bg-[#eff6ff]`, `!mt-0`, `@md:flex`, `w-[calc(100%-2rem)]`). Excluded on
539
+ // purpose: whitespace, quotes, backticks, backslash, `$`/`{`/`}` — the characters that could
540
+ // close a literal or open an interpolation in the generated code.
541
+ const SAFE = /^[A-Za-z0-9_\-:./[\]%#!@(),&+=*~|?]+$/;
542
+ const out = {};
543
+ for (const key of ['class', 'attribute']) {
544
+ const value = signal[key];
545
+ if (value === undefined || value === null)
546
+ continue;
547
+ const text = String(value);
548
+ if (SAFE.test(text)) {
549
+ out[key] = text;
550
+ continue;
551
+ }
552
+ const warnKey = `w030:${label}:${field}.${key}`;
553
+ if (!this.warnedContentNamed.has(warnKey)) { // once per entry+field, not once per step that uses it
554
+ this.warnedContentNamed.add(warnKey);
555
+ this.diagnostics?.add('SG-W030', `selector "${label}": ${field}.${key} ${JSON.stringify(text)} is not accepted as a ${key} name (no whitespace, quotes, backslash, \`$\`, \`{\` or \`}\`) — the value is ignored and the step compiles to its default form`, { feature: this.featureName });
556
+ }
557
+ }
558
+ return out.class || out.attribute ? out : undefined;
559
+ }
414
560
  resolveFromEntry(entry, originalLabel) {
415
561
  // Default values
416
562
  const locator = entry.locator || '';
@@ -432,9 +578,22 @@ class SelectorResolver {
432
578
  : (entry.name ?? '');
433
579
  const value = SelectorResolver.resolveTemplateVars(rawValue);
434
580
  const name = SelectorResolver.resolveTemplateVars(rawName);
435
- const nth = entry.nth !== undefined && entry.nth !== null ? entry.nth : undefined;
581
+ // `nth:` is the one field whose VALUE nothing used to check (#720): anything non-null was
582
+ // handed to the adapters, which disagreed about it — web dropped `-1` silently, mobile emitted
583
+ // `$$(...)[-1]`. Normalised to a real index (integer >= -1) or `undefined` HERE, so no template
584
+ // ever renders a value it cannot express; the out-of-contract write is reported as SG-W018 at
585
+ // the file load point below.
586
+ const nth = (0, selector_nth_validation_1.normalizeNth)(entry.nth);
436
587
  const exact = entry.exact === true || entry.match === 'exact';
437
- const inputMethod = entry.inputMethod;
588
+ // `contenteditable: true` is the MANUAL override for a rich-text editor (#712). It was a
589
+ // documented, plumbed field that nothing read: the rich-text decision lives in driver-ui's
590
+ // fill pattern, which gates on `inputMethod` to pick `fill-editor-action`, so an author who
591
+ // followed the selector reference and wrote `contenteditable: true` got a plain `.fill()` and
592
+ // no diagnostic. Forcing the input method HERE rather than adding a second condition in the
593
+ // pattern keeps ONE rich-text signal on ResolvedSelector, so every consumer — current and
594
+ // future — reads the intent off a single field. An explicit `inputMethod` is more specific and
595
+ // still wins, so the two may be mixed without surprise.
596
+ const inputMethod = entry.inputMethod ?? (entry.contenteditable ? 'pressSequentially' : undefined);
438
597
  // v2 fields
439
598
  const v2Fields = {};
440
599
  if (entry.scope)
@@ -449,16 +608,29 @@ class SelectorResolver {
449
608
  v2Fields.frame = entry.frame;
450
609
  if (entry.contenteditable)
451
610
  v2Fields.contenteditable = true;
611
+ // A column's `header` is DOM text like any other selector field, so a `{{var}}` in it is a
612
+ // runtime reference — the same i18n escape hatch `name:`/`value:` have. Encoded here rather
613
+ // than at the read site so every consumer of the map gets it (issue #674).
452
614
  if (entry.columns)
453
- v2Fields.columns = entry.columns;
615
+ v2Fields.columns = SelectorResolver.resolveColumnHeaders(entry.columns);
454
616
  if (entry.pagination)
455
617
  v2Fields.pagination = entry.pagination;
618
+ if (typeof entry.rows === 'string' && entry.rows.trim())
619
+ v2Fields.rows = entry.rows.trim();
456
620
  if (entry.attribute)
457
621
  v2Fields.attribute = entry.attribute;
458
622
  if (entry.pattern)
459
623
  v2Fields.pattern = entry.pattern;
460
- if (entry.expanded)
461
- v2Fields.expanded = entry.expanded;
624
+ if (entry.expanded) {
625
+ const expanded = this.validatedStateSignal(entry.expanded, 'expanded', originalLabel);
626
+ if (expanded || entry.expanded.state)
627
+ v2Fields.expanded = { ...expanded, ...(entry.expanded.state ? { state: entry.expanded.state } : {}) };
628
+ }
629
+ const checked = this.resolveCheckedSignal(entry, originalLabel);
630
+ if (checked?.class)
631
+ v2Fields.checkedClass = checked.class;
632
+ if (checked?.attribute)
633
+ v2Fields.checkedAttribute = checked.attribute;
462
634
  // The anchor is a selector in its own right; it must not inherit the PAGE's label as its
463
635
  // accessible name, so it resolves against its own name (or nothing).
464
636
  if (entry.anchor)
@@ -493,7 +665,26 @@ class SelectorResolver {
493
665
  // If type is 'locator', use locator field (or value as fallback) as the CSS locator directly.
494
666
  // `exact` travels along: a locator LIST filtered by a test-data value (hasText) matches by
495
667
  // substring by default, and `exact: true` in the YAML opts into the anchored full-text match.
496
- if (type === 'locator') {
668
+ //
669
+ // `upload` rides the SAME branch rather than getting a case of its own. A file input is
670
+ // addressed by CSS in practice (`input[type=file]`, an id, a testid wrapper), and the selector
671
+ // reference has always documented `upload` as `page.locator(value).setInputFiles()` — so the
672
+ // two spellings must resolve identically or teams migrating off the workaround get a silent
673
+ // behaviour change. It had no case at all before, so it fell through to `default:` and
674
+ // compiled to `getByPlaceholder('<the CSS string>')` — a locator hunting an input whose
675
+ // placeholder ATTRIBUTE is the literal text `input[type=file]`, which no page has. It failed
676
+ // at run time with no diagnostic, and the only way out was to work out for oneself that
677
+ // `type: locator` had to be used instead, which no page of the reference says (issue #690).
678
+ //
679
+ // Handled HERE, above the generic `locator:`-field branch below, because that branch returns
680
+ // strategy 'css' and drops `exact` — putting `upload` in the switch left the two spellings
681
+ // diverging for any entry that sets `locator:`. `withExtras` still stamps the declared
682
+ // `selectorType`, so a consumer that needs to tell an upload from a plain locator still can.
683
+ //
684
+ // `exact` is inert for the upload action itself (`setInputFiles` takes no text filter), but it
685
+ // is NOT dead: the same key reused by a filtered step (`… with {{v}}`) reaches has-text-value,
686
+ // which reads `exact` regardless of strategy.
687
+ if (type === 'locator' || type === 'upload') {
497
688
  const locatorValue = locator && locator.trim() ? locator : value;
498
689
  return withExtras({
499
690
  strategy: 'locator',
@@ -526,21 +717,45 @@ class SelectorResolver {
526
717
  // reference text. For name-from-content roles (status/alert/…) that filter can
527
718
  // never match the live element (its accessible name is computed from its content,
528
719
  // e.g. a toast's message text) — issue #467. Opt out with `name: null`.
529
- if (entry.name === undefined && name && this.contentNamedRoles.includes(value)) {
720
+ //
721
+ // WEB ONLY. "The accessible name is computed from content" is an ARIA rule with no mobile
722
+ // counterpart: the appium template turns a role into an accessibility-id lookup, so
723
+ // `[Loading] spinner` → `~Loading` is exactly as legitimate a guess as `[Submit] button`
724
+ // → `~Submit`, which this compiler emits happily. On mobile the warning was therefore a
725
+ // false positive — and worse, its remedy made things strictly worse: `name: null` leaves
726
+ // the role nameless, which now renders as the role TOKEN and is refused outright (#665).
727
+ // A wrong selector fails loudly at run time; advice that manufactures a dead one does not.
728
+ if (this.platform !== 'mobile'
729
+ && entry.name === undefined && name && this.contentNamedRoles.includes(value)) {
530
730
  const warnKey = `${value}:${originalLabel}`;
531
731
  if (!this.warnedContentNamed.has(warnKey)) {
532
732
  this.warnedContentNamed.add(warnKey);
533
733
  this.diagnostics?.add('SG-W003', `role "${value}" derives its accessible name from content, but the entry for "${originalLabel}" has no name: — the defaulted { name: '${name}' } will likely never match. Set an explicit name: or opt out with name: null`, { feature: this.featureName });
534
734
  }
535
735
  }
536
- return withExtras({
537
- strategy: 'role',
538
- role: value,
539
- name: name, // Use the name field for accessible name
540
- value,
541
- nth,
542
- exact,
543
- });
736
+ {
737
+ const resolvedRole = withExtras({
738
+ strategy: 'role',
739
+ role: value,
740
+ name: name, // Use the name field for accessible name
741
+ value,
742
+ nth,
743
+ exact,
744
+ });
745
+ // #665 — the same dead selector as the auto-infer path, reached through an ENTRY: a
746
+ // list-member role withholds its name by design, and `name: null` is the documented
747
+ // opt-out for a content-named role. Either way a mobile role with no name renders as
748
+ // the role token. Different remedy from the auto-infer case, so a different message:
749
+ // the entry exists, it is the TYPE that cannot work here.
750
+ if (this.isUnusableMobileRole(resolvedRole)) {
751
+ throw new Error(`Selector "${originalLabel}" is \`type: role, value: ${value}\`${name === null ? ' with `name: null`' : ''}, ` +
752
+ `which resolves to a role with no accessible name. A native app has no role concept, so this compiles to ` +
753
+ `the accessibility-id "~${value}" — a string no Android/iOS a11y tree contains, and the step can never match. ` +
754
+ `Give this entry a locator the device actually exposes: \`type: accessibility-id\` (a content-desc / ` +
755
+ `accessibilityIdentifier), \`type: xpath\`, or \`type: id\`.`);
756
+ }
757
+ return resolvedRole;
758
+ }
544
759
  case 'testid':
545
760
  return withExtras({
546
761
  strategy: 'testid',
@@ -581,7 +796,14 @@ class SelectorResolver {
581
796
  exact,
582
797
  });
583
798
  default:
584
- // Fallback to placeholder
799
+ // Reached by the NON_STRATEGY_SELECTOR_TYPES (`page`/`table`/`column`/`frame`, whose
800
+ // consumers read the entry or `selectorType` rather than `strategy`) and by a type this
801
+ // compiler does not know at all — YAML is untyped at run time, so a misspelling lands
802
+ // here too. The placeholder result is inert for the first group and wrong for the second,
803
+ // but it MUST NOT throw: `page` alone reaches this branch on every page assertion.
804
+ // What must never arrive here is a STRATEGY type — that is the #690 defect, and
805
+ // tests/codegen/selector-type-dispatch.run.ts fails the build if one does (it checks the
806
+ // resolved strategy, so an early return above satisfies it as well as a `case` here).
585
807
  return withExtras({
586
808
  strategy: 'placeholder',
587
809
  value,
@@ -595,13 +817,17 @@ class SelectorResolver {
595
817
  * Returns metadata only - no framework-specific code
596
818
  */
597
819
  resolveByPriority(element) {
820
+ // The legacy format never passes through the SG-W018 file check (that walks new-format
821
+ // entries), so it is normalised here instead — a template must never see an index it cannot
822
+ // express, whichever door the entry came through.
823
+ const nth = (0, selector_nth_validation_1.normalizeNth)(element.nth);
598
824
  // Extract data-testid from locator if present
599
825
  const testIdMatch = element.locator.match(/\[data-testid=["']([^"']+)["']\]/);
600
826
  if (testIdMatch) {
601
827
  return {
602
828
  strategy: 'testid',
603
829
  value: testIdMatch[1],
604
- nth: element.nth,
830
+ nth,
605
831
  };
606
832
  }
607
833
  // Check type-based strategies
@@ -611,28 +837,28 @@ class SelectorResolver {
611
837
  role: 'button',
612
838
  name: element.value,
613
839
  value: element.value,
614
- nth: element.nth,
840
+ nth,
615
841
  };
616
842
  }
617
843
  if (element.type === 'placeholder' && element.value) {
618
844
  return {
619
845
  strategy: 'placeholder',
620
846
  value: element.value,
621
- nth: element.nth,
847
+ nth,
622
848
  };
623
849
  }
624
850
  if (element.type === 'label' && element.value) {
625
851
  return {
626
852
  strategy: 'label',
627
853
  value: element.value,
628
- nth: element.nth,
854
+ nth,
629
855
  };
630
856
  }
631
857
  if (element.type === 'text' && element.value) {
632
858
  return {
633
859
  strategy: 'text',
634
860
  value: element.value,
635
- nth: element.nth,
861
+ nth,
636
862
  };
637
863
  }
638
864
  // Extract #id from locator if present
@@ -642,7 +868,7 @@ class SelectorResolver {
642
868
  strategy: 'id',
643
869
  value: idMatch[1],
644
870
  locator: `#${idMatch[1]}`,
645
- nth: element.nth,
871
+ nth,
646
872
  };
647
873
  }
648
874
  // Fallback to CSS locator
@@ -650,7 +876,7 @@ class SelectorResolver {
650
876
  strategy: 'css',
651
877
  value: element.locator,
652
878
  locator: element.locator,
653
- nth: element.nth,
879
+ nth,
654
880
  };
655
881
  }
656
882
  /**
@@ -694,6 +920,26 @@ class SelectorResolver {
694
920
  Object.assign(selectors, SelectorResolver.normalizeKeys(featureSelectors));
695
921
  }
696
922
  }
923
+ // SG-W004 — a field nothing reads (#712). Reported HERE, at the one cached load point, so a
924
+ // table named by twenty row steps warns once rather than twenty times.
925
+ (0, selector_entry_fields_1.reportUnknownEntryFields)(selectors, {
926
+ feature: featureName,
927
+ diagnostics: this.diagnostics,
928
+ });
929
+ // SG-E027 — a `type:` nothing dispatches (#711). Same load point and same once-per-file
930
+ // reason as SG-W004 above: the two checks are the same question one level apart (an unknown
931
+ // KEY vs an unknown VALUE for a known key), and both want the file in hand to name the entry.
932
+ (0, selector_type_validation_1.reportUnknownSelectorTypes)(selectors, {
933
+ feature: featureName,
934
+ diagnostics: this.diagnostics,
935
+ });
936
+ // SG-W018 — an `nth:` value outside the contract (#720). Third of the same family at the same
937
+ // load point: SG-W004 asks whether anything READS the key, SG-E027 whether the `type:` VALUE
938
+ // dispatches, this one whether the `nth:` VALUE is an index the adapters can express.
939
+ (0, selector_nth_validation_1.reportInvalidNth)(selectors, {
940
+ feature: featureName,
941
+ diagnostics: this.diagnostics,
942
+ });
697
943
  this.selectorCache.set(cacheKey, selectors);
698
944
  return selectors;
699
945
  }
@@ -1 +1 @@
1
- {"version":3,"file":"selector-resolver.js","sourceRoot":"","sources":["../../../../src/generators/test-generator/utils/selector-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"selector-resolver.js","sourceRoot":"","sources":["../../../../src/generators/test-generator/utils/selector-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * SG-E027 — an entry `type:` the compiler does not know (issue #711).
3
+ *
4
+ * `selectors.yaml` is YAML, so `type:` is an arbitrary string at run time. `VALID_SELECTOR_TYPES`
5
+ * constrained it only through the `SelectorType` TypeScript union, and nothing imported that list
6
+ * for a runtime check — so any value the resolver did not recognise fell to the strategy switch's
7
+ * `default:` branch, which returns `{ strategy: 'placeholder' }`, and the entry's `value:` was
8
+ * emitted as literal placeholder text:
9
+ *
10
+ * save:
11
+ * type: 'testId' # note the capital I
12
+ * value: 'btn-save'
13
+ * → await page.getByPlaceholder('btn-save').click();
14
+ *
15
+ * Same family as #690 (a valid type with no dispatch) and #712 (a documented field with no
16
+ * consumer): the DECLARED surface was wider than the IMPLEMENTED one and nothing compared the two.
17
+ * Here the gap was the widest of the three, because an unknown type is not a fixed list of
18
+ * oversights — it is every possible misspelling.
19
+ *
20
+ * Checked HERE, at the selector-file load, rather than in the strategy switch. The switch CANNOT
21
+ * throw: `type: page` reaches its `default:` on every page assertion (its `value` is a URL, not a
22
+ * locator) and `StepMapper.checkPageStepFallback` resolves inside a try/catch that would read
23
+ * a throw as "not a page" and emit a false SG-W013. Validating at the load point also buys a
24
+ * better message — the file, the entry key and the nearest valid spelling — and reports once per
25
+ * entry rather than once per step that names it.
26
+ */
27
+ import type { DiagnosticsCollector } from '../diagnostics';
28
+ export interface UnknownSelectorType {
29
+ /** Dotted path to the offending entry, e.g. `save` or `greeting.ios`. */
30
+ path: string;
31
+ /** The unrecognised `type:` value exactly as written. */
32
+ type: string;
33
+ /** A near-miss valid type, when one is close enough to be worth naming. */
34
+ suggestion?: string;
35
+ }
36
+ /** Every entry in `file` whose `type:` is not a member of `VALID_SELECTOR_TYPES`. */
37
+ export declare function collectUnknownSelectorTypes(file: Record<string, unknown>): UnknownSelectorType[];
38
+ /** True when this entry kind is one the compiler knows how to resolve. */
39
+ export declare function isKnownSelectorType(type: unknown): boolean;
40
+ /**
41
+ * SG-E027 — report every entry whose `type:` nothing dispatches.
42
+ *
43
+ * Runs once per selector FILE (the resolver's load is cached), so an entry named by twenty steps
44
+ * is reported once. Silent when there is no diagnostics channel attached — `generate` must not
45
+ * depend on diagnostics being wired.
46
+ */
47
+ export declare function reportUnknownSelectorTypes(file: Record<string, unknown>, opts: {
48
+ feature?: string;
49
+ diagnostics?: DiagnosticsCollector;
50
+ }): void;
51
+ //# sourceMappingURL=selector-type-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector-type-validation.d.ts","sourceRoot":"","sources":["../../../../src/generators/test-generator/utils/selector-type-validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAK3D,MAAM,WAAW,mBAAmB;IAClC,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qFAAqF;AACrF,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,mBAAmB,EAAE,CAchG;AAED,0EAA0E;AAC1E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAE1D;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,oBAAoB,CAAA;CAAE,GAC7D,IAAI,CAaN"}