@futdevpro/dynamo-e2e 1.18.9 → 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 (343) 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 +30 -1
  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 +13 -0
  29. package/build/_modules/presets/_models/interfaces/playwright-config-options.interface.d.ts.map +1 -1
  30. package/build/_modules/presets/_models/interfaces/project-split-options.interface.d.ts +27 -0
  31. package/build/_modules/presets/_models/interfaces/project-split-options.interface.d.ts.map +1 -0
  32. package/build/_modules/presets/_models/interfaces/project-split-options.interface.js +3 -0
  33. package/build/_modules/presets/_models/interfaces/project-split-options.interface.js.map +1 -0
  34. package/build/_modules/presets/index.d.ts +1 -0
  35. package/build/_modules/presets/index.d.ts.map +1 -1
  36. package/build/_modules/presets/index.js.map +1 -1
  37. package/build/_modules/vqa/generators/ai-agent-readme.template.js +1 -1
  38. package/build/index.d.ts +1 -0
  39. package/build/index.d.ts.map +1 -1
  40. package/build/index.js +2 -1
  41. package/build/index.js.map +1 -1
  42. package/package.json +12 -5
  43. package/.c8rc.json +0 -25
  44. package/.dynamo/pipeline.cicd.config.json +0 -167
  45. package/.dynamo/version-bump.config.json +0 -5
  46. package/.github/workflows/main.yml +0 -35
  47. package/BUILD.md +0 -36
  48. package/CONTRIBUTING.md +0 -90
  49. package/build/_modules/contracts/contracts.spec.d.ts +0 -2
  50. package/build/_modules/contracts/contracts.spec.d.ts.map +0 -1
  51. package/build/_modules/contracts/contracts.spec.js +0 -144
  52. package/build/_modules/contracts/contracts.spec.js.map +0 -1
  53. package/build/_modules/cwv/cwv-comparison.spec.d.ts +0 -2
  54. package/build/_modules/cwv/cwv-comparison.spec.d.ts.map +0 -1
  55. package/build/_modules/cwv/cwv-comparison.spec.js +0 -77
  56. package/build/_modules/cwv/cwv-comparison.spec.js.map +0 -1
  57. package/build/_modules/cwv/cwv-diagnose.spec.d.ts +0 -2
  58. package/build/_modules/cwv/cwv-diagnose.spec.d.ts.map +0 -1
  59. package/build/_modules/cwv/cwv-diagnose.spec.js +0 -78
  60. package/build/_modules/cwv/cwv-diagnose.spec.js.map +0 -1
  61. package/build/_modules/cwv/cwv-suite.generator.spec.d.ts +0 -2
  62. package/build/_modules/cwv/cwv-suite.generator.spec.d.ts.map +0 -1
  63. package/build/_modules/cwv/cwv-suite.generator.spec.js +0 -81
  64. package/build/_modules/cwv/cwv-suite.generator.spec.js.map +0 -1
  65. package/build/_modules/cwv/cwv-summarize.spec.d.ts +0 -2
  66. package/build/_modules/cwv/cwv-summarize.spec.d.ts.map +0 -1
  67. package/build/_modules/cwv/cwv-summarize.spec.js +0 -70
  68. package/build/_modules/cwv/cwv-summarize.spec.js.map +0 -1
  69. package/build/_modules/cwv/inp-emit-integration.spec.d.ts +0 -2
  70. package/build/_modules/cwv/inp-emit-integration.spec.d.ts.map +0 -1
  71. package/build/_modules/cwv/inp-emit-integration.spec.js +0 -43
  72. package/build/_modules/cwv/inp-emit-integration.spec.js.map +0 -1
  73. package/build/_modules/cwv/inp-interaction-driver.spec.d.ts +0 -2
  74. package/build/_modules/cwv/inp-interaction-driver.spec.d.ts.map +0 -1
  75. package/build/_modules/cwv/inp-interaction-driver.spec.js +0 -44
  76. package/build/_modules/cwv/inp-interaction-driver.spec.js.map +0 -1
  77. package/build/_modules/cwv/inp-script.spec.d.ts +0 -2
  78. package/build/_modules/cwv/inp-script.spec.d.ts.map +0 -1
  79. package/build/_modules/cwv/inp-script.spec.js +0 -35
  80. package/build/_modules/cwv/inp-script.spec.js.map +0 -1
  81. package/build/_modules/cwv/per-route-thresholds.spec.d.ts +0 -2
  82. package/build/_modules/cwv/per-route-thresholds.spec.d.ts.map +0 -1
  83. package/build/_modules/cwv/per-route-thresholds.spec.js +0 -37
  84. package/build/_modules/cwv/per-route-thresholds.spec.js.map +0 -1
  85. package/build/_modules/generators/bootstrap.spec.d.ts +0 -2
  86. package/build/_modules/generators/bootstrap.spec.d.ts.map +0 -1
  87. package/build/_modules/generators/bootstrap.spec.js +0 -46
  88. package/build/_modules/generators/bootstrap.spec.js.map +0 -1
  89. package/build/_modules/generators/cli-runner.spec.d.ts +0 -2
  90. package/build/_modules/generators/cli-runner.spec.d.ts.map +0 -1
  91. package/build/_modules/generators/cli-runner.spec.js +0 -93
  92. package/build/_modules/generators/cli-runner.spec.js.map +0 -1
  93. package/build/_modules/generators/config-validator.spec.d.ts +0 -2
  94. package/build/_modules/generators/config-validator.spec.d.ts.map +0 -1
  95. package/build/_modules/generators/config-validator.spec.js +0 -115
  96. package/build/_modules/generators/config-validator.spec.js.map +0 -1
  97. package/build/_modules/generators/doctor.spec.d.ts +0 -2
  98. package/build/_modules/generators/doctor.spec.d.ts.map +0 -1
  99. package/build/_modules/generators/doctor.spec.js +0 -68
  100. package/build/_modules/generators/doctor.spec.js.map +0 -1
  101. package/build/_modules/generators/field-emission-edge.spec.d.ts +0 -2
  102. package/build/_modules/generators/field-emission-edge.spec.d.ts.map +0 -1
  103. package/build/_modules/generators/field-emission-edge.spec.js +0 -164
  104. package/build/_modules/generators/field-emission-edge.spec.js.map +0 -1
  105. package/build/_modules/generators/form-suite.generator.spec.d.ts +0 -2
  106. package/build/_modules/generators/form-suite.generator.spec.d.ts.map +0 -1
  107. package/build/_modules/generators/form-suite.generator.spec.js +0 -188
  108. package/build/_modules/generators/form-suite.generator.spec.js.map +0 -1
  109. package/build/_modules/generators/info.spec.d.ts +0 -2
  110. package/build/_modules/generators/info.spec.d.ts.map +0 -1
  111. package/build/_modules/generators/info.spec.js +0 -42
  112. package/build/_modules/generators/info.spec.js.map +0 -1
  113. package/build/_modules/generators/json-schema.spec.d.ts +0 -2
  114. package/build/_modules/generators/json-schema.spec.d.ts.map +0 -1
  115. package/build/_modules/generators/json-schema.spec.js +0 -81
  116. package/build/_modules/generators/json-schema.spec.js.map +0 -1
  117. package/build/_modules/generators/preset-configs.spec.d.ts +0 -2
  118. package/build/_modules/generators/preset-configs.spec.d.ts.map +0 -1
  119. package/build/_modules/generators/preset-configs.spec.js +0 -53
  120. package/build/_modules/generators/preset-configs.spec.js.map +0 -1
  121. package/build/_modules/generators/test-case-filter-edge.spec.d.ts +0 -2
  122. package/build/_modules/generators/test-case-filter-edge.spec.d.ts.map +0 -1
  123. package/build/_modules/generators/test-case-filter-edge.spec.js +0 -105
  124. package/build/_modules/generators/test-case-filter-edge.spec.js.map +0 -1
  125. package/build/_modules/generators/viewport-suite.generator.spec.d.ts +0 -2
  126. package/build/_modules/generators/viewport-suite.generator.spec.d.ts.map +0 -1
  127. package/build/_modules/generators/viewport-suite.generator.spec.js +0 -59
  128. package/build/_modules/generators/viewport-suite.generator.spec.js.map +0 -1
  129. package/build/_modules/generators/wave-2b-emission.spec.d.ts +0 -2
  130. package/build/_modules/generators/wave-2b-emission.spec.d.ts.map +0 -1
  131. package/build/_modules/generators/wave-2b-emission.spec.js +0 -115
  132. package/build/_modules/generators/wave-2b-emission.spec.js.map +0 -1
  133. package/build/_modules/presets/presets.spec.d.ts +0 -2
  134. package/build/_modules/presets/presets.spec.d.ts.map +0 -1
  135. package/build/_modules/presets/presets.spec.js +0 -230
  136. package/build/_modules/presets/presets.spec.js.map +0 -1
  137. package/build/_modules/runtime/assertion-helpers.spec.d.ts +0 -2
  138. package/build/_modules/runtime/assertion-helpers.spec.d.ts.map +0 -1
  139. package/build/_modules/runtime/assertion-helpers.spec.js +0 -57
  140. package/build/_modules/runtime/assertion-helpers.spec.js.map +0 -1
  141. package/build/_modules/runtime/logger.service.spec.d.ts +0 -2
  142. package/build/_modules/runtime/logger.service.spec.d.ts.map +0 -1
  143. package/build/_modules/runtime/logger.service.spec.js +0 -61
  144. package/build/_modules/runtime/logger.service.spec.js.map +0 -1
  145. package/build/_modules/runtime/login-flow-helper.spec.d.ts +0 -2
  146. package/build/_modules/runtime/login-flow-helper.spec.d.ts.map +0 -1
  147. package/build/_modules/runtime/login-flow-helper.spec.js +0 -74
  148. package/build/_modules/runtime/login-flow-helper.spec.js.map +0 -1
  149. package/build/_modules/runtime/page-objects.spec.d.ts +0 -2
  150. package/build/_modules/runtime/page-objects.spec.d.ts.map +0 -1
  151. package/build/_modules/runtime/page-objects.spec.js +0 -241
  152. package/build/_modules/runtime/page-objects.spec.js.map +0 -1
  153. package/build/_modules/runtime/runtime.spec.d.ts +0 -2
  154. package/build/_modules/runtime/runtime.spec.d.ts.map +0 -1
  155. package/build/_modules/runtime/runtime.spec.js +0 -73
  156. package/build/_modules/runtime/runtime.spec.js.map +0 -1
  157. package/build/_modules/runtime/unique-generator.spec.d.ts +0 -2
  158. package/build/_modules/runtime/unique-generator.spec.d.ts.map +0 -1
  159. package/build/_modules/runtime/unique-generator.spec.js +0 -41
  160. package/build/_modules/runtime/unique-generator.spec.js.map +0 -1
  161. package/build/_modules/runtime/wave-2b-page-objects.spec.d.ts +0 -2
  162. package/build/_modules/runtime/wave-2b-page-objects.spec.d.ts.map +0 -1
  163. package/build/_modules/runtime/wave-2b-page-objects.spec.js +0 -130
  164. package/build/_modules/runtime/wave-2b-page-objects.spec.js.map +0 -1
  165. package/build/_modules/vqa/capture-spec.generator.spec.d.ts +0 -2
  166. package/build/_modules/vqa/capture-spec.generator.spec.d.ts.map +0 -1
  167. package/build/_modules/vqa/capture-spec.generator.spec.js +0 -126
  168. package/build/_modules/vqa/capture-spec.generator.spec.js.map +0 -1
  169. package/build/_modules/vqa/comparison-bundle.generator.spec.d.ts +0 -2
  170. package/build/_modules/vqa/comparison-bundle.generator.spec.d.ts.map +0 -1
  171. package/build/_modules/vqa/comparison-bundle.generator.spec.js +0 -130
  172. package/build/_modules/vqa/comparison-bundle.generator.spec.js.map +0 -1
  173. package/build/_modules/vqa/finding-validator.spec.d.ts +0 -2
  174. package/build/_modules/vqa/finding-validator.spec.d.ts.map +0 -1
  175. package/build/_modules/vqa/finding-validator.spec.js +0 -136
  176. package/build/_modules/vqa/finding-validator.spec.js.map +0 -1
  177. package/build/_modules/vqa/manifest-validator.spec.d.ts +0 -2
  178. package/build/_modules/vqa/manifest-validator.spec.d.ts.map +0 -1
  179. package/build/_modules/vqa/manifest-validator.spec.js +0 -125
  180. package/build/_modules/vqa/manifest-validator.spec.js.map +0 -1
  181. package/build/_modules/vqa/review-bundle.generator.spec.d.ts +0 -2
  182. package/build/_modules/vqa/review-bundle.generator.spec.d.ts.map +0 -1
  183. package/build/_modules/vqa/review-bundle.generator.spec.js +0 -166
  184. package/build/_modules/vqa/review-bundle.generator.spec.js.map +0 -1
  185. package/build/_modules/vqa/wave-7.spec.d.ts +0 -2
  186. package/build/_modules/vqa/wave-7.spec.d.ts.map +0 -1
  187. package/build/_modules/vqa/wave-7.spec.js +0 -203
  188. package/build/_modules/vqa/wave-7.spec.js.map +0 -1
  189. package/coverage/base.css +0 -224
  190. package/coverage/block-navigation.js +0 -87
  191. package/coverage/contracts/_collections/index.html +0 -116
  192. package/coverage/contracts/_collections/index.ts.html +0 -97
  193. package/coverage/contracts/_collections/utils/index.html +0 -116
  194. package/coverage/contracts/_collections/utils/test-id.util.ts.html +0 -172
  195. package/coverage/contracts/_enums/cwv-metric-type.enum.ts.html +0 -145
  196. package/coverage/contracts/_enums/field-test-case-type.enum.ts.html +0 -394
  197. package/coverage/contracts/_enums/index.html +0 -191
  198. package/coverage/contracts/_enums/index.ts.html +0 -100
  199. package/coverage/contracts/_enums/standard-viewport.enum.ts.html +0 -127
  200. package/coverage/contracts/_enums/test-expectation-type.enum.ts.html +0 -133
  201. package/coverage/contracts/_enums/test-run-mode-type.enum.ts.html +0 -130
  202. package/coverage/contracts/index.html +0 -116
  203. package/coverage/contracts/index.ts.html +0 -121
  204. package/coverage/cwv/_collections/cwv-aggregator.util.ts.html +0 -241
  205. package/coverage/cwv/_collections/cwv-comparison.util.ts.html +0 -355
  206. package/coverage/cwv/_collections/cwv-diagnose.util.ts.html +0 -553
  207. package/coverage/cwv/_collections/cwv-emission.util.ts.html +0 -448
  208. package/coverage/cwv/_collections/cwv-summarize.util.ts.html +0 -325
  209. package/coverage/cwv/_collections/index.html +0 -206
  210. package/coverage/cwv/_collections/inp-interaction-script.const.ts.html +0 -304
  211. package/coverage/cwv/_collections/web-vitals-page-script.const.ts.html +0 -331
  212. package/coverage/cwv/cwv-suite.generator.ts.html +0 -277
  213. package/coverage/cwv/index.html +0 -116
  214. package/coverage/favicon.png +0 -0
  215. package/coverage/generators/_collections/cli-runner.util.ts.html +0 -919
  216. package/coverage/generators/_collections/config-validator.util.ts.html +0 -397
  217. package/coverage/generators/_collections/field-emission.util.ts.html +0 -604
  218. package/coverage/generators/_collections/form-level-emission.util.ts.html +0 -220
  219. package/coverage/generators/_collections/index.html +0 -236
  220. package/coverage/generators/_collections/json-schema.util.ts.html +0 -652
  221. package/coverage/generators/_collections/preset-configs.const.ts.html +0 -328
  222. package/coverage/generators/_collections/spec-emission.util.ts.html +0 -298
  223. package/coverage/generators/_collections/test-case-filter.util.ts.html +0 -523
  224. package/coverage/generators/_collections/viewport-emission.util.ts.html +0 -313
  225. package/coverage/generators/form-suite.generator.ts.html +0 -406
  226. package/coverage/generators/index.html +0 -131
  227. package/coverage/generators/viewport-suite.generator.ts.html +0 -307
  228. package/coverage/index.html +0 -266
  229. package/coverage/lcov-report/base.css +0 -224
  230. package/coverage/lcov-report/block-navigation.js +0 -87
  231. package/coverage/lcov-report/contracts/_collections/index.html +0 -116
  232. package/coverage/lcov-report/contracts/_collections/index.ts.html +0 -97
  233. package/coverage/lcov-report/contracts/_collections/utils/index.html +0 -116
  234. package/coverage/lcov-report/contracts/_collections/utils/test-id.util.ts.html +0 -172
  235. package/coverage/lcov-report/contracts/_enums/cwv-metric-type.enum.ts.html +0 -145
  236. package/coverage/lcov-report/contracts/_enums/field-test-case-type.enum.ts.html +0 -394
  237. package/coverage/lcov-report/contracts/_enums/index.html +0 -191
  238. package/coverage/lcov-report/contracts/_enums/index.ts.html +0 -100
  239. package/coverage/lcov-report/contracts/_enums/standard-viewport.enum.ts.html +0 -127
  240. package/coverage/lcov-report/contracts/_enums/test-expectation-type.enum.ts.html +0 -133
  241. package/coverage/lcov-report/contracts/_enums/test-run-mode-type.enum.ts.html +0 -130
  242. package/coverage/lcov-report/contracts/index.html +0 -116
  243. package/coverage/lcov-report/contracts/index.ts.html +0 -121
  244. package/coverage/lcov-report/cwv/_collections/cwv-aggregator.util.ts.html +0 -241
  245. package/coverage/lcov-report/cwv/_collections/cwv-comparison.util.ts.html +0 -355
  246. package/coverage/lcov-report/cwv/_collections/cwv-diagnose.util.ts.html +0 -553
  247. package/coverage/lcov-report/cwv/_collections/cwv-emission.util.ts.html +0 -448
  248. package/coverage/lcov-report/cwv/_collections/cwv-summarize.util.ts.html +0 -325
  249. package/coverage/lcov-report/cwv/_collections/index.html +0 -206
  250. package/coverage/lcov-report/cwv/_collections/inp-interaction-script.const.ts.html +0 -304
  251. package/coverage/lcov-report/cwv/_collections/web-vitals-page-script.const.ts.html +0 -331
  252. package/coverage/lcov-report/cwv/cwv-suite.generator.ts.html +0 -277
  253. package/coverage/lcov-report/cwv/index.html +0 -116
  254. package/coverage/lcov-report/favicon.png +0 -0
  255. package/coverage/lcov-report/generators/_collections/cli-runner.util.ts.html +0 -919
  256. package/coverage/lcov-report/generators/_collections/config-validator.util.ts.html +0 -397
  257. package/coverage/lcov-report/generators/_collections/field-emission.util.ts.html +0 -604
  258. package/coverage/lcov-report/generators/_collections/form-level-emission.util.ts.html +0 -220
  259. package/coverage/lcov-report/generators/_collections/index.html +0 -236
  260. package/coverage/lcov-report/generators/_collections/json-schema.util.ts.html +0 -652
  261. package/coverage/lcov-report/generators/_collections/preset-configs.const.ts.html +0 -328
  262. package/coverage/lcov-report/generators/_collections/spec-emission.util.ts.html +0 -298
  263. package/coverage/lcov-report/generators/_collections/test-case-filter.util.ts.html +0 -523
  264. package/coverage/lcov-report/generators/_collections/viewport-emission.util.ts.html +0 -313
  265. package/coverage/lcov-report/generators/form-suite.generator.ts.html +0 -406
  266. package/coverage/lcov-report/generators/index.html +0 -131
  267. package/coverage/lcov-report/generators/viewport-suite.generator.ts.html +0 -307
  268. package/coverage/lcov-report/index.html +0 -266
  269. package/coverage/lcov-report/prettify.css +0 -1
  270. package/coverage/lcov-report/prettify.js +0 -2
  271. package/coverage/lcov-report/runtime/_collections/assertion-helpers.util.ts.html +0 -205
  272. package/coverage/lcov-report/runtime/_collections/index.html +0 -146
  273. package/coverage/lcov-report/runtime/_collections/unique-generator.util.ts.html +0 -256
  274. package/coverage/lcov-report/runtime/_collections/wait-helpers.util.ts.html +0 -238
  275. package/coverage/lcov-report/runtime/_services/dialog-page-object.ts.html +0 -157
  276. package/coverage/lcov-report/runtime/_services/field-page-object.ts.html +0 -253
  277. package/coverage/lcov-report/runtime/_services/form-page-object.ts.html +0 -184
  278. package/coverage/lcov-report/runtime/_services/index.html +0 -236
  279. package/coverage/lcov-report/runtime/_services/loader-page-object.ts.html +0 -142
  280. package/coverage/lcov-report/runtime/_services/logger.service.ts.html +0 -385
  281. package/coverage/lcov-report/runtime/_services/login-flow-helper.base.ts.html +0 -331
  282. package/coverage/lcov-report/runtime/_services/nav-page-object.ts.html +0 -145
  283. package/coverage/lcov-report/runtime/_services/toast-page-object.ts.html +0 -130
  284. package/coverage/lcov-report/runtime/_services/wave-2b-page-objects.ts.html +0 -397
  285. package/coverage/lcov-report/runtime/index.html +0 -116
  286. package/coverage/lcov-report/runtime/index.ts.html +0 -178
  287. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  288. package/coverage/lcov-report/sorter.js +0 -210
  289. package/coverage/lcov.info +0 -4047
  290. package/coverage/prettify.css +0 -1
  291. package/coverage/prettify.js +0 -2
  292. package/coverage/runtime/_collections/assertion-helpers.util.ts.html +0 -205
  293. package/coverage/runtime/_collections/index.html +0 -146
  294. package/coverage/runtime/_collections/unique-generator.util.ts.html +0 -256
  295. package/coverage/runtime/_collections/wait-helpers.util.ts.html +0 -238
  296. package/coverage/runtime/_services/dialog-page-object.ts.html +0 -157
  297. package/coverage/runtime/_services/field-page-object.ts.html +0 -253
  298. package/coverage/runtime/_services/form-page-object.ts.html +0 -184
  299. package/coverage/runtime/_services/index.html +0 -236
  300. package/coverage/runtime/_services/loader-page-object.ts.html +0 -142
  301. package/coverage/runtime/_services/logger.service.ts.html +0 -385
  302. package/coverage/runtime/_services/login-flow-helper.base.ts.html +0 -331
  303. package/coverage/runtime/_services/nav-page-object.ts.html +0 -145
  304. package/coverage/runtime/_services/toast-page-object.ts.html +0 -130
  305. package/coverage/runtime/_services/wave-2b-page-objects.ts.html +0 -397
  306. package/coverage/runtime/index.html +0 -116
  307. package/coverage/runtime/index.ts.html +0 -178
  308. package/coverage/sort-arrow-sprite.png +0 -0
  309. package/coverage/sorter.js +0 -210
  310. package/coverage/tmp/coverage-228636-1781075225757-0.json +0 -1
  311. package/coverage/tmp/coverage-228704-1781075227108-0.json +0 -1
  312. package/dogfood/PARITY-MATRIX.md +0 -67
  313. package/dogfood/generated/date-range-field-new.spec.ts +0 -54
  314. package/dogfood/generated/password-field-new.spec.ts +0 -97
  315. package/dogfood/generated/radio-select-field-new.spec.ts +0 -69
  316. package/dogfood/generated/slider-field-new.spec.ts +0 -47
  317. package/dogfood/generated/text-field-new.spec.ts +0 -0
  318. package/dogfood/generated-full/checkbox-field-new.spec.ts +0 -56
  319. package/dogfood/generated-full/date-field-new.spec.ts +0 -71
  320. package/dogfood/generated-full/date-range-field-new.spec.ts +0 -54
  321. package/dogfood/generated-full/datetime-field-new.spec.ts +0 -55
  322. package/dogfood/generated-full/multiselect-field-new.spec.ts +0 -69
  323. package/dogfood/generated-full/number-field-new.spec.ts +0 -113
  324. package/dogfood/generated-full/password-field-new.spec.ts +0 -97
  325. package/dogfood/generated-full/radio-select-field-new.spec.ts +0 -69
  326. package/dogfood/generated-full/sandbox-viewport-audit.spec.ts +0 -4643
  327. package/dogfood/generated-full/select-field-new.spec.ts +0 -69
  328. package/dogfood/generated-full/slider-field-new.spec.ts +0 -47
  329. package/dogfood/generated-full/slider-range-field-new.spec.ts +0 -54
  330. package/dogfood/generated-full/text-field-new.spec.ts +0 -0
  331. package/dogfood/generated-full/textarea-field-new.spec.ts +0 -72
  332. package/dogfood/sandbox-bootstrap-full.js +0 -248
  333. package/dogfood/sandbox-bootstrap.js +0 -170
  334. package/examples/minimal-form/README.md +0 -55
  335. package/examples/minimal-form/form-config.json +0 -38
  336. package/examples/multi-form-app/README.md +0 -63
  337. package/examples/multi-form-app/cwv-config.json +0 -14
  338. package/examples/multi-form-app/settings/login-form.json +0 -11
  339. package/examples/multi-form-app/settings/profile-form.json +0 -25
  340. package/examples/multi-form-app/viewport-config.json +0 -12
  341. package/logs/cicd-job.json +0 -3
  342. package/logs/cicd-report.json +0 -3
  343. 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
- });