@sun-asterisk/sungen 3.2.29 → 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 (335) hide show
  1. package/dist/cli/commands/delivery.d.ts.map +1 -1
  2. package/dist/cli/commands/delivery.js +2 -1
  3. package/dist/cli/commands/delivery.js.map +1 -1
  4. package/dist/cli/commands/generate.d.ts.map +1 -1
  5. package/dist/cli/commands/generate.js +6 -2
  6. package/dist/cli/commands/generate.js.map +1 -1
  7. package/dist/cli/commands/inspect.js +1 -1
  8. package/dist/cli/commands/inspect.js.map +1 -1
  9. package/dist/cli/commands/results-merge.d.ts.map +1 -1
  10. package/dist/cli/commands/results-merge.js +9 -2
  11. package/dist/cli/commands/results-merge.js.map +1 -1
  12. package/dist/cli/commands/results-sanitize.d.ts +24 -0
  13. package/dist/cli/commands/results-sanitize.d.ts.map +1 -0
  14. package/dist/cli/commands/results-sanitize.js +126 -0
  15. package/dist/cli/commands/results-sanitize.js.map +1 -0
  16. package/dist/cli/commands/script-check.d.ts.map +1 -1
  17. package/dist/cli/commands/script-check.js +3 -1
  18. package/dist/cli/commands/script-check.js.map +1 -1
  19. package/dist/cli/commands/update.d.ts.map +1 -1
  20. package/dist/cli/commands/update.js +3 -0
  21. package/dist/cli/commands/update.js.map +1 -1
  22. package/dist/exporters/api-testcase-formatter.d.ts +3 -6
  23. package/dist/exporters/api-testcase-formatter.d.ts.map +1 -1
  24. package/dist/exporters/api-testcase-formatter.js +7 -10
  25. package/dist/exporters/api-testcase-formatter.js.map +1 -1
  26. package/dist/exporters/matrix/build.d.ts.map +1 -1
  27. package/dist/exporters/matrix/build.js +4 -2
  28. package/dist/exporters/matrix/build.js.map +1 -1
  29. package/dist/exporters/matrix/render-coverage-sheet.d.ts.map +1 -1
  30. package/dist/exporters/matrix/render-coverage-sheet.js +3 -1
  31. package/dist/exporters/matrix/render-coverage-sheet.js.map +1 -1
  32. package/dist/exporters/matrix/render-csv.d.ts.map +1 -1
  33. package/dist/exporters/matrix/render-csv.js +3 -1
  34. package/dist/exporters/matrix/render-csv.js.map +1 -1
  35. package/dist/exporters/matrix/render-overview-sheet.d.ts.map +1 -1
  36. package/dist/exporters/matrix/render-overview-sheet.js +5 -9
  37. package/dist/exporters/matrix/render-overview-sheet.js.map +1 -1
  38. package/dist/exporters/matrix/result-totals.d.ts +23 -0
  39. package/dist/exporters/matrix/result-totals.d.ts.map +1 -0
  40. package/dist/exporters/matrix/result-totals.js +21 -0
  41. package/dist/exporters/matrix/result-totals.js.map +1 -0
  42. package/dist/exporters/matrix/testcase-summary-band.d.ts.map +1 -1
  43. package/dist/exporters/matrix/testcase-summary-band.js +2 -6
  44. package/dist/exporters/matrix/testcase-summary-band.js.map +1 -1
  45. package/dist/exporters/qa-env-secret-denylist.js +2 -2
  46. package/dist/exporters/qa-env-secret-denylist.js.map +1 -1
  47. package/dist/exporters/report-path-sanitizer.d.ts +38 -0
  48. package/dist/exporters/report-path-sanitizer.d.ts.map +1 -0
  49. package/dist/exporters/report-path-sanitizer.js +137 -0
  50. package/dist/exporters/report-path-sanitizer.js.map +1 -0
  51. package/dist/exporters/result-variants.d.ts.map +1 -1
  52. package/dist/exporters/result-variants.js +2 -1
  53. package/dist/exporters/result-variants.js.map +1 -1
  54. package/dist/exporters/sensitive-key.d.ts +31 -0
  55. package/dist/exporters/sensitive-key.d.ts.map +1 -0
  56. package/dist/exporters/sensitive-key.js +50 -0
  57. package/dist/exporters/sensitive-key.js.map +1 -0
  58. package/dist/exporters/test-data-resolver.d.ts +4 -1
  59. package/dist/exporters/test-data-resolver.d.ts.map +1 -1
  60. package/dist/exporters/test-data-resolver.js +12 -2
  61. package/dist/exporters/test-data-resolver.js.map +1 -1
  62. package/dist/generators/gherkin-parser/index.d.ts +3 -0
  63. package/dist/generators/gherkin-parser/index.d.ts.map +1 -1
  64. package/dist/generators/gherkin-parser/index.js +17 -9
  65. package/dist/generators/gherkin-parser/index.js.map +1 -1
  66. package/dist/generators/gherkin-parser/parent-scope-clause.d.ts +54 -0
  67. package/dist/generators/gherkin-parser/parent-scope-clause.d.ts.map +1 -0
  68. package/dist/generators/gherkin-parser/parent-scope-clause.js +109 -0
  69. package/dist/generators/gherkin-parser/parent-scope-clause.js.map +1 -0
  70. package/dist/generators/test-generator/adapters/adapter-interface.d.ts +23 -18
  71. package/dist/generators/test-generator/adapters/adapter-interface.d.ts.map +1 -1
  72. package/dist/generators/test-generator/adapters/appium/appium-adapter.d.ts +4 -19
  73. package/dist/generators/test-generator/adapters/appium/appium-adapter.d.ts.map +1 -1
  74. package/dist/generators/test-generator/adapters/appium/appium-adapter.js.map +1 -1
  75. package/dist/generators/test-generator/adapters/appium/templates/after-all.hbs +18 -0
  76. package/dist/generators/test-generator/adapters/appium/templates/after-each.hbs +18 -0
  77. package/dist/generators/test-generator/adapters/appium/templates/before-all.hbs +18 -0
  78. package/dist/generators/test-generator/adapters/appium/templates/steps/actions/click-at-position-action.hbs +1 -0
  79. package/dist/generators/test-generator/adapters/appium/templates/steps/actions/click-element-with-text.hbs +1 -1
  80. package/dist/generators/test-generator/adapters/appium/templates/steps/actions/double-click-action.hbs +7 -0
  81. package/dist/generators/test-generator/adapters/appium/templates/steps/actions/frame-enter-action.hbs +3 -6
  82. package/dist/generators/test-generator/adapters/appium/templates/steps/actions/table-paginate-action.hbs +3 -0
  83. package/dist/generators/test-generator/adapters/appium/templates/steps/assertions/visible-assertion.hbs +1 -1
  84. package/dist/generators/test-generator/adapters/appium/templates/steps/gestures/long-press-action.hbs +4 -0
  85. package/dist/generators/test-generator/adapters/appium/templates/steps/gestures/pinch-zoom-action.hbs +4 -0
  86. package/dist/generators/test-generator/adapters/appium/templates/steps/partials/locator.hbs +9 -1
  87. package/dist/generators/test-generator/adapters/appium/templates/test-file.hbs +54 -23
  88. package/dist/generators/test-generator/adapters/index.d.ts +1 -1
  89. package/dist/generators/test-generator/adapters/index.d.ts.map +1 -1
  90. package/dist/generators/test-generator/adapters/playwright/playwright-adapter.d.ts +4 -19
  91. package/dist/generators/test-generator/adapters/playwright/playwright-adapter.d.ts.map +1 -1
  92. package/dist/generators/test-generator/adapters/playwright/playwright-adapter.js.map +1 -1
  93. package/dist/generators/test-generator/adapters/playwright/templates/after-all.hbs +19 -1
  94. package/dist/generators/test-generator/adapters/playwright/templates/after-each.hbs +18 -0
  95. package/dist/generators/test-generator/adapters/playwright/templates/before-all.hbs +19 -1
  96. package/dist/generators/test-generator/adapters/playwright/templates/imports.hbs +3 -0
  97. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/check-action.hbs +6 -1
  98. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/click-at-position-action.hbs +23 -0
  99. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/expand-action.hbs +8 -8
  100. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/fill-editor-action.hbs +7 -2
  101. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/table-action-in-row-nth.hbs +3 -1
  102. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/table-action-in-row.hbs +3 -1
  103. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/table-paginate-action.hbs +5 -0
  104. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/uncheck-action.hbs +3 -1
  105. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/unknown-element-action.hbs +1 -1
  106. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/wait-for-page.hbs +18 -1
  107. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/all-contain-assertion.hbs +32 -4
  108. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/all-contain-element.hbs +5 -2
  109. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/checked-assertion.hbs +5 -1
  110. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/column-cell-assertion.hbs +13 -2
  111. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/contain-text-assertion.hbs +1 -1
  112. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/disabled-with-role-variable-assertion.hbs +2 -2
  113. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/disabled-with-variable-assertion.hbs +1 -1
  114. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/have-text-assertion.hbs +1 -1
  115. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/hidden-with-role-variable-assertion.hbs +2 -2
  116. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/hidden-with-variable-assertion.hbs +1 -1
  117. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/not-checked-assertion.hbs +2 -1
  118. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/selected-assertion.hbs +14 -3
  119. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/state-with-filter-assertion.hbs +13 -2
  120. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-role-variable-assertion.hbs +3 -3
  121. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-value-assertion.hbs +1 -1
  122. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-variable-assertion.hbs +1 -1
  123. package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/checked-opts.hbs +8 -0
  124. package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/locator-nth.hbs +1 -1
  125. package/dist/generators/test-generator/adapters/playwright/templates/test-file.hbs +10 -8
  126. package/dist/generators/test-generator/code-generator.d.ts +37 -0
  127. package/dist/generators/test-generator/code-generator.d.ts.map +1 -1
  128. package/dist/generators/test-generator/code-generator.js +160 -39
  129. package/dist/generators/test-generator/code-generator.js.map +1 -1
  130. package/dist/generators/test-generator/diagnostics.d.ts +79 -5
  131. package/dist/generators/test-generator/diagnostics.d.ts.map +1 -1
  132. package/dist/generators/test-generator/diagnostics.js +78 -4
  133. package/dist/generators/test-generator/diagnostics.js.map +1 -1
  134. package/dist/generators/test-generator/patterns/index.d.ts +24 -5
  135. package/dist/generators/test-generator/patterns/index.d.ts.map +1 -1
  136. package/dist/generators/test-generator/patterns/index.js +92 -14
  137. package/dist/generators/test-generator/patterns/index.js.map +1 -1
  138. package/dist/generators/test-generator/patterns/with-parent-scope.d.ts +18 -0
  139. package/dist/generators/test-generator/patterns/with-parent-scope.d.ts.map +1 -0
  140. package/dist/generators/test-generator/patterns/with-parent-scope.js +40 -0
  141. package/dist/generators/test-generator/patterns/with-parent-scope.js.map +1 -0
  142. package/dist/generators/test-generator/step-mapper.d.ts +63 -9
  143. package/dist/generators/test-generator/step-mapper.d.ts.map +1 -1
  144. package/dist/generators/test-generator/step-mapper.js +166 -28
  145. package/dist/generators/test-generator/step-mapper.js.map +1 -1
  146. package/dist/generators/test-generator/template-engine.d.ts +4 -19
  147. package/dist/generators/test-generator/template-engine.d.ts.map +1 -1
  148. package/dist/generators/test-generator/template-engine.js +17 -12
  149. package/dist/generators/test-generator/template-engine.js.map +1 -1
  150. package/dist/generators/test-generator/utils/data-resolver.d.ts +7 -0
  151. package/dist/generators/test-generator/utils/data-resolver.d.ts.map +1 -1
  152. package/dist/generators/test-generator/utils/data-resolver.js +19 -2
  153. package/dist/generators/test-generator/utils/data-resolver.js.map +1 -1
  154. package/dist/generators/test-generator/utils/dialog-scope-identity.d.ts +41 -0
  155. package/dist/generators/test-generator/utils/dialog-scope-identity.d.ts.map +1 -0
  156. package/dist/generators/test-generator/utils/dialog-scope-identity.js +61 -0
  157. package/dist/generators/test-generator/utils/dialog-scope-identity.js.map +1 -0
  158. package/dist/generators/test-generator/utils/escape-js-string.d.ts +17 -0
  159. package/dist/generators/test-generator/utils/escape-js-string.d.ts.map +1 -0
  160. package/dist/generators/test-generator/utils/escape-js-string.js +29 -0
  161. package/dist/generators/test-generator/utils/escape-js-string.js.map +1 -0
  162. package/dist/generators/test-generator/utils/nearest-match.d.ts +24 -0
  163. package/dist/generators/test-generator/utils/nearest-match.d.ts.map +1 -0
  164. package/dist/generators/test-generator/utils/nearest-match.js +56 -0
  165. package/dist/generators/test-generator/utils/nearest-match.js.map +1 -0
  166. package/dist/generators/test-generator/utils/selector-entry-fields.d.ts +58 -0
  167. package/dist/generators/test-generator/utils/selector-entry-fields.d.ts.map +1 -0
  168. package/dist/generators/test-generator/utils/selector-entry-fields.js +119 -0
  169. package/dist/generators/test-generator/utils/selector-entry-fields.js.map +1 -0
  170. package/dist/generators/test-generator/utils/selector-entry-walk.d.ts +25 -0
  171. package/dist/generators/test-generator/utils/selector-entry-walk.d.ts.map +1 -0
  172. package/dist/generators/test-generator/utils/selector-entry-walk.js +54 -0
  173. package/dist/generators/test-generator/utils/selector-entry-walk.js.map +1 -0
  174. package/dist/generators/test-generator/utils/selector-nth-validation.d.ts +59 -0
  175. package/dist/generators/test-generator/utils/selector-nth-validation.d.ts.map +1 -0
  176. package/dist/generators/test-generator/utils/selector-nth-validation.js +91 -0
  177. package/dist/generators/test-generator/utils/selector-nth-validation.js.map +1 -0
  178. package/dist/generators/test-generator/utils/selector-resolver.d.ts +30 -1
  179. package/dist/generators/test-generator/utils/selector-resolver.d.ts.map +1 -1
  180. package/dist/generators/test-generator/utils/selector-resolver.js +195 -15
  181. package/dist/generators/test-generator/utils/selector-resolver.js.map +1 -1
  182. package/dist/generators/test-generator/utils/selector-type-validation.d.ts +51 -0
  183. package/dist/generators/test-generator/utils/selector-type-validation.d.ts.map +1 -0
  184. package/dist/generators/test-generator/utils/selector-type-validation.js +77 -0
  185. package/dist/generators/test-generator/utils/selector-type-validation.js.map +1 -0
  186. package/dist/harness/data-driven-lint.d.ts.map +1 -1
  187. package/dist/harness/data-driven-lint.js +217 -33
  188. package/dist/harness/data-driven-lint.js.map +1 -1
  189. package/dist/harness/script-check.d.ts +2 -2
  190. package/dist/harness/script-check.d.ts.map +1 -1
  191. package/dist/harness/script-check.js +186 -25
  192. package/dist/harness/script-check.js.map +1 -1
  193. package/dist/index.d.ts +2 -0
  194. package/dist/index.d.ts.map +1 -1
  195. package/dist/index.js +10 -1
  196. package/dist/index.js.map +1 -1
  197. package/dist/orchestrator/project-initializer.d.ts +6 -0
  198. package/dist/orchestrator/project-initializer.d.ts.map +1 -1
  199. package/dist/orchestrator/project-initializer.js +16 -0
  200. package/dist/orchestrator/project-initializer.js.map +1 -1
  201. package/dist/orchestrator/report-sanitize-reporter-install.d.ts +24 -0
  202. package/dist/orchestrator/report-sanitize-reporter-install.d.ts.map +1 -0
  203. package/dist/orchestrator/report-sanitize-reporter-install.js +161 -0
  204. package/dist/orchestrator/report-sanitize-reporter-install.js.map +1 -0
  205. package/dist/orchestrator/templates/ai-src/commands/run-test.md +9 -1
  206. package/dist/orchestrator/templates/ai-src/skills/sungen-api-coverage-model/SKILL.md +10 -0
  207. package/dist/orchestrator/templates/ai-src/skills/sungen-error-mapping/SKILL.md +14 -2
  208. package/dist/orchestrator/templates/ai-src/skills/sungen-gherkin-syntax/SKILL.md +108 -8
  209. package/dist/orchestrator/templates/ai-src/skills/sungen-selector-fix/SKILL.md +1 -0
  210. package/dist/orchestrator/templates/ai-src/skills/sungen-selector-keys/SKILL.md +9 -2
  211. package/dist/orchestrator/templates/ai-src/skills/sungen-tc-review/SKILL.md +4 -4
  212. package/dist/orchestrator/templates/playwright.config.ts +7 -0
  213. package/dist/orchestrator/templates/specs-checked-state.d.ts +83 -0
  214. package/dist/orchestrator/templates/specs-checked-state.d.ts.map +1 -0
  215. package/dist/orchestrator/templates/specs-checked-state.js +261 -0
  216. package/dist/orchestrator/templates/specs-checked-state.js.map +1 -0
  217. package/dist/orchestrator/templates/specs-checked-state.ts +324 -0
  218. package/dist/orchestrator/templates/specs-report-path-sanitize-reporter.d.ts +36 -0
  219. package/dist/orchestrator/templates/specs-report-path-sanitize-reporter.d.ts.map +1 -0
  220. package/dist/orchestrator/templates/specs-report-path-sanitize-reporter.js +155 -0
  221. package/dist/orchestrator/templates/specs-report-path-sanitize-reporter.js.map +1 -0
  222. package/dist/orchestrator/templates/specs-report-path-sanitize-reporter.ts +142 -0
  223. package/dist/orchestrator/templates/specs-url-assert.d.ts +50 -25
  224. package/dist/orchestrator/templates/specs-url-assert.d.ts.map +1 -1
  225. package/dist/orchestrator/templates/specs-url-assert.js +65 -24
  226. package/dist/orchestrator/templates/specs-url-assert.js.map +1 -1
  227. package/dist/orchestrator/templates/specs-url-assert.ts +101 -28
  228. package/dist/utils/selector-types.d.ts +43 -1
  229. package/dist/utils/selector-types.d.ts.map +1 -1
  230. package/dist/utils/selector-types.js +51 -7
  231. package/dist/utils/selector-types.js.map +1 -1
  232. package/package.json +3 -3
  233. package/src/cli/commands/delivery.ts +2 -1
  234. package/src/cli/commands/generate.ts +5 -2
  235. package/src/cli/commands/inspect.ts +1 -1
  236. package/src/cli/commands/results-merge.ts +9 -2
  237. package/src/cli/commands/results-sanitize.ts +98 -0
  238. package/src/cli/commands/script-check.ts +3 -1
  239. package/src/cli/commands/update.ts +3 -0
  240. package/src/exporters/api-testcase-formatter.ts +5 -7
  241. package/src/exporters/matrix/build.ts +4 -2
  242. package/src/exporters/matrix/render-coverage-sheet.ts +3 -1
  243. package/src/exporters/matrix/render-csv.ts +3 -1
  244. package/src/exporters/matrix/render-overview-sheet.ts +5 -10
  245. package/src/exporters/matrix/result-totals.ts +37 -0
  246. package/src/exporters/matrix/testcase-summary-band.ts +2 -7
  247. package/src/exporters/qa-env-secret-denylist.ts +1 -1
  248. package/src/exporters/report-path-sanitizer.ts +144 -0
  249. package/src/exporters/result-variants.ts +2 -1
  250. package/src/exporters/sensitive-key.ts +48 -0
  251. package/src/exporters/test-data-resolver.ts +12 -2
  252. package/src/generators/gherkin-parser/index.ts +21 -10
  253. package/src/generators/gherkin-parser/parent-scope-clause.ts +130 -0
  254. package/src/generators/test-generator/adapters/adapter-interface.ts +25 -3
  255. package/src/generators/test-generator/adapters/appium/appium-adapter.ts +4 -4
  256. package/src/generators/test-generator/adapters/appium/templates/after-all.hbs +18 -0
  257. package/src/generators/test-generator/adapters/appium/templates/after-each.hbs +18 -0
  258. package/src/generators/test-generator/adapters/appium/templates/before-all.hbs +18 -0
  259. package/src/generators/test-generator/adapters/appium/templates/steps/actions/click-at-position-action.hbs +1 -0
  260. package/src/generators/test-generator/adapters/appium/templates/steps/actions/click-element-with-text.hbs +1 -1
  261. package/src/generators/test-generator/adapters/appium/templates/steps/actions/double-click-action.hbs +7 -0
  262. package/src/generators/test-generator/adapters/appium/templates/steps/actions/frame-enter-action.hbs +3 -6
  263. package/src/generators/test-generator/adapters/appium/templates/steps/actions/table-paginate-action.hbs +3 -0
  264. package/src/generators/test-generator/adapters/appium/templates/steps/assertions/visible-assertion.hbs +1 -1
  265. package/src/generators/test-generator/adapters/appium/templates/steps/gestures/long-press-action.hbs +4 -0
  266. package/src/generators/test-generator/adapters/appium/templates/steps/gestures/pinch-zoom-action.hbs +4 -0
  267. package/src/generators/test-generator/adapters/appium/templates/steps/partials/locator.hbs +9 -1
  268. package/src/generators/test-generator/adapters/appium/templates/test-file.hbs +54 -23
  269. package/src/generators/test-generator/adapters/index.ts +1 -1
  270. package/src/generators/test-generator/adapters/playwright/playwright-adapter.ts +4 -4
  271. package/src/generators/test-generator/adapters/playwright/templates/after-all.hbs +19 -1
  272. package/src/generators/test-generator/adapters/playwright/templates/after-each.hbs +18 -0
  273. package/src/generators/test-generator/adapters/playwright/templates/before-all.hbs +19 -1
  274. package/src/generators/test-generator/adapters/playwright/templates/imports.hbs +3 -0
  275. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/check-action.hbs +6 -1
  276. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/click-at-position-action.hbs +23 -0
  277. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/expand-action.hbs +8 -8
  278. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/fill-editor-action.hbs +7 -2
  279. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/table-action-in-row-nth.hbs +3 -1
  280. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/table-action-in-row.hbs +3 -1
  281. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/table-paginate-action.hbs +5 -0
  282. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/uncheck-action.hbs +3 -1
  283. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/unknown-element-action.hbs +1 -1
  284. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/wait-for-page.hbs +18 -1
  285. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/all-contain-assertion.hbs +32 -4
  286. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/all-contain-element.hbs +5 -2
  287. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/checked-assertion.hbs +5 -1
  288. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/column-cell-assertion.hbs +13 -2
  289. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/contain-text-assertion.hbs +1 -1
  290. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/disabled-with-role-variable-assertion.hbs +2 -2
  291. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/disabled-with-variable-assertion.hbs +1 -1
  292. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/have-text-assertion.hbs +1 -1
  293. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/hidden-with-role-variable-assertion.hbs +2 -2
  294. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/hidden-with-variable-assertion.hbs +1 -1
  295. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/not-checked-assertion.hbs +2 -1
  296. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/selected-assertion.hbs +14 -3
  297. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/state-with-filter-assertion.hbs +13 -2
  298. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-role-variable-assertion.hbs +3 -3
  299. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-value-assertion.hbs +1 -1
  300. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-variable-assertion.hbs +1 -1
  301. package/src/generators/test-generator/adapters/playwright/templates/steps/partials/checked-opts.hbs +8 -0
  302. package/src/generators/test-generator/adapters/playwright/templates/steps/partials/locator-nth.hbs +1 -1
  303. package/src/generators/test-generator/adapters/playwright/templates/test-file.hbs +10 -8
  304. package/src/generators/test-generator/code-generator.ts +176 -45
  305. package/src/generators/test-generator/diagnostics.ts +79 -5
  306. package/src/generators/test-generator/patterns/index.ts +97 -16
  307. package/src/generators/test-generator/patterns/with-parent-scope.ts +41 -0
  308. package/src/generators/test-generator/step-mapper.ts +170 -26
  309. package/src/generators/test-generator/template-engine.ts +21 -21
  310. package/src/generators/test-generator/utils/data-resolver.ts +23 -2
  311. package/src/generators/test-generator/utils/dialog-scope-identity.ts +71 -0
  312. package/src/generators/test-generator/utils/escape-js-string.ts +24 -0
  313. package/src/generators/test-generator/utils/nearest-match.ts +55 -0
  314. package/src/generators/test-generator/utils/selector-entry-fields.ts +131 -0
  315. package/src/generators/test-generator/utils/selector-entry-walk.ts +58 -0
  316. package/src/generators/test-generator/utils/selector-nth-validation.ts +99 -0
  317. package/src/generators/test-generator/utils/selector-resolver.ts +245 -16
  318. package/src/generators/test-generator/utils/selector-type-validation.ts +87 -0
  319. package/src/harness/data-driven-lint.ts +192 -32
  320. package/src/harness/script-check.ts +186 -21
  321. package/src/index.ts +7 -0
  322. package/src/orchestrator/project-initializer.ts +17 -0
  323. package/src/orchestrator/report-sanitize-reporter-install.ts +109 -0
  324. package/src/orchestrator/templates/ai-src/commands/run-test.md +9 -1
  325. package/src/orchestrator/templates/ai-src/skills/sungen-api-coverage-model/SKILL.md +10 -0
  326. package/src/orchestrator/templates/ai-src/skills/sungen-error-mapping/SKILL.md +14 -2
  327. package/src/orchestrator/templates/ai-src/skills/sungen-gherkin-syntax/SKILL.md +108 -8
  328. package/src/orchestrator/templates/ai-src/skills/sungen-selector-fix/SKILL.md +1 -0
  329. package/src/orchestrator/templates/ai-src/skills/sungen-selector-keys/SKILL.md +9 -2
  330. package/src/orchestrator/templates/ai-src/skills/sungen-tc-review/SKILL.md +4 -4
  331. package/src/orchestrator/templates/playwright.config.ts +7 -0
  332. package/src/orchestrator/templates/specs-checked-state.ts +324 -0
  333. package/src/orchestrator/templates/specs-report-path-sanitize-reporter.ts +142 -0
  334. package/src/orchestrator/templates/specs-url-assert.ts +101 -28
  335. package/src/utils/selector-types.ts +54 -5
@@ -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"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ /**
3
+ * SG-E027 — an entry `type:` the compiler does not know (issue #711).
4
+ *
5
+ * `selectors.yaml` is YAML, so `type:` is an arbitrary string at run time. `VALID_SELECTOR_TYPES`
6
+ * constrained it only through the `SelectorType` TypeScript union, and nothing imported that list
7
+ * for a runtime check — so any value the resolver did not recognise fell to the strategy switch's
8
+ * `default:` branch, which returns `{ strategy: 'placeholder' }`, and the entry's `value:` was
9
+ * emitted as literal placeholder text:
10
+ *
11
+ * save:
12
+ * type: 'testId' # note the capital I
13
+ * value: 'btn-save'
14
+ * → await page.getByPlaceholder('btn-save').click();
15
+ *
16
+ * Same family as #690 (a valid type with no dispatch) and #712 (a documented field with no
17
+ * consumer): the DECLARED surface was wider than the IMPLEMENTED one and nothing compared the two.
18
+ * Here the gap was the widest of the three, because an unknown type is not a fixed list of
19
+ * oversights — it is every possible misspelling.
20
+ *
21
+ * Checked HERE, at the selector-file load, rather than in the strategy switch. The switch CANNOT
22
+ * throw: `type: page` reaches its `default:` on every page assertion (its `value` is a URL, not a
23
+ * locator) and `StepMapper.checkPageStepFallback` resolves inside a try/catch that would read
24
+ * a throw as "not a page" and emit a false SG-W013. Validating at the load point also buys a
25
+ * better message — the file, the entry key and the nearest valid spelling — and reports once per
26
+ * entry rather than once per step that names it.
27
+ */
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.collectUnknownSelectorTypes = collectUnknownSelectorTypes;
30
+ exports.isKnownSelectorType = isKnownSelectorType;
31
+ exports.reportUnknownSelectorTypes = reportUnknownSelectorTypes;
32
+ const selector_types_1 = require("../../../utils/selector-types");
33
+ const nearest_match_1 = require("./nearest-match");
34
+ const selector_entry_walk_1 = require("./selector-entry-walk");
35
+ /** Every entry in `file` whose `type:` is not a member of `VALID_SELECTOR_TYPES`. */
36
+ function collectUnknownSelectorTypes(file) {
37
+ const out = [];
38
+ (0, selector_entry_walk_1.walkSelectorEntries)(file, {
39
+ entry(entry, path) {
40
+ const type = entry.type;
41
+ // Only a STRING type is judged here. A non-string `type:` (a YAML nesting slip) is a
42
+ // different defect with a different fix, and SG-W004's field walk is not the owner of it
43
+ // either — naming it as an unknown type would print `[object Object]` at the author.
44
+ if (typeof type !== 'string')
45
+ return;
46
+ if (selector_types_1.VALID_SELECTOR_TYPES.includes(type))
47
+ return;
48
+ out.push({ path, type, suggestion: (0, nearest_match_1.nearestMatch)(type, selector_types_1.VALID_SELECTOR_TYPES) });
49
+ },
50
+ });
51
+ return out;
52
+ }
53
+ /** True when this entry kind is one the compiler knows how to resolve. */
54
+ function isKnownSelectorType(type) {
55
+ return typeof type === 'string' && selector_types_1.VALID_SELECTOR_TYPES.includes(type);
56
+ }
57
+ /**
58
+ * SG-E027 — report every entry whose `type:` nothing dispatches.
59
+ *
60
+ * Runs once per selector FILE (the resolver's load is cached), so an entry named by twenty steps
61
+ * is reported once. Silent when there is no diagnostics channel attached — `generate` must not
62
+ * depend on diagnostics being wired.
63
+ */
64
+ function reportUnknownSelectorTypes(file, opts) {
65
+ const sink = opts.diagnostics;
66
+ if (!sink)
67
+ return;
68
+ for (const { path, type, suggestion } of collectUnknownSelectorTypes(file)) {
69
+ const hint = suggestion
70
+ ? ` Did you mean "${suggestion}"?`
71
+ : ` Valid types: ${selector_types_1.VALID_SELECTOR_TYPES.join(', ')}.`;
72
+ sink.add('SG-E027', `selectors.yaml entry "${path}" declares type: "${type}", which is not a selector type — `
73
+ + `the entry resolves to getByPlaceholder("<its value>"), a locator that cannot match, so `
74
+ + `every step naming it now throws instead of failing later as a mystery timeout.${hint}`, { feature: opts.feature });
75
+ }
76
+ }
77
+ //# sourceMappingURL=selector-type-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector-type-validation.js","sourceRoot":"","sources":["../../../../src/generators/test-generator/utils/selector-type-validation.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;;AAiBH,kEAcC;AAGD,kDAEC;AASD,gEAgBC;AA1DD,kEAAqE;AACrE,mDAA+C;AAC/C,+DAA4D;AAW5D,qFAAqF;AACrF,SAAgB,2BAA2B,CAAC,IAA6B;IACvE,MAAM,GAAG,GAA0B,EAAE,CAAC;IACtC,IAAA,yCAAmB,EAAC,IAAI,EAAE;QACxB,KAAK,CAAC,KAAK,EAAE,IAAI;YACf,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,qFAAqF;YACrF,yFAAyF;YACzF,qFAAqF;YACrF,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO;YACrC,IAAK,qCAA0C,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO;YACvE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAA,4BAAY,EAAC,IAAI,EAAE,qCAAoB,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;KACF,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,0EAA0E;AAC1E,SAAgB,mBAAmB,CAAC,IAAa;IAC/C,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAK,qCAA0C,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChG,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,0BAA0B,CACxC,IAA6B,EAC7B,IAA8D;IAE9D,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;IAC9B,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,GAAG,UAAU;YACrB,CAAC,CAAC,kBAAkB,UAAU,IAAI;YAClC,CAAC,CAAC,iBAAiB,qCAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACxD,IAAI,CAAC,GAAG,CAAC,SAAS,EAChB,yBAAyB,IAAI,qBAAqB,IAAI,oCAAoC;cACxF,yFAAyF;cACzF,iFAAiF,IAAI,EAAE,EACzF,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"data-driven-lint.d.ts","sourceRoot":"","sources":["../../src/harness/data-driven-lint.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAwBD,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,iBAAiB,EAAE,CAmGlG"}
1
+ {"version":3,"file":"data-driven-lint.d.ts","sourceRoot":"","sources":["../../src/harness/data-driven-lint.ts"],"names":[],"mappings":"AAgCA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AA0HD,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,iBAAiB,EAAE,CAgJlG"}
@@ -39,8 +39,25 @@ exports.lintDataDriven = lintDataDriven;
39
39
  *
40
40
  * Advisory (warn, never block) — surfaced after `sungen generate`. Catches the silent
41
41
  * footguns: a `{{var}}` in a @cases scenario that is neither a row column nor a top-level
42
- * key, a name collision that shadows a top-level value, inconsistent dataset rows, and a
43
- * @query whose param has no value / whose name doesn't resolve.
42
+ * key, a name collision that shadows a top-level value, inconsistent dataset rows, a
43
+ * @query whose param has no value / whose name doesn't resolve, and a top-level test-data
44
+ * key nothing binds (dead data).
45
+ *
46
+ * "Referenced" is what the COMPILER and the RUNTIME actually read, not just `{{key}}` in a step:
47
+ * - `{{key…}}` in any step, or in the comments of a `@manual` scenario (its tester procedure is
48
+ * the only body it has — the delivery exports those refs, so they are not dead);
49
+ * - a `@cases:<key>` dataset;
50
+ * - an override value `…={{key…}}` on an @api/@query annotation;
51
+ * - a @query or @api param bound IMPLICITLY by name — `params: [user_email]` with no override
52
+ * reads `testData.raw("user_email")` at run time (driver-db / driver-api), so the key is live
53
+ * even though no `{{user_email}}` appears anywhere;
54
+ * - `{{key}}` in the unit's selectors (locale-aware names) or mock catalog (mock bodies).
55
+ * Keys that start with `_` are Data Factory metadata (`_generated_by`, `_fingerprint`), never
56
+ * scenario data — the factory itself skips them by the same rule.
57
+ * The FORWARD direction is checked here too: a `{{x}}` in a plain scenario whose head is neither a
58
+ * test-data key nor bound at run time compiles to the literal text `'${x}'` — the step types the
59
+ * placeholder into the field and the scenario runs green having tested nothing. The compiler emits
60
+ * no diagnostic for that fallback, so this lint names it.
44
61
  */
45
62
  const fs = __importStar(require("fs"));
46
63
  const path = __importStar(require("path"));
@@ -49,15 +66,123 @@ const yaml_1 = require("yaml");
49
66
  const gherkin_parser_1 = require("../generators/gherkin-parser");
50
67
  const query_catalog_1 = require("./query-catalog");
51
68
  const ROW_META = new Set(['case', 'name', 'label', '__label']);
52
- /** Collect the inner text of every `{{…}}` reference in a scenario's steps. */
53
- function collectRefs(sc) {
69
+ /**
70
+ * Collect the inner text of every `{{…}}` reference in a scenario's steps — and, for a `@manual`
71
+ * scenario, in its comments: the `# Tester verifies: …` procedure is its only body and the delivery
72
+ * exporter reads those refs. Other scenarios' comments are NOT scanned: a ref mentioned only in
73
+ * prose would otherwise hide a genuinely dead key.
74
+ */
75
+ function collectRefs(sc, manual = isManualScenario(sc)) {
54
76
  const refs = new Set();
55
- for (const st of sc.steps || []) {
56
- for (const m of (st.text || '').matchAll(/\{\{\s*([^}]+?)\s*\}\}/g))
77
+ const texts = (sc.steps || []).map((st) => st.text || '');
78
+ if (manual)
79
+ texts.push(...(sc.comments || []));
80
+ for (const text of texts) {
81
+ for (const m of text.matchAll(/\{\{\s*([^}]+?)\s*\}\}/g))
57
82
  refs.add(m[1]);
58
83
  }
59
84
  return [...refs];
60
85
  }
86
+ function isManualScenario(sc) {
87
+ return (sc.tags || []).some((t) => t === '@manual' || t.startsWith('@manual:'));
88
+ }
89
+ /** Variable heads a scenario binds at RUN time: `@api:<name>`/`@query:<name>` responses and `remember … as {{v}}` captures. */
90
+ function runtimeBoundHeads(sc) {
91
+ const out = new Set();
92
+ for (const t of sc.tags || []) {
93
+ const m = t.match(/^@(?:api|query):([A-Za-z_]\w*)/);
94
+ if (m)
95
+ out.add(m[1]);
96
+ }
97
+ for (const st of sc.steps || []) {
98
+ for (const m of (st.text || '').matchAll(/\bas\s+\{\{\s*([^}.[\s]+)/g))
99
+ out.add(m[1]);
100
+ }
101
+ return out;
102
+ }
103
+ /**
104
+ * The unit id the catalogs are resolved by — the path under `qa/`, with the `screens/` prefix
105
+ * dropped: `qa/screens/login` → `login`, `qa/flows/checkout` → `flows/checkout`, `qa/api/pet` →
106
+ * `api/pet`, `qa/api/flows/signup` → `api/flows/signup`. `generate` hands every unit kind to this
107
+ * lint; a bare basename sent an api unit's `@query` to `qa/screens/<area>/database/` and reported
108
+ * every query as "not found".
109
+ */
110
+ function unitIdOf(unitDir) {
111
+ const parts = path.resolve(unitDir).split(path.sep);
112
+ const qa = parts.lastIndexOf('qa', parts.length - 2); // a unit itself named `qa` is not the qa/ root
113
+ if (qa < 0) {
114
+ const base = path.basename(unitDir);
115
+ return path.basename(path.dirname(unitDir)) === 'flows' ? `flows/${base}` : base;
116
+ }
117
+ const rel = parts.slice(qa + 1);
118
+ return (rel[0] === 'screens' ? rel.slice(1) : rel).join('/');
119
+ }
120
+ /**
121
+ * `{{key}}` refs the unit's OTHER authored files carry — a locale-aware selector (`name: '{{lbl_submit}}'`,
122
+ * resolved from test-data by the selector resolver) and a mock body (`body: "{{mock_search_body}}"`,
123
+ * bound by the mock driver at compile time). A key used only there is live, not dead.
124
+ */
125
+ function refsInUnitFiles(unitDir) {
126
+ const out = new Set();
127
+ for (const sub of ['selectors', 'mock']) {
128
+ const dir = path.join(unitDir, sub);
129
+ if (!fs.existsSync(dir))
130
+ continue;
131
+ for (const f of fs.readdirSync(dir)) {
132
+ if (!/\.ya?ml$/.test(f))
133
+ continue;
134
+ const text = fs.readFileSync(path.join(dir, f), 'utf8');
135
+ for (const m of text.matchAll(/\{\{\s*([^}$][^}]*?)\s*\}\}/g))
136
+ out.add(m[1].split(/[.[]/)[0]);
137
+ }
138
+ }
139
+ return out;
140
+ }
141
+ /**
142
+ * Param names of the `@api:<name>` entries a unit can reference — declared `params:`, else the
143
+ * `:name` placeholders in path/body/headers (the same derivation the API driver applies). Read
144
+ * straight from the catalog files: a param not overridden in the annotation is bound at run time by
145
+ * NAME from test-data (`testData.raw("petId")`), so that key is live even with no `{{petId}}` anywhere.
146
+ * Best-effort — a missing or unparseable catalog contributes nothing (the api driver's own sensor
147
+ * reports those).
148
+ */
149
+ function apiParamsByName(unitId, cwd) {
150
+ const out = new Map();
151
+ const unitCatalog = unitId.startsWith('api/') || unitId.startsWith('flows/')
152
+ ? path.join(cwd, 'qa', unitId, 'api', 'apis.yaml')
153
+ : path.join(cwd, 'qa', 'screens', unitId, 'api', 'apis.yaml');
154
+ for (const file of [unitCatalog, path.join(cwd, 'qa', 'api', 'apis.yaml')]) {
155
+ if (!fs.existsSync(file))
156
+ continue;
157
+ let raw;
158
+ try {
159
+ raw = (0, yaml_1.parse)(fs.readFileSync(file, 'utf8')) || {};
160
+ }
161
+ catch {
162
+ continue;
163
+ }
164
+ const root = raw && typeof raw === 'object' && raw.apis && typeof raw.apis === 'object' ? raw.apis : raw;
165
+ for (const [name, v] of Object.entries(root)) {
166
+ if (!v || typeof v !== 'object' || typeof v.method !== 'string' || typeof v.path !== 'string')
167
+ continue;
168
+ if (out.has(name))
169
+ continue; // unit catalog wins over the shared one
170
+ // Same rule as the driver's apiParamNames: declared `params` when non-empty, else the `:name`
171
+ // placeholders of path/body/headers/files/bodyFile — except an XML string body, whose `:` are
172
+ // namespaces, where only declared params count.
173
+ const declared = Array.isArray(v.params) && v.params.length ? v.params.map(String) : null;
174
+ const refs = new Set();
175
+ const xmlBody = v.encoding === 'xml' && typeof v.body === 'string';
176
+ const texts = [v.path, xmlBody ? '' : JSON.stringify(v.body ?? ''), JSON.stringify(v.headers ?? ''), JSON.stringify(v.files ?? ''), JSON.stringify(v.bodyFile ?? '')];
177
+ for (const text of texts) {
178
+ for (const m of String(text).matchAll(/:([A-Za-z_][A-Za-z0-9_]*)/g))
179
+ refs.add(m[1]);
180
+ }
181
+ out.set(name, declared ?? (xmlBody ? [] : [...refs]));
182
+ }
183
+ }
184
+ return out;
185
+ }
61
186
  /** Keys overridden in a `@query:name(a=…,b=…)` annotation. */
62
187
  function overrideKeys(raw) {
63
188
  const out = new Set();
@@ -73,29 +198,84 @@ function overrideKeys(raw) {
73
198
  /** Lint the @cases/@query usage of one screen/flow directory. Returns advisory warnings. */
74
199
  function lintDataDriven(screenDir, cwd = process.cwd()) {
75
200
  const base = path.basename(screenDir);
76
- const isFlow = path.basename(path.dirname(screenDir)) === 'flows';
77
- const screenName = isFlow ? `flows/${base}` : base;
201
+ const screenName = unitIdOf(screenDir);
78
202
  // Every `.feature` of the unit — `add --feature` sub-features lint too. A file that
79
203
  // fails to parse contributes nothing rather than voiding the whole unit's lint.
80
- const scenarios = (0, unit_paths_1.featureFilesFor)(screenDir, base)
81
- .filter((p) => fs.existsSync(p))
82
- .flatMap((p) => {
204
+ const scenarios = [];
205
+ const featureTags = [];
206
+ for (const p of (0, unit_paths_1.featureFilesFor)(screenDir, base).filter((f) => fs.existsSync(f))) {
83
207
  try {
84
- return new gherkin_parser_1.GherkinParser().parseFeatureFile(p).scenarios || [];
208
+ const feature = new gherkin_parser_1.GherkinParser().parseFeatureFile(p);
209
+ scenarios.push(...(feature.scenarios || []));
210
+ featureTags.push(...(feature.tags || []));
85
211
  }
86
212
  catch {
87
- return [];
213
+ /* a file that fails to parse contributes nothing */
88
214
  }
89
- });
215
+ }
90
216
  if (scenarios.length === 0)
91
217
  return [];
92
218
  const tdPath = path.join(screenDir, 'test-data', `${base}.yaml`);
93
219
  const td = tdPath && fs.existsSync(tdPath) ? (0, yaml_1.parse)(fs.readFileSync(tdPath, 'utf8')) || {} : {};
94
220
  const topKeys = new Set(Object.keys(td));
95
221
  const warns = [];
222
+ // Bindings a `@beforeAll` hook's `@api:`/`@query:` preconditions make are readable from EVERY
223
+ // scenario of the feature (the compiler registers them feature-wide). A `remember … as` inside the
224
+ // hook is NOT — it stays hook-local — so only the tag-bound names are exempted here.
225
+ const featureBound = new Set();
226
+ for (const sc of scenarios) {
227
+ if (sc.hookType !== 'beforeAll')
228
+ continue;
229
+ for (const t of sc.tags || []) {
230
+ const m = t.match(/^@(?:api|query):([A-Za-z_]\w*)/);
231
+ if (m)
232
+ featureBound.add(m[1]);
233
+ }
234
+ }
235
+ // H3: an `@extend:<base>` scenario runs the base's steps first — the base's captures bind for it.
236
+ const stepsBase = new Map();
237
+ for (const sc of scenarios)
238
+ if (sc.stepsName)
239
+ stepsBase.set(sc.stepsName, sc);
240
+ // `{{key}}` refs carried by the unit's selectors (i18n) and mock catalog are live too.
241
+ const fileRefs = refsInUnitFiles(screenDir);
242
+ // A feature-level `@manual` makes every scenario manual (the whole file is skipped by the compiler).
243
+ const featureManual = featureTags.some((t) => t === '@manual' || t.startsWith('@manual:'));
244
+ // What the scenarios bind, collected up front — the @query pass below adds the params it binds by name.
245
+ const usedHeads = new Set();
246
+ const usedDatasets = new Set();
247
+ const apiParams = apiParamsByName(screenName, cwd);
248
+ for (const h of fileRefs)
249
+ usedHeads.add(h);
250
+ for (const sc of scenarios) {
251
+ for (const r of collectRefs(sc, featureManual || isManualScenario(sc)))
252
+ usedHeads.add(r.split(/[.[]/)[0]);
253
+ for (const t of sc.tags || []) {
254
+ const cm = t.match(/^@cases:(.+)$/);
255
+ if (cm)
256
+ usedDatasets.add(cm[1].trim());
257
+ const om = t.match(/^@(?:api|query):[A-Za-z_]\w*\((.*)\)$/);
258
+ if (om)
259
+ for (const ref of om[1].matchAll(/\{\{\s*([^}]+?)\s*\}\}/g))
260
+ usedHeads.add(ref[1].split(/[.[]/)[0].trim());
261
+ // `@api:<name>` params not overridden in the annotation are read from test-data BY NAME at run time.
262
+ const am = t.match(/^@api:([A-Za-z_]\w*)(?:\((.*)\))?$/);
263
+ if (am) {
264
+ const overrides = overrideKeys(am[2]);
265
+ for (const p of apiParams.get(am[1]) ?? [])
266
+ if (!overrides.has(p))
267
+ usedHeads.add(p);
268
+ }
269
+ }
270
+ }
96
271
  for (const sc of scenarios) {
97
272
  const tags = sc.tags || [];
98
- const refs = collectRefs(sc);
273
+ const manual = featureManual || isManualScenario(sc);
274
+ const refs = collectRefs(sc, manual);
275
+ const bound = runtimeBoundHeads(sc);
276
+ if (sc.extendsName && stepsBase.has(sc.extendsName))
277
+ for (const h of runtimeBoundHeads(stepsBase.get(sc.extendsName)))
278
+ bound.add(h);
99
279
  // --- @cases -----------------------------------------------------------
100
280
  const casesTag = tags.find((t) => t.startsWith('@cases:'));
101
281
  if (casesTag) {
@@ -117,12 +297,26 @@ function lintDataDriven(screenDir, cwd = process.cwd()) {
117
297
  }
118
298
  for (const r of refs) {
119
299
  const head = r.split(/[.[]/)[0];
300
+ // `{{$uuid}}` is resolved at run time; `{{login.status}}` / `{{captured}}` are bound by the
301
+ // scenario's own @api/@query call or `remember … as` — none of them is test-data.
302
+ if (head.startsWith('$') || bound.has(head))
303
+ continue;
120
304
  if (!allCols.has(head) && !topKeys.has(head)) {
121
305
  warns.push({ scenario: sc.name, message: `@cases:${ds} → {{${r}}} is neither a dataset column nor a top-level test-data key.` });
122
306
  }
123
307
  }
124
308
  }
125
309
  }
310
+ // --- forward: a ref in a PLAIN scenario that nothing provides ----------------------------
311
+ // (@cases scenarios are covered above with their row columns; hooks bind their own refs)
312
+ if (!casesTag && !manual) { // a @manual scenario is never compiled — nothing to say about literals
313
+ for (const r of refs) {
314
+ const head = r.split(/[.[]/)[0];
315
+ if (head.startsWith('$') || bound.has(head) || featureBound.has(head) || topKeys.has(head))
316
+ continue;
317
+ warns.push({ scenario: sc.name, message: `{{${r}}} is not a test-data key and nothing binds it at run time — it compiles to the literal text '\${${r}}' (add the key to test-data, or fix the ref).` });
318
+ }
319
+ }
126
320
  // --- @query -----------------------------------------------------------
127
321
  for (const t of tags) {
128
322
  const m = t.match(/^@query:([A-Za-z_][A-Za-z0-9_]*)(?:\((.*)\))?$/);
@@ -139,31 +333,21 @@ function lintDataDriven(screenDir, cwd = process.cwd()) {
139
333
  continue;
140
334
  }
141
335
  for (const p of entry.params || []) {
142
- if (!overrides.has(p) && !topKeys.has(p)) {
336
+ if (overrides.has(p))
337
+ continue;
338
+ // Not overridden → the runtime reads `testData.raw("<p>")`: the key IS referenced, by name.
339
+ usedHeads.add(p);
340
+ if (!topKeys.has(p)) {
143
341
  warns.push({ scenario: sc.name, message: `@query:${name} → param "${p}" has no value: not in the annotation and not a top-level test-data key.` });
144
342
  }
145
343
  }
146
344
  }
147
345
  }
148
346
  // --- orphan test-data: a top-level key never referenced (dead data — generated but not
149
- // materialized into a scenario). Referenced = a `{{key…}}` in any step, a `@cases:<key>`
150
- // dataset, or an override value `…={{key…}}` on an @api/@query annotation.
151
- const usedHeads = new Set();
152
- const usedDatasets = new Set();
153
- for (const sc of scenarios) {
154
- for (const r of collectRefs(sc))
155
- usedHeads.add(r.split(/[.[]/)[0]);
156
- for (const t of sc.tags || []) {
157
- const cm = t.match(/^@cases:(.+)$/);
158
- if (cm)
159
- usedDatasets.add(cm[1].trim());
160
- const om = t.match(/^@(?:api|query):[A-Za-z_]\w*\((.*)\)$/);
161
- if (om)
162
- for (const ref of om[1].matchAll(/\{\{\s*([^}]+?)\s*\}\}/g))
163
- usedHeads.add(ref[1].split(/[.[]/)[0].trim());
164
- }
165
- }
347
+ // materialized into a scenario). See the header for what counts as referenced.
166
348
  for (const k of topKeys) {
349
+ if (k.startsWith('_'))
350
+ continue; // Data Factory metadata, not scenario data
167
351
  if (!usedHeads.has(k) && !usedDatasets.has(k)) {
168
352
  warns.push({ message: `test-data key "${k}" is defined but never referenced ({{${k}}}, a @cases dataset, or an override) — dead data: bind it into a scenario or remove it.` });
169
353
  }