@futdevpro/dynamo-e2e 1.18.10 → 1.18.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (336) hide show
  1. package/CHANGELOG.md +12 -2
  2. package/LICENSE +21 -0
  3. package/README.md +3 -0
  4. package/build/_modules/game/_models/game-contracts.interface.d.ts +82 -0
  5. package/build/_modules/game/_models/game-contracts.interface.d.ts.map +1 -0
  6. package/build/_modules/game/_models/game-contracts.interface.js +3 -0
  7. package/build/_modules/game/_models/game-contracts.interface.js.map +1 -0
  8. package/build/_modules/game/game-seam.helper.d.ts +40 -0
  9. package/build/_modules/game/game-seam.helper.d.ts.map +1 -0
  10. package/build/_modules/game/game-seam.helper.js +254 -0
  11. package/build/_modules/game/game-seam.helper.js.map +1 -0
  12. package/build/_modules/game/index.d.ts +4 -0
  13. package/build/_modules/game/index.d.ts.map +1 -0
  14. package/build/_modules/game/index.js +20 -0
  15. package/build/_modules/game/index.js.map +1 -0
  16. package/build/_modules/game/journey-catalog.validator.d.ts +5 -0
  17. package/build/_modules/game/journey-catalog.validator.d.ts.map +1 -0
  18. package/build/_modules/game/journey-catalog.validator.js +244 -0
  19. package/build/_modules/game/journey-catalog.validator.js.map +1 -0
  20. package/build/_modules/generators/_collections/form-level-emission.util.d.ts.map +1 -1
  21. package/build/_modules/generators/_collections/form-level-emission.util.js +8 -0
  22. package/build/_modules/generators/_collections/form-level-emission.util.js.map +1 -1
  23. package/build/_modules/generators/_models/form-settings-shape.interface.d.ts +7 -0
  24. package/build/_modules/generators/_models/form-settings-shape.interface.d.ts.map +1 -1
  25. package/build/_modules/presets/_collections/playwright-config.factory.d.ts.map +1 -1
  26. package/build/_modules/presets/_collections/playwright-config.factory.js +6 -0
  27. package/build/_modules/presets/_collections/playwright-config.factory.js.map +1 -1
  28. package/build/_modules/presets/_models/interfaces/playwright-config-options.interface.d.ts +4 -0
  29. package/build/_modules/presets/_models/interfaces/playwright-config-options.interface.d.ts.map +1 -1
  30. package/build/_modules/vqa/generators/ai-agent-readme.template.js +1 -1
  31. package/build/index.d.ts +1 -0
  32. package/build/index.d.ts.map +1 -1
  33. package/build/index.js +2 -1
  34. package/build/index.js.map +1 -1
  35. package/package.json +12 -5
  36. package/.c8rc.json +0 -25
  37. package/.dynamo/pipeline.cicd.config.json +0 -167
  38. package/.dynamo/version-bump.config.json +0 -5
  39. package/.github/workflows/main.yml +0 -35
  40. package/BUILD.md +0 -36
  41. package/CONTRIBUTING.md +0 -90
  42. package/build/_modules/contracts/contracts.spec.d.ts +0 -2
  43. package/build/_modules/contracts/contracts.spec.d.ts.map +0 -1
  44. package/build/_modules/contracts/contracts.spec.js +0 -144
  45. package/build/_modules/contracts/contracts.spec.js.map +0 -1
  46. package/build/_modules/cwv/cwv-comparison.spec.d.ts +0 -2
  47. package/build/_modules/cwv/cwv-comparison.spec.d.ts.map +0 -1
  48. package/build/_modules/cwv/cwv-comparison.spec.js +0 -77
  49. package/build/_modules/cwv/cwv-comparison.spec.js.map +0 -1
  50. package/build/_modules/cwv/cwv-diagnose.spec.d.ts +0 -2
  51. package/build/_modules/cwv/cwv-diagnose.spec.d.ts.map +0 -1
  52. package/build/_modules/cwv/cwv-diagnose.spec.js +0 -78
  53. package/build/_modules/cwv/cwv-diagnose.spec.js.map +0 -1
  54. package/build/_modules/cwv/cwv-suite.generator.spec.d.ts +0 -2
  55. package/build/_modules/cwv/cwv-suite.generator.spec.d.ts.map +0 -1
  56. package/build/_modules/cwv/cwv-suite.generator.spec.js +0 -81
  57. package/build/_modules/cwv/cwv-suite.generator.spec.js.map +0 -1
  58. package/build/_modules/cwv/cwv-summarize.spec.d.ts +0 -2
  59. package/build/_modules/cwv/cwv-summarize.spec.d.ts.map +0 -1
  60. package/build/_modules/cwv/cwv-summarize.spec.js +0 -70
  61. package/build/_modules/cwv/cwv-summarize.spec.js.map +0 -1
  62. package/build/_modules/cwv/inp-emit-integration.spec.d.ts +0 -2
  63. package/build/_modules/cwv/inp-emit-integration.spec.d.ts.map +0 -1
  64. package/build/_modules/cwv/inp-emit-integration.spec.js +0 -43
  65. package/build/_modules/cwv/inp-emit-integration.spec.js.map +0 -1
  66. package/build/_modules/cwv/inp-interaction-driver.spec.d.ts +0 -2
  67. package/build/_modules/cwv/inp-interaction-driver.spec.d.ts.map +0 -1
  68. package/build/_modules/cwv/inp-interaction-driver.spec.js +0 -44
  69. package/build/_modules/cwv/inp-interaction-driver.spec.js.map +0 -1
  70. package/build/_modules/cwv/inp-script.spec.d.ts +0 -2
  71. package/build/_modules/cwv/inp-script.spec.d.ts.map +0 -1
  72. package/build/_modules/cwv/inp-script.spec.js +0 -35
  73. package/build/_modules/cwv/inp-script.spec.js.map +0 -1
  74. package/build/_modules/cwv/per-route-thresholds.spec.d.ts +0 -2
  75. package/build/_modules/cwv/per-route-thresholds.spec.d.ts.map +0 -1
  76. package/build/_modules/cwv/per-route-thresholds.spec.js +0 -37
  77. package/build/_modules/cwv/per-route-thresholds.spec.js.map +0 -1
  78. package/build/_modules/generators/bootstrap.spec.d.ts +0 -2
  79. package/build/_modules/generators/bootstrap.spec.d.ts.map +0 -1
  80. package/build/_modules/generators/bootstrap.spec.js +0 -46
  81. package/build/_modules/generators/bootstrap.spec.js.map +0 -1
  82. package/build/_modules/generators/cli-runner.spec.d.ts +0 -2
  83. package/build/_modules/generators/cli-runner.spec.d.ts.map +0 -1
  84. package/build/_modules/generators/cli-runner.spec.js +0 -93
  85. package/build/_modules/generators/cli-runner.spec.js.map +0 -1
  86. package/build/_modules/generators/config-validator.spec.d.ts +0 -2
  87. package/build/_modules/generators/config-validator.spec.d.ts.map +0 -1
  88. package/build/_modules/generators/config-validator.spec.js +0 -115
  89. package/build/_modules/generators/config-validator.spec.js.map +0 -1
  90. package/build/_modules/generators/doctor.spec.d.ts +0 -2
  91. package/build/_modules/generators/doctor.spec.d.ts.map +0 -1
  92. package/build/_modules/generators/doctor.spec.js +0 -68
  93. package/build/_modules/generators/doctor.spec.js.map +0 -1
  94. package/build/_modules/generators/field-emission-edge.spec.d.ts +0 -2
  95. package/build/_modules/generators/field-emission-edge.spec.d.ts.map +0 -1
  96. package/build/_modules/generators/field-emission-edge.spec.js +0 -164
  97. package/build/_modules/generators/field-emission-edge.spec.js.map +0 -1
  98. package/build/_modules/generators/form-suite.generator.spec.d.ts +0 -2
  99. package/build/_modules/generators/form-suite.generator.spec.d.ts.map +0 -1
  100. package/build/_modules/generators/form-suite.generator.spec.js +0 -188
  101. package/build/_modules/generators/form-suite.generator.spec.js.map +0 -1
  102. package/build/_modules/generators/info.spec.d.ts +0 -2
  103. package/build/_modules/generators/info.spec.d.ts.map +0 -1
  104. package/build/_modules/generators/info.spec.js +0 -42
  105. package/build/_modules/generators/info.spec.js.map +0 -1
  106. package/build/_modules/generators/json-schema.spec.d.ts +0 -2
  107. package/build/_modules/generators/json-schema.spec.d.ts.map +0 -1
  108. package/build/_modules/generators/json-schema.spec.js +0 -81
  109. package/build/_modules/generators/json-schema.spec.js.map +0 -1
  110. package/build/_modules/generators/preset-configs.spec.d.ts +0 -2
  111. package/build/_modules/generators/preset-configs.spec.d.ts.map +0 -1
  112. package/build/_modules/generators/preset-configs.spec.js +0 -53
  113. package/build/_modules/generators/preset-configs.spec.js.map +0 -1
  114. package/build/_modules/generators/test-case-filter-edge.spec.d.ts +0 -2
  115. package/build/_modules/generators/test-case-filter-edge.spec.d.ts.map +0 -1
  116. package/build/_modules/generators/test-case-filter-edge.spec.js +0 -105
  117. package/build/_modules/generators/test-case-filter-edge.spec.js.map +0 -1
  118. package/build/_modules/generators/viewport-suite.generator.spec.d.ts +0 -2
  119. package/build/_modules/generators/viewport-suite.generator.spec.d.ts.map +0 -1
  120. package/build/_modules/generators/viewport-suite.generator.spec.js +0 -59
  121. package/build/_modules/generators/viewport-suite.generator.spec.js.map +0 -1
  122. package/build/_modules/generators/wave-2b-emission.spec.d.ts +0 -2
  123. package/build/_modules/generators/wave-2b-emission.spec.d.ts.map +0 -1
  124. package/build/_modules/generators/wave-2b-emission.spec.js +0 -115
  125. package/build/_modules/generators/wave-2b-emission.spec.js.map +0 -1
  126. package/build/_modules/presets/presets.spec.d.ts +0 -2
  127. package/build/_modules/presets/presets.spec.d.ts.map +0 -1
  128. package/build/_modules/presets/presets.spec.js +0 -286
  129. package/build/_modules/presets/presets.spec.js.map +0 -1
  130. package/build/_modules/runtime/assertion-helpers.spec.d.ts +0 -2
  131. package/build/_modules/runtime/assertion-helpers.spec.d.ts.map +0 -1
  132. package/build/_modules/runtime/assertion-helpers.spec.js +0 -57
  133. package/build/_modules/runtime/assertion-helpers.spec.js.map +0 -1
  134. package/build/_modules/runtime/logger.service.spec.d.ts +0 -2
  135. package/build/_modules/runtime/logger.service.spec.d.ts.map +0 -1
  136. package/build/_modules/runtime/logger.service.spec.js +0 -61
  137. package/build/_modules/runtime/logger.service.spec.js.map +0 -1
  138. package/build/_modules/runtime/login-flow-helper.spec.d.ts +0 -2
  139. package/build/_modules/runtime/login-flow-helper.spec.d.ts.map +0 -1
  140. package/build/_modules/runtime/login-flow-helper.spec.js +0 -74
  141. package/build/_modules/runtime/login-flow-helper.spec.js.map +0 -1
  142. package/build/_modules/runtime/page-objects.spec.d.ts +0 -2
  143. package/build/_modules/runtime/page-objects.spec.d.ts.map +0 -1
  144. package/build/_modules/runtime/page-objects.spec.js +0 -241
  145. package/build/_modules/runtime/page-objects.spec.js.map +0 -1
  146. package/build/_modules/runtime/runtime.spec.d.ts +0 -2
  147. package/build/_modules/runtime/runtime.spec.d.ts.map +0 -1
  148. package/build/_modules/runtime/runtime.spec.js +0 -73
  149. package/build/_modules/runtime/runtime.spec.js.map +0 -1
  150. package/build/_modules/runtime/unique-generator.spec.d.ts +0 -2
  151. package/build/_modules/runtime/unique-generator.spec.d.ts.map +0 -1
  152. package/build/_modules/runtime/unique-generator.spec.js +0 -41
  153. package/build/_modules/runtime/unique-generator.spec.js.map +0 -1
  154. package/build/_modules/runtime/wave-2b-page-objects.spec.d.ts +0 -2
  155. package/build/_modules/runtime/wave-2b-page-objects.spec.d.ts.map +0 -1
  156. package/build/_modules/runtime/wave-2b-page-objects.spec.js +0 -130
  157. package/build/_modules/runtime/wave-2b-page-objects.spec.js.map +0 -1
  158. package/build/_modules/vqa/capture-spec.generator.spec.d.ts +0 -2
  159. package/build/_modules/vqa/capture-spec.generator.spec.d.ts.map +0 -1
  160. package/build/_modules/vqa/capture-spec.generator.spec.js +0 -126
  161. package/build/_modules/vqa/capture-spec.generator.spec.js.map +0 -1
  162. package/build/_modules/vqa/comparison-bundle.generator.spec.d.ts +0 -2
  163. package/build/_modules/vqa/comparison-bundle.generator.spec.d.ts.map +0 -1
  164. package/build/_modules/vqa/comparison-bundle.generator.spec.js +0 -130
  165. package/build/_modules/vqa/comparison-bundle.generator.spec.js.map +0 -1
  166. package/build/_modules/vqa/finding-validator.spec.d.ts +0 -2
  167. package/build/_modules/vqa/finding-validator.spec.d.ts.map +0 -1
  168. package/build/_modules/vqa/finding-validator.spec.js +0 -136
  169. package/build/_modules/vqa/finding-validator.spec.js.map +0 -1
  170. package/build/_modules/vqa/manifest-validator.spec.d.ts +0 -2
  171. package/build/_modules/vqa/manifest-validator.spec.d.ts.map +0 -1
  172. package/build/_modules/vqa/manifest-validator.spec.js +0 -125
  173. package/build/_modules/vqa/manifest-validator.spec.js.map +0 -1
  174. package/build/_modules/vqa/review-bundle.generator.spec.d.ts +0 -2
  175. package/build/_modules/vqa/review-bundle.generator.spec.d.ts.map +0 -1
  176. package/build/_modules/vqa/review-bundle.generator.spec.js +0 -166
  177. package/build/_modules/vqa/review-bundle.generator.spec.js.map +0 -1
  178. package/build/_modules/vqa/wave-7.spec.d.ts +0 -2
  179. package/build/_modules/vqa/wave-7.spec.d.ts.map +0 -1
  180. package/build/_modules/vqa/wave-7.spec.js +0 -203
  181. package/build/_modules/vqa/wave-7.spec.js.map +0 -1
  182. package/coverage/base.css +0 -224
  183. package/coverage/block-navigation.js +0 -87
  184. package/coverage/contracts/_collections/index.html +0 -116
  185. package/coverage/contracts/_collections/index.ts.html +0 -97
  186. package/coverage/contracts/_collections/utils/index.html +0 -116
  187. package/coverage/contracts/_collections/utils/test-id.util.ts.html +0 -172
  188. package/coverage/contracts/_enums/cwv-metric-type.enum.ts.html +0 -145
  189. package/coverage/contracts/_enums/field-test-case-type.enum.ts.html +0 -394
  190. package/coverage/contracts/_enums/index.html +0 -191
  191. package/coverage/contracts/_enums/index.ts.html +0 -100
  192. package/coverage/contracts/_enums/standard-viewport.enum.ts.html +0 -127
  193. package/coverage/contracts/_enums/test-expectation-type.enum.ts.html +0 -133
  194. package/coverage/contracts/_enums/test-run-mode-type.enum.ts.html +0 -130
  195. package/coverage/contracts/index.html +0 -116
  196. package/coverage/contracts/index.ts.html +0 -121
  197. package/coverage/cwv/_collections/cwv-aggregator.util.ts.html +0 -241
  198. package/coverage/cwv/_collections/cwv-comparison.util.ts.html +0 -355
  199. package/coverage/cwv/_collections/cwv-diagnose.util.ts.html +0 -553
  200. package/coverage/cwv/_collections/cwv-emission.util.ts.html +0 -448
  201. package/coverage/cwv/_collections/cwv-summarize.util.ts.html +0 -325
  202. package/coverage/cwv/_collections/index.html +0 -206
  203. package/coverage/cwv/_collections/inp-interaction-script.const.ts.html +0 -304
  204. package/coverage/cwv/_collections/web-vitals-page-script.const.ts.html +0 -331
  205. package/coverage/cwv/cwv-suite.generator.ts.html +0 -277
  206. package/coverage/cwv/index.html +0 -116
  207. package/coverage/favicon.png +0 -0
  208. package/coverage/generators/_collections/cli-runner.util.ts.html +0 -919
  209. package/coverage/generators/_collections/config-validator.util.ts.html +0 -397
  210. package/coverage/generators/_collections/field-emission.util.ts.html +0 -604
  211. package/coverage/generators/_collections/form-level-emission.util.ts.html +0 -220
  212. package/coverage/generators/_collections/index.html +0 -236
  213. package/coverage/generators/_collections/json-schema.util.ts.html +0 -652
  214. package/coverage/generators/_collections/preset-configs.const.ts.html +0 -328
  215. package/coverage/generators/_collections/spec-emission.util.ts.html +0 -298
  216. package/coverage/generators/_collections/test-case-filter.util.ts.html +0 -523
  217. package/coverage/generators/_collections/viewport-emission.util.ts.html +0 -313
  218. package/coverage/generators/form-suite.generator.ts.html +0 -406
  219. package/coverage/generators/index.html +0 -131
  220. package/coverage/generators/viewport-suite.generator.ts.html +0 -307
  221. package/coverage/index.html +0 -266
  222. package/coverage/lcov-report/base.css +0 -224
  223. package/coverage/lcov-report/block-navigation.js +0 -87
  224. package/coverage/lcov-report/contracts/_collections/index.html +0 -116
  225. package/coverage/lcov-report/contracts/_collections/index.ts.html +0 -97
  226. package/coverage/lcov-report/contracts/_collections/utils/index.html +0 -116
  227. package/coverage/lcov-report/contracts/_collections/utils/test-id.util.ts.html +0 -172
  228. package/coverage/lcov-report/contracts/_enums/cwv-metric-type.enum.ts.html +0 -145
  229. package/coverage/lcov-report/contracts/_enums/field-test-case-type.enum.ts.html +0 -394
  230. package/coverage/lcov-report/contracts/_enums/index.html +0 -191
  231. package/coverage/lcov-report/contracts/_enums/index.ts.html +0 -100
  232. package/coverage/lcov-report/contracts/_enums/standard-viewport.enum.ts.html +0 -127
  233. package/coverage/lcov-report/contracts/_enums/test-expectation-type.enum.ts.html +0 -133
  234. package/coverage/lcov-report/contracts/_enums/test-run-mode-type.enum.ts.html +0 -130
  235. package/coverage/lcov-report/contracts/index.html +0 -116
  236. package/coverage/lcov-report/contracts/index.ts.html +0 -121
  237. package/coverage/lcov-report/cwv/_collections/cwv-aggregator.util.ts.html +0 -241
  238. package/coverage/lcov-report/cwv/_collections/cwv-comparison.util.ts.html +0 -355
  239. package/coverage/lcov-report/cwv/_collections/cwv-diagnose.util.ts.html +0 -553
  240. package/coverage/lcov-report/cwv/_collections/cwv-emission.util.ts.html +0 -448
  241. package/coverage/lcov-report/cwv/_collections/cwv-summarize.util.ts.html +0 -325
  242. package/coverage/lcov-report/cwv/_collections/index.html +0 -206
  243. package/coverage/lcov-report/cwv/_collections/inp-interaction-script.const.ts.html +0 -304
  244. package/coverage/lcov-report/cwv/_collections/web-vitals-page-script.const.ts.html +0 -331
  245. package/coverage/lcov-report/cwv/cwv-suite.generator.ts.html +0 -277
  246. package/coverage/lcov-report/cwv/index.html +0 -116
  247. package/coverage/lcov-report/favicon.png +0 -0
  248. package/coverage/lcov-report/generators/_collections/cli-runner.util.ts.html +0 -919
  249. package/coverage/lcov-report/generators/_collections/config-validator.util.ts.html +0 -397
  250. package/coverage/lcov-report/generators/_collections/field-emission.util.ts.html +0 -604
  251. package/coverage/lcov-report/generators/_collections/form-level-emission.util.ts.html +0 -220
  252. package/coverage/lcov-report/generators/_collections/index.html +0 -236
  253. package/coverage/lcov-report/generators/_collections/json-schema.util.ts.html +0 -652
  254. package/coverage/lcov-report/generators/_collections/preset-configs.const.ts.html +0 -328
  255. package/coverage/lcov-report/generators/_collections/spec-emission.util.ts.html +0 -298
  256. package/coverage/lcov-report/generators/_collections/test-case-filter.util.ts.html +0 -523
  257. package/coverage/lcov-report/generators/_collections/viewport-emission.util.ts.html +0 -313
  258. package/coverage/lcov-report/generators/form-suite.generator.ts.html +0 -406
  259. package/coverage/lcov-report/generators/index.html +0 -131
  260. package/coverage/lcov-report/generators/viewport-suite.generator.ts.html +0 -307
  261. package/coverage/lcov-report/index.html +0 -266
  262. package/coverage/lcov-report/prettify.css +0 -1
  263. package/coverage/lcov-report/prettify.js +0 -2
  264. package/coverage/lcov-report/runtime/_collections/assertion-helpers.util.ts.html +0 -205
  265. package/coverage/lcov-report/runtime/_collections/index.html +0 -146
  266. package/coverage/lcov-report/runtime/_collections/unique-generator.util.ts.html +0 -256
  267. package/coverage/lcov-report/runtime/_collections/wait-helpers.util.ts.html +0 -238
  268. package/coverage/lcov-report/runtime/_services/dialog-page-object.ts.html +0 -157
  269. package/coverage/lcov-report/runtime/_services/field-page-object.ts.html +0 -253
  270. package/coverage/lcov-report/runtime/_services/form-page-object.ts.html +0 -184
  271. package/coverage/lcov-report/runtime/_services/index.html +0 -236
  272. package/coverage/lcov-report/runtime/_services/loader-page-object.ts.html +0 -142
  273. package/coverage/lcov-report/runtime/_services/logger.service.ts.html +0 -385
  274. package/coverage/lcov-report/runtime/_services/login-flow-helper.base.ts.html +0 -331
  275. package/coverage/lcov-report/runtime/_services/nav-page-object.ts.html +0 -145
  276. package/coverage/lcov-report/runtime/_services/toast-page-object.ts.html +0 -130
  277. package/coverage/lcov-report/runtime/_services/wave-2b-page-objects.ts.html +0 -397
  278. package/coverage/lcov-report/runtime/index.html +0 -116
  279. package/coverage/lcov-report/runtime/index.ts.html +0 -178
  280. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  281. package/coverage/lcov-report/sorter.js +0 -210
  282. package/coverage/lcov.info +0 -4047
  283. package/coverage/prettify.css +0 -1
  284. package/coverage/prettify.js +0 -2
  285. package/coverage/runtime/_collections/assertion-helpers.util.ts.html +0 -205
  286. package/coverage/runtime/_collections/index.html +0 -146
  287. package/coverage/runtime/_collections/unique-generator.util.ts.html +0 -256
  288. package/coverage/runtime/_collections/wait-helpers.util.ts.html +0 -238
  289. package/coverage/runtime/_services/dialog-page-object.ts.html +0 -157
  290. package/coverage/runtime/_services/field-page-object.ts.html +0 -253
  291. package/coverage/runtime/_services/form-page-object.ts.html +0 -184
  292. package/coverage/runtime/_services/index.html +0 -236
  293. package/coverage/runtime/_services/loader-page-object.ts.html +0 -142
  294. package/coverage/runtime/_services/logger.service.ts.html +0 -385
  295. package/coverage/runtime/_services/login-flow-helper.base.ts.html +0 -331
  296. package/coverage/runtime/_services/nav-page-object.ts.html +0 -145
  297. package/coverage/runtime/_services/toast-page-object.ts.html +0 -130
  298. package/coverage/runtime/_services/wave-2b-page-objects.ts.html +0 -397
  299. package/coverage/runtime/index.html +0 -116
  300. package/coverage/runtime/index.ts.html +0 -178
  301. package/coverage/sort-arrow-sprite.png +0 -0
  302. package/coverage/sorter.js +0 -210
  303. package/coverage/tmp/coverage-228636-1781075225757-0.json +0 -1
  304. package/coverage/tmp/coverage-228704-1781075227108-0.json +0 -1
  305. package/dogfood/PARITY-MATRIX.md +0 -67
  306. package/dogfood/generated/date-range-field-new.spec.ts +0 -54
  307. package/dogfood/generated/password-field-new.spec.ts +0 -97
  308. package/dogfood/generated/radio-select-field-new.spec.ts +0 -69
  309. package/dogfood/generated/slider-field-new.spec.ts +0 -47
  310. package/dogfood/generated/text-field-new.spec.ts +0 -0
  311. package/dogfood/generated-full/checkbox-field-new.spec.ts +0 -56
  312. package/dogfood/generated-full/date-field-new.spec.ts +0 -71
  313. package/dogfood/generated-full/date-range-field-new.spec.ts +0 -54
  314. package/dogfood/generated-full/datetime-field-new.spec.ts +0 -55
  315. package/dogfood/generated-full/multiselect-field-new.spec.ts +0 -69
  316. package/dogfood/generated-full/number-field-new.spec.ts +0 -113
  317. package/dogfood/generated-full/password-field-new.spec.ts +0 -97
  318. package/dogfood/generated-full/radio-select-field-new.spec.ts +0 -69
  319. package/dogfood/generated-full/sandbox-viewport-audit.spec.ts +0 -4643
  320. package/dogfood/generated-full/select-field-new.spec.ts +0 -69
  321. package/dogfood/generated-full/slider-field-new.spec.ts +0 -47
  322. package/dogfood/generated-full/slider-range-field-new.spec.ts +0 -54
  323. package/dogfood/generated-full/text-field-new.spec.ts +0 -0
  324. package/dogfood/generated-full/textarea-field-new.spec.ts +0 -72
  325. package/dogfood/sandbox-bootstrap-full.js +0 -248
  326. package/dogfood/sandbox-bootstrap.js +0 -170
  327. package/examples/minimal-form/README.md +0 -55
  328. package/examples/minimal-form/form-config.json +0 -38
  329. package/examples/multi-form-app/README.md +0 -63
  330. package/examples/multi-form-app/cwv-config.json +0 -14
  331. package/examples/multi-form-app/settings/login-form.json +0 -11
  332. package/examples/multi-form-app/settings/profile-form.json +0 -25
  333. package/examples/multi-form-app/viewport-config.json +0 -12
  334. package/logs/cicd-job.json +0 -3
  335. package/logs/cicd-report.json +0 -3
  336. package/logs/cicd-status.json +0 -3
@@ -1,69 +0,0 @@
1
- /**
2
- * Auto-generated by @futdevpro/dynamo-e2e — FormSuite Generator
3
- * Form key: sb-multi
4
- * Route: /c/multiselect-field-new
5
- * Built at: WAVE-1-STAMP
6
- *
7
- * DO NOT EDIT BY HAND. Re-emit via `dc e2e generate-form-suite` or
8
- * `DyE2E_FormSuite_Generator.emit({...})` consumer-script.
9
- */
10
-
11
- import { test, expect, Locator } from '@playwright/test';
12
-
13
- test.describe('Sandbox: DyNX_MultiselectFieldNew', (): void => {
14
-
15
- test.describe('Field: languages (multiselect)', (): void => {
16
- test.beforeEach(async ({ page }): Promise<void> => {
17
- const response = await page.goto('/c/multiselect-field-new');
18
- expect(response?.ok()).toBeTruthy();
19
- await page.locator('dynamo-multiselect-field-new').first().waitFor({ state: 'visible' });
20
- });
21
-
22
- test('field[languages] multi:none → valid — üres választás', async ({ page }): Promise<void> => {
23
- // options index → testId-suffix selection
24
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-multi-default"], dynamo-multiselect-field-new').first();
25
-
26
- // Wave-1: explicit selector-pattern is per-consumer; szándékosan minimalista.
27
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-multi-default"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
28
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
29
- });
30
-
31
- test('field[languages] multi:single → valid — egy elem kiválasztva', async ({ page }): Promise<void> => {
32
- // options index → testId-suffix selection
33
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-multi-default"], dynamo-multiselect-field-new').first();
34
- // option index 0 (case-input[0])
35
- // Wave-1: explicit selector-pattern is per-consumer; szándékosan minimalista.
36
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-multi-default"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
37
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
38
- });
39
-
40
- test('field[languages] multi:multiple → valid — több elem kiválasztva', async ({ page }): Promise<void> => {
41
- // options index → testId-suffix selection
42
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-multi-default"], dynamo-multiselect-field-new').first();
43
- // option index 0 (case-input[0])
44
- // option index 1 (case-input[1])
45
- // Wave-1: explicit selector-pattern is per-consumer; szándékosan minimalista.
46
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-multi-default"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
47
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
48
- });
49
-
50
- test('field[languages] multi:all-selected → valid — minden elem kiválasztva', async ({ page }): Promise<void> => {
51
- // options index → testId-suffix selection
52
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-multi-default"], dynamo-multiselect-field-new').first();
53
- // sentinel -3 — generator-runtime should clamp to options.length
54
- // Wave-1: explicit selector-pattern is per-consumer; szándékosan minimalista.
55
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-multi-default"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
56
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
57
- });
58
-
59
- test('field[languages] multi:duplicate-selection → valid — ugyanazt klikkelünk kétszer (deselect)', async ({ page }): Promise<void> => {
60
- // options index → testId-suffix selection
61
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-multi-default"], dynamo-multiselect-field-new').first();
62
-
63
- // Wave-1: explicit selector-pattern is per-consumer; szándékosan minimalista.
64
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-multi-default"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
65
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
66
- });
67
- });
68
-
69
- });
@@ -1,113 +0,0 @@
1
- /**
2
- * Auto-generated by @futdevpro/dynamo-e2e — FormSuite Generator
3
- * Form key: sb-number
4
- * Route: /c/number-field-new
5
- * Built at: WAVE-1-STAMP
6
- *
7
- * DO NOT EDIT BY HAND. Re-emit via `dc e2e generate-form-suite` or
8
- * `DyE2E_FormSuite_Generator.emit({...})` consumer-script.
9
- */
10
-
11
- import { test, expect, Locator } from '@playwright/test';
12
-
13
- test.describe('Sandbox: DyNX_NumberFieldNew', (): void => {
14
-
15
- test.describe('Field: age (number)', (): void => {
16
- test.beforeEach(async ({ page }): Promise<void> => {
17
- const response = await page.goto('/c/number-field-new');
18
- expect(response?.ok()).toBeTruthy();
19
- await page.locator('dynamo-number-field-new').first().waitFor({ state: 'visible' });
20
- });
21
-
22
- test('field[age] number:empty → valid — üres input', async ({ page }): Promise<void> => {
23
- const input: Locator = page.getByTestId('sandbox-number-required');
24
- await input.fill('');
25
- await input.blur();
26
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-number-required"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
27
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
28
- });
29
-
30
- test('field[age] number:zero → valid — 0', async ({ page }): Promise<void> => {
31
- const input: Locator = page.getByTestId('sandbox-number-required');
32
- await input.fill('0');
33
- await input.blur();
34
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-number-required"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
35
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
36
- });
37
-
38
- test('field[age] number:one → valid — 1', async ({ page }): Promise<void> => {
39
- const input: Locator = page.getByTestId('sandbox-number-required');
40
- await input.fill('1');
41
- await input.blur();
42
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-number-required"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
43
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
44
- });
45
-
46
- test('field[age] number:negative-one → valid — -1', async ({ page }): Promise<void> => {
47
- const input: Locator = page.getByTestId('sandbox-number-required');
48
- await input.fill('-1');
49
- await input.blur();
50
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-number-required"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
51
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
52
- });
53
-
54
- test('field[age] number:positive-sign → valid — +5 (explicit pozitív előjel)', async ({ page }): Promise<void> => {
55
- const input: Locator = page.getByTestId('sandbox-number-required');
56
- await input.fill('+5');
57
- await input.blur();
58
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-number-required"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
59
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
60
- });
61
-
62
- test('field[age] number:decimal-when-int → valid — 3.14 — tört érték', async ({ page }): Promise<void> => {
63
- const input: Locator = page.getByTestId('sandbox-number-required');
64
- await input.fill('3.14');
65
- await input.blur();
66
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-number-required"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
67
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
68
- });
69
-
70
- test('field[age] number:scientific → valid — 1e10 — tudományos jelölés', async ({ page }): Promise<void> => {
71
- const input: Locator = page.getByTestId('sandbox-number-required');
72
- await input.fill('1e10');
73
- await input.blur();
74
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-number-required"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
75
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
76
- });
77
-
78
- test('field[age] number:very-large → valid — Number.MAX_SAFE_INTEGER', async ({ page }): Promise<void> => {
79
- const input: Locator = page.getByTestId('sandbox-number-required');
80
- await input.fill('9007199254740991');
81
- await input.blur();
82
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-number-required"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
83
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
84
- });
85
-
86
- test('field[age] number:very-small → valid — Number.MIN_SAFE_INTEGER', async ({ page }): Promise<void> => {
87
- const input: Locator = page.getByTestId('sandbox-number-required');
88
- await input.fill('-9007199254740991');
89
- await input.blur();
90
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-number-required"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
91
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
92
- });
93
-
94
- test('field[age] number:below-min → invalid:min — a Settings.min alatt', async ({ page }): Promise<void> => {
95
- const input: Locator = page.getByTestId('sandbox-number-required');
96
- await input.fill('12');
97
- await input.blur();
98
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-number-required"]').locator('xpath=ancestor-or-self::*[starts-with(local-name(),"dynamo-")]').first();
99
- await expect(fieldRoot.locator('.text-red-400.mt-1').first()).toBeVisible();
100
- // expectedErrorKey: min
101
- });
102
-
103
- test('field[age] number:above-max → invalid:max — a Settings.max fölött', async ({ page }): Promise<void> => {
104
- const input: Locator = page.getByTestId('sandbox-number-required');
105
- await input.fill('121');
106
- await input.blur();
107
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-number-required"]').locator('xpath=ancestor-or-self::*[starts-with(local-name(),"dynamo-")]').first();
108
- await expect(fieldRoot.locator('.text-red-400.mt-1').first()).toBeVisible();
109
- // expectedErrorKey: max
110
- });
111
- });
112
-
113
- });
@@ -1,97 +0,0 @@
1
- /**
2
- * Auto-generated by @futdevpro/dynamo-e2e — FormSuite Generator
3
- * Form key: sb-pwd
4
- * Route: /c/password-field-new
5
- * Built at: WAVE-1-STAMP
6
- *
7
- * DO NOT EDIT BY HAND. Re-emit via `dc e2e generate-form-suite` or
8
- * `DyE2E_FormSuite_Generator.emit({...})` consumer-script.
9
- */
10
-
11
- import { test, expect, Locator } from '@playwright/test';
12
-
13
- test.describe('Sandbox: DyNX_PasswordFieldNew (Required)', (): void => {
14
-
15
- test.describe('Field: password (password)', (): void => {
16
- test.beforeEach(async ({ page }): Promise<void> => {
17
- const response = await page.goto('/c/password-field-new');
18
- expect(response?.ok()).toBeTruthy();
19
- await page.locator('dynamo-password-field-new').first().waitFor({ state: 'visible' });
20
- });
21
-
22
- test('field[password] pw:empty → valid — üres jelszó', async ({ page }): Promise<void> => {
23
- const input: Locator = page.getByTestId('sandbox-pwd-required');
24
- await input.fill('');
25
- await input.blur();
26
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-pwd-required"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
27
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
28
- });
29
-
30
- test('field[password] pw:ascii → valid — tipikus ASCII jelszó', async ({ page }): Promise<void> => {
31
- const input: Locator = page.getByTestId('sandbox-pwd-required');
32
- await input.fill('SecurePw123!');
33
- await input.blur();
34
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-pwd-required"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
35
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
36
- });
37
-
38
- test('field[password] pw:unicode-basic → valid — unicode jelszó', async ({ page }): Promise<void> => {
39
- const input: Locator = page.getByTestId('sandbox-pwd-required');
40
- await input.fill('JelszóBiztos123');
41
- await input.blur();
42
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-pwd-required"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
43
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
44
- });
45
-
46
- test('field[password] pw:unicode-emoji → valid — emoji jelszóban', async ({ page }): Promise<void> => {
47
- const input: Locator = page.getByTestId('sandbox-pwd-required');
48
- await input.fill('Pw🔐Strong');
49
- await input.blur();
50
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-pwd-required"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
51
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
52
- });
53
-
54
- test('field[password] pw:short → invalid:minLength — < 8 char (default minLength)', async ({ page }): Promise<void> => {
55
- const input: Locator = page.getByTestId('sandbox-pwd-required');
56
- await input.fill('aaaaaaa');
57
- await input.blur();
58
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-pwd-required"]').locator('xpath=ancestor-or-self::*[starts-with(local-name(),"dynamo-")]').first();
59
- await expect(fieldRoot.locator('.text-red-400.mt-1').first()).toBeVisible();
60
- // expectedErrorKey: minLength
61
- });
62
-
63
- test('field[password] pw:single-whitespace → valid — space-only password (some sites reject)', async ({ page }): Promise<void> => {
64
- const input: Locator = page.getByTestId('sandbox-pwd-required');
65
- await input.fill(' ');
66
- await input.blur();
67
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-pwd-required"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
68
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
69
- });
70
-
71
- test('field[password] pw:xss-tag → valid — XSS-tag jelszóban', async ({ page }): Promise<void> => {
72
- const input: Locator = page.getByTestId('sandbox-pwd-required');
73
- await input.fill('<script>alert(1)</script>');
74
- await input.blur();
75
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-pwd-required"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
76
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
77
- });
78
-
79
- test('field[password] pw:sql-injection-shape → valid — SQL-injection-szerű jelszó', async ({ page }): Promise<void> => {
80
- const input: Locator = page.getByTestId('sandbox-pwd-required');
81
- await input.fill('\' OR \'1\'=\'1\' --');
82
- await input.blur();
83
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-pwd-required"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
84
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
85
- });
86
-
87
- test('field[password] pw:oversize → invalid:maxLength — 256+ char jelszó', async ({ page }): Promise<void> => {
88
- const input: Locator = page.getByTestId('sandbox-pwd-required');
89
- await input.fill('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
90
- await input.blur();
91
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-pwd-required"]').locator('xpath=ancestor-or-self::*[starts-with(local-name(),"dynamo-")]').first();
92
- await expect(fieldRoot.locator('.text-red-400.mt-1').first()).toBeVisible();
93
- // expectedErrorKey: maxLength
94
- });
95
- });
96
-
97
- });
@@ -1,69 +0,0 @@
1
- /**
2
- * Auto-generated by @futdevpro/dynamo-e2e — FormSuite Generator
3
- * Form key: sb-radio
4
- * Route: /c/radio-select-field-new
5
- * Built at: WAVE-1-STAMP
6
- *
7
- * DO NOT EDIT BY HAND. Re-emit via `dc e2e generate-form-suite` or
8
- * `DyE2E_FormSuite_Generator.emit({...})` consumer-script.
9
- */
10
-
11
- import { test, expect, Locator } from '@playwright/test';
12
-
13
- test.describe('Sandbox: DyNX_RadioSelectFieldNew (Vertical)', (): void => {
14
-
15
- test.describe('Field: priority (radioSelect)', (): void => {
16
- test.beforeEach(async ({ page }): Promise<void> => {
17
- const response = await page.goto('/c/radio-select-field-new');
18
- expect(response?.ok()).toBeTruthy();
19
- await page.locator('dynamo-radio-select-field-new').first().waitFor({ state: 'visible' });
20
- });
21
-
22
- test('field[priority] select:none-selected → valid — semmi nincs választva', async ({ page }): Promise<void> => {
23
- // options index → testId-suffix selection
24
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-radio-vertical"], dynamo-radio-select-field-new').first();
25
- // sentinel -1 — generator-runtime should clamp to options.length
26
- // Wave-1: explicit selector-pattern is per-consumer; szándékosan minimalista.
27
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-radio-vertical"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
28
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
29
- });
30
-
31
- test('field[priority] select:first-option → valid — első opció kiválasztva', async ({ page }): Promise<void> => {
32
- // options index → testId-suffix selection
33
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-radio-vertical"], dynamo-radio-select-field-new').first();
34
- // option index 0 (case-input[0])
35
- // Wave-1: explicit selector-pattern is per-consumer; szándékosan minimalista.
36
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-radio-vertical"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
37
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
38
- });
39
-
40
- test('field[priority] select:last-option → valid — utolsó opció kiválasztva', async ({ page }): Promise<void> => {
41
- // options index → testId-suffix selection
42
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-radio-vertical"], dynamo-radio-select-field-new').first();
43
- // option index 3 (case-input[0])
44
- // Wave-1: explicit selector-pattern is per-consumer; szándékosan minimalista.
45
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-radio-vertical"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
46
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
47
- });
48
-
49
- test('field[priority] select:required-empty → invalid:required — required + semmi → invalid', async ({ page }): Promise<void> => {
50
- // options index → testId-suffix selection
51
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-radio-vertical"], dynamo-radio-select-field-new').first();
52
- // sentinel -1 — generator-runtime should clamp to options.length
53
- // Wave-1: explicit selector-pattern is per-consumer; szándékosan minimalista.
54
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-radio-vertical"]').locator('xpath=ancestor-or-self::*[starts-with(local-name(),"dynamo-")]').first();
55
- await expect(fieldRoot.locator('.text-red-400.mt-1').first()).toBeVisible();
56
- // expectedErrorKey: required
57
- });
58
-
59
- test('field[priority] select:disabled-option → valid — disabled opció nem klikkelheto', async ({ page }): Promise<void> => {
60
- // options index → testId-suffix selection
61
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-radio-vertical"], dynamo-radio-select-field-new').first();
62
- // sentinel -1 — generator-runtime should clamp to options.length
63
- // Wave-1: explicit selector-pattern is per-consumer; szándékosan minimalista.
64
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-radio-vertical"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
65
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
66
- });
67
- });
68
-
69
- });