@futdevpro/dynamo-e2e 1.18.10 → 1.18.12

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 (375) hide show
  1. package/CHANGELOG.md +20 -3
  2. package/LICENSE +21 -0
  3. package/README.md +3 -0
  4. package/build/_modules/contracts/_models/interfaces/form-test-suite-settings.interface.d.ts +8 -0
  5. package/build/_modules/contracts/_models/interfaces/form-test-suite-settings.interface.d.ts.map +1 -1
  6. package/build/_modules/cwv/_collections/cwv-diagnose.util.d.ts +13 -0
  7. package/build/_modules/cwv/_collections/cwv-diagnose.util.d.ts.map +1 -1
  8. package/build/_modules/cwv/_collections/cwv-diagnose.util.js +45 -1
  9. package/build/_modules/cwv/_collections/cwv-diagnose.util.js.map +1 -1
  10. package/build/_modules/cwv/_collections/web-vitals-page-script.const.d.ts.map +1 -1
  11. package/build/_modules/cwv/_collections/web-vitals-page-script.const.js +17 -1
  12. package/build/_modules/cwv/_collections/web-vitals-page-script.const.js.map +1 -1
  13. package/build/_modules/game/_models/game-contracts.interface.d.ts +82 -0
  14. package/build/_modules/game/_models/game-contracts.interface.d.ts.map +1 -0
  15. package/build/_modules/game/_models/game-contracts.interface.js +3 -0
  16. package/build/_modules/game/_models/game-contracts.interface.js.map +1 -0
  17. package/build/_modules/game/game-seam.helper.d.ts +40 -0
  18. package/build/_modules/game/game-seam.helper.d.ts.map +1 -0
  19. package/build/_modules/game/game-seam.helper.js +254 -0
  20. package/build/_modules/game/game-seam.helper.js.map +1 -0
  21. package/build/_modules/game/index.d.ts +4 -0
  22. package/build/_modules/game/index.d.ts.map +1 -0
  23. package/build/_modules/game/index.js +20 -0
  24. package/build/_modules/game/index.js.map +1 -0
  25. package/build/_modules/game/journey-catalog.validator.d.ts +5 -0
  26. package/build/_modules/game/journey-catalog.validator.d.ts.map +1 -0
  27. package/build/_modules/game/journey-catalog.validator.js +244 -0
  28. package/build/_modules/game/journey-catalog.validator.js.map +1 -0
  29. package/build/_modules/generators/_collections/cli-runner.util.d.ts.map +1 -1
  30. package/build/_modules/generators/_collections/cli-runner.util.js +28 -0
  31. package/build/_modules/generators/_collections/cli-runner.util.js.map +1 -1
  32. package/build/_modules/generators/_collections/field-emission.util.d.ts.map +1 -1
  33. package/build/_modules/generators/_collections/field-emission.util.js +51 -7
  34. package/build/_modules/generators/_collections/field-emission.util.js.map +1 -1
  35. package/build/_modules/generators/_collections/form-level-emission.util.d.ts.map +1 -1
  36. package/build/_modules/generators/_collections/form-level-emission.util.js +8 -0
  37. package/build/_modules/generators/_collections/form-level-emission.util.js.map +1 -1
  38. package/build/_modules/generators/_models/form-settings-shape.interface.d.ts +21 -0
  39. package/build/_modules/generators/_models/form-settings-shape.interface.d.ts.map +1 -1
  40. package/build/_modules/generators/form-suite.generator.d.ts +5 -0
  41. package/build/_modules/generators/form-suite.generator.d.ts.map +1 -1
  42. package/build/_modules/generators/form-suite.generator.js +53 -5
  43. package/build/_modules/generators/form-suite.generator.js.map +1 -1
  44. package/build/_modules/presets/_collections/playwright-config.factory.d.ts.map +1 -1
  45. package/build/_modules/presets/_collections/playwright-config.factory.js +6 -0
  46. package/build/_modules/presets/_collections/playwright-config.factory.js.map +1 -1
  47. package/build/_modules/presets/_models/interfaces/playwright-config-options.interface.d.ts +4 -0
  48. package/build/_modules/presets/_models/interfaces/playwright-config-options.interface.d.ts.map +1 -1
  49. package/build/_modules/vqa/_collections/utils/deterministic-finding.util.d.ts +2 -1
  50. package/build/_modules/vqa/_collections/utils/deterministic-finding.util.d.ts.map +1 -1
  51. package/build/_modules/vqa/_collections/utils/deterministic-finding.util.js.map +1 -1
  52. package/build/_modules/vqa/_models/interfaces/feature-manifest.interface.d.ts +29 -2
  53. package/build/_modules/vqa/_models/interfaces/feature-manifest.interface.d.ts.map +1 -1
  54. package/build/_modules/vqa/_models/interfaces/finding.interface.d.ts +2 -1
  55. package/build/_modules/vqa/_models/interfaces/finding.interface.d.ts.map +1 -1
  56. package/build/_modules/vqa/generators/ai-agent-readme.template.js +1 -1
  57. package/build/_modules/vqa/generators/bundle-summary.template.d.ts.map +1 -1
  58. package/build/_modules/vqa/generators/bundle-summary.template.js +1 -1
  59. package/build/_modules/vqa/generators/bundle-summary.template.js.map +1 -1
  60. package/build/_modules/vqa/generators/capture-spec.generator.d.ts +5 -0
  61. package/build/_modules/vqa/generators/capture-spec.generator.d.ts.map +1 -1
  62. package/build/_modules/vqa/generators/capture-spec.generator.js +26 -10
  63. package/build/_modules/vqa/generators/capture-spec.generator.js.map +1 -1
  64. package/build/_modules/vqa/generators/comparison-bundle.generator.d.ts.map +1 -1
  65. package/build/_modules/vqa/generators/comparison-bundle.generator.js +1 -1
  66. package/build/_modules/vqa/generators/comparison-bundle.generator.js.map +1 -1
  67. package/build/_modules/vqa/generators/review-bundle.generator.d.ts.map +1 -1
  68. package/build/_modules/vqa/generators/review-bundle.generator.js +2 -2
  69. package/build/_modules/vqa/generators/review-bundle.generator.js.map +1 -1
  70. package/build/index.d.ts +1 -0
  71. package/build/index.d.ts.map +1 -1
  72. package/build/index.js +2 -1
  73. package/build/index.js.map +1 -1
  74. package/package.json +37 -5
  75. package/.c8rc.json +0 -25
  76. package/.dynamo/pipeline.cicd.config.json +0 -167
  77. package/.dynamo/version-bump.config.json +0 -5
  78. package/.github/workflows/main.yml +0 -35
  79. package/BUILD.md +0 -36
  80. package/CONTRIBUTING.md +0 -90
  81. package/build/_modules/contracts/contracts.spec.d.ts +0 -2
  82. package/build/_modules/contracts/contracts.spec.d.ts.map +0 -1
  83. package/build/_modules/contracts/contracts.spec.js +0 -144
  84. package/build/_modules/contracts/contracts.spec.js.map +0 -1
  85. package/build/_modules/cwv/cwv-comparison.spec.d.ts +0 -2
  86. package/build/_modules/cwv/cwv-comparison.spec.d.ts.map +0 -1
  87. package/build/_modules/cwv/cwv-comparison.spec.js +0 -77
  88. package/build/_modules/cwv/cwv-comparison.spec.js.map +0 -1
  89. package/build/_modules/cwv/cwv-diagnose.spec.d.ts +0 -2
  90. package/build/_modules/cwv/cwv-diagnose.spec.d.ts.map +0 -1
  91. package/build/_modules/cwv/cwv-diagnose.spec.js +0 -78
  92. package/build/_modules/cwv/cwv-diagnose.spec.js.map +0 -1
  93. package/build/_modules/cwv/cwv-suite.generator.spec.d.ts +0 -2
  94. package/build/_modules/cwv/cwv-suite.generator.spec.d.ts.map +0 -1
  95. package/build/_modules/cwv/cwv-suite.generator.spec.js +0 -81
  96. package/build/_modules/cwv/cwv-suite.generator.spec.js.map +0 -1
  97. package/build/_modules/cwv/cwv-summarize.spec.d.ts +0 -2
  98. package/build/_modules/cwv/cwv-summarize.spec.d.ts.map +0 -1
  99. package/build/_modules/cwv/cwv-summarize.spec.js +0 -70
  100. package/build/_modules/cwv/cwv-summarize.spec.js.map +0 -1
  101. package/build/_modules/cwv/inp-emit-integration.spec.d.ts +0 -2
  102. package/build/_modules/cwv/inp-emit-integration.spec.d.ts.map +0 -1
  103. package/build/_modules/cwv/inp-emit-integration.spec.js +0 -43
  104. package/build/_modules/cwv/inp-emit-integration.spec.js.map +0 -1
  105. package/build/_modules/cwv/inp-interaction-driver.spec.d.ts +0 -2
  106. package/build/_modules/cwv/inp-interaction-driver.spec.d.ts.map +0 -1
  107. package/build/_modules/cwv/inp-interaction-driver.spec.js +0 -44
  108. package/build/_modules/cwv/inp-interaction-driver.spec.js.map +0 -1
  109. package/build/_modules/cwv/inp-script.spec.d.ts +0 -2
  110. package/build/_modules/cwv/inp-script.spec.d.ts.map +0 -1
  111. package/build/_modules/cwv/inp-script.spec.js +0 -35
  112. package/build/_modules/cwv/inp-script.spec.js.map +0 -1
  113. package/build/_modules/cwv/per-route-thresholds.spec.d.ts +0 -2
  114. package/build/_modules/cwv/per-route-thresholds.spec.d.ts.map +0 -1
  115. package/build/_modules/cwv/per-route-thresholds.spec.js +0 -37
  116. package/build/_modules/cwv/per-route-thresholds.spec.js.map +0 -1
  117. package/build/_modules/generators/bootstrap.spec.d.ts +0 -2
  118. package/build/_modules/generators/bootstrap.spec.d.ts.map +0 -1
  119. package/build/_modules/generators/bootstrap.spec.js +0 -46
  120. package/build/_modules/generators/bootstrap.spec.js.map +0 -1
  121. package/build/_modules/generators/cli-runner.spec.d.ts +0 -2
  122. package/build/_modules/generators/cli-runner.spec.d.ts.map +0 -1
  123. package/build/_modules/generators/cli-runner.spec.js +0 -93
  124. package/build/_modules/generators/cli-runner.spec.js.map +0 -1
  125. package/build/_modules/generators/config-validator.spec.d.ts +0 -2
  126. package/build/_modules/generators/config-validator.spec.d.ts.map +0 -1
  127. package/build/_modules/generators/config-validator.spec.js +0 -115
  128. package/build/_modules/generators/config-validator.spec.js.map +0 -1
  129. package/build/_modules/generators/doctor.spec.d.ts +0 -2
  130. package/build/_modules/generators/doctor.spec.d.ts.map +0 -1
  131. package/build/_modules/generators/doctor.spec.js +0 -68
  132. package/build/_modules/generators/doctor.spec.js.map +0 -1
  133. package/build/_modules/generators/field-emission-edge.spec.d.ts +0 -2
  134. package/build/_modules/generators/field-emission-edge.spec.d.ts.map +0 -1
  135. package/build/_modules/generators/field-emission-edge.spec.js +0 -164
  136. package/build/_modules/generators/field-emission-edge.spec.js.map +0 -1
  137. package/build/_modules/generators/form-suite.generator.spec.d.ts +0 -2
  138. package/build/_modules/generators/form-suite.generator.spec.d.ts.map +0 -1
  139. package/build/_modules/generators/form-suite.generator.spec.js +0 -188
  140. package/build/_modules/generators/form-suite.generator.spec.js.map +0 -1
  141. package/build/_modules/generators/info.spec.d.ts +0 -2
  142. package/build/_modules/generators/info.spec.d.ts.map +0 -1
  143. package/build/_modules/generators/info.spec.js +0 -42
  144. package/build/_modules/generators/info.spec.js.map +0 -1
  145. package/build/_modules/generators/json-schema.spec.d.ts +0 -2
  146. package/build/_modules/generators/json-schema.spec.d.ts.map +0 -1
  147. package/build/_modules/generators/json-schema.spec.js +0 -81
  148. package/build/_modules/generators/json-schema.spec.js.map +0 -1
  149. package/build/_modules/generators/preset-configs.spec.d.ts +0 -2
  150. package/build/_modules/generators/preset-configs.spec.d.ts.map +0 -1
  151. package/build/_modules/generators/preset-configs.spec.js +0 -53
  152. package/build/_modules/generators/preset-configs.spec.js.map +0 -1
  153. package/build/_modules/generators/test-case-filter-edge.spec.d.ts +0 -2
  154. package/build/_modules/generators/test-case-filter-edge.spec.d.ts.map +0 -1
  155. package/build/_modules/generators/test-case-filter-edge.spec.js +0 -105
  156. package/build/_modules/generators/test-case-filter-edge.spec.js.map +0 -1
  157. package/build/_modules/generators/viewport-suite.generator.spec.d.ts +0 -2
  158. package/build/_modules/generators/viewport-suite.generator.spec.d.ts.map +0 -1
  159. package/build/_modules/generators/viewport-suite.generator.spec.js +0 -59
  160. package/build/_modules/generators/viewport-suite.generator.spec.js.map +0 -1
  161. package/build/_modules/generators/wave-2b-emission.spec.d.ts +0 -2
  162. package/build/_modules/generators/wave-2b-emission.spec.d.ts.map +0 -1
  163. package/build/_modules/generators/wave-2b-emission.spec.js +0 -115
  164. package/build/_modules/generators/wave-2b-emission.spec.js.map +0 -1
  165. package/build/_modules/presets/presets.spec.d.ts +0 -2
  166. package/build/_modules/presets/presets.spec.d.ts.map +0 -1
  167. package/build/_modules/presets/presets.spec.js +0 -286
  168. package/build/_modules/presets/presets.spec.js.map +0 -1
  169. package/build/_modules/runtime/assertion-helpers.spec.d.ts +0 -2
  170. package/build/_modules/runtime/assertion-helpers.spec.d.ts.map +0 -1
  171. package/build/_modules/runtime/assertion-helpers.spec.js +0 -57
  172. package/build/_modules/runtime/assertion-helpers.spec.js.map +0 -1
  173. package/build/_modules/runtime/logger.service.spec.d.ts +0 -2
  174. package/build/_modules/runtime/logger.service.spec.d.ts.map +0 -1
  175. package/build/_modules/runtime/logger.service.spec.js +0 -61
  176. package/build/_modules/runtime/logger.service.spec.js.map +0 -1
  177. package/build/_modules/runtime/login-flow-helper.spec.d.ts +0 -2
  178. package/build/_modules/runtime/login-flow-helper.spec.d.ts.map +0 -1
  179. package/build/_modules/runtime/login-flow-helper.spec.js +0 -74
  180. package/build/_modules/runtime/login-flow-helper.spec.js.map +0 -1
  181. package/build/_modules/runtime/page-objects.spec.d.ts +0 -2
  182. package/build/_modules/runtime/page-objects.spec.d.ts.map +0 -1
  183. package/build/_modules/runtime/page-objects.spec.js +0 -241
  184. package/build/_modules/runtime/page-objects.spec.js.map +0 -1
  185. package/build/_modules/runtime/runtime.spec.d.ts +0 -2
  186. package/build/_modules/runtime/runtime.spec.d.ts.map +0 -1
  187. package/build/_modules/runtime/runtime.spec.js +0 -73
  188. package/build/_modules/runtime/runtime.spec.js.map +0 -1
  189. package/build/_modules/runtime/unique-generator.spec.d.ts +0 -2
  190. package/build/_modules/runtime/unique-generator.spec.d.ts.map +0 -1
  191. package/build/_modules/runtime/unique-generator.spec.js +0 -41
  192. package/build/_modules/runtime/unique-generator.spec.js.map +0 -1
  193. package/build/_modules/runtime/wave-2b-page-objects.spec.d.ts +0 -2
  194. package/build/_modules/runtime/wave-2b-page-objects.spec.d.ts.map +0 -1
  195. package/build/_modules/runtime/wave-2b-page-objects.spec.js +0 -130
  196. package/build/_modules/runtime/wave-2b-page-objects.spec.js.map +0 -1
  197. package/build/_modules/vqa/capture-spec.generator.spec.d.ts +0 -2
  198. package/build/_modules/vqa/capture-spec.generator.spec.d.ts.map +0 -1
  199. package/build/_modules/vqa/capture-spec.generator.spec.js +0 -126
  200. package/build/_modules/vqa/capture-spec.generator.spec.js.map +0 -1
  201. package/build/_modules/vqa/comparison-bundle.generator.spec.d.ts +0 -2
  202. package/build/_modules/vqa/comparison-bundle.generator.spec.d.ts.map +0 -1
  203. package/build/_modules/vqa/comparison-bundle.generator.spec.js +0 -130
  204. package/build/_modules/vqa/comparison-bundle.generator.spec.js.map +0 -1
  205. package/build/_modules/vqa/finding-validator.spec.d.ts +0 -2
  206. package/build/_modules/vqa/finding-validator.spec.d.ts.map +0 -1
  207. package/build/_modules/vqa/finding-validator.spec.js +0 -136
  208. package/build/_modules/vqa/finding-validator.spec.js.map +0 -1
  209. package/build/_modules/vqa/manifest-validator.spec.d.ts +0 -2
  210. package/build/_modules/vqa/manifest-validator.spec.d.ts.map +0 -1
  211. package/build/_modules/vqa/manifest-validator.spec.js +0 -125
  212. package/build/_modules/vqa/manifest-validator.spec.js.map +0 -1
  213. package/build/_modules/vqa/review-bundle.generator.spec.d.ts +0 -2
  214. package/build/_modules/vqa/review-bundle.generator.spec.d.ts.map +0 -1
  215. package/build/_modules/vqa/review-bundle.generator.spec.js +0 -166
  216. package/build/_modules/vqa/review-bundle.generator.spec.js.map +0 -1
  217. package/build/_modules/vqa/wave-7.spec.d.ts +0 -2
  218. package/build/_modules/vqa/wave-7.spec.d.ts.map +0 -1
  219. package/build/_modules/vqa/wave-7.spec.js +0 -203
  220. package/build/_modules/vqa/wave-7.spec.js.map +0 -1
  221. package/coverage/base.css +0 -224
  222. package/coverage/block-navigation.js +0 -87
  223. package/coverage/contracts/_collections/index.html +0 -116
  224. package/coverage/contracts/_collections/index.ts.html +0 -97
  225. package/coverage/contracts/_collections/utils/index.html +0 -116
  226. package/coverage/contracts/_collections/utils/test-id.util.ts.html +0 -172
  227. package/coverage/contracts/_enums/cwv-metric-type.enum.ts.html +0 -145
  228. package/coverage/contracts/_enums/field-test-case-type.enum.ts.html +0 -394
  229. package/coverage/contracts/_enums/index.html +0 -191
  230. package/coverage/contracts/_enums/index.ts.html +0 -100
  231. package/coverage/contracts/_enums/standard-viewport.enum.ts.html +0 -127
  232. package/coverage/contracts/_enums/test-expectation-type.enum.ts.html +0 -133
  233. package/coverage/contracts/_enums/test-run-mode-type.enum.ts.html +0 -130
  234. package/coverage/contracts/index.html +0 -116
  235. package/coverage/contracts/index.ts.html +0 -121
  236. package/coverage/cwv/_collections/cwv-aggregator.util.ts.html +0 -241
  237. package/coverage/cwv/_collections/cwv-comparison.util.ts.html +0 -355
  238. package/coverage/cwv/_collections/cwv-diagnose.util.ts.html +0 -553
  239. package/coverage/cwv/_collections/cwv-emission.util.ts.html +0 -448
  240. package/coverage/cwv/_collections/cwv-summarize.util.ts.html +0 -325
  241. package/coverage/cwv/_collections/index.html +0 -206
  242. package/coverage/cwv/_collections/inp-interaction-script.const.ts.html +0 -304
  243. package/coverage/cwv/_collections/web-vitals-page-script.const.ts.html +0 -331
  244. package/coverage/cwv/cwv-suite.generator.ts.html +0 -277
  245. package/coverage/cwv/index.html +0 -116
  246. package/coverage/favicon.png +0 -0
  247. package/coverage/generators/_collections/cli-runner.util.ts.html +0 -919
  248. package/coverage/generators/_collections/config-validator.util.ts.html +0 -397
  249. package/coverage/generators/_collections/field-emission.util.ts.html +0 -604
  250. package/coverage/generators/_collections/form-level-emission.util.ts.html +0 -220
  251. package/coverage/generators/_collections/index.html +0 -236
  252. package/coverage/generators/_collections/json-schema.util.ts.html +0 -652
  253. package/coverage/generators/_collections/preset-configs.const.ts.html +0 -328
  254. package/coverage/generators/_collections/spec-emission.util.ts.html +0 -298
  255. package/coverage/generators/_collections/test-case-filter.util.ts.html +0 -523
  256. package/coverage/generators/_collections/viewport-emission.util.ts.html +0 -313
  257. package/coverage/generators/form-suite.generator.ts.html +0 -406
  258. package/coverage/generators/index.html +0 -131
  259. package/coverage/generators/viewport-suite.generator.ts.html +0 -307
  260. package/coverage/index.html +0 -266
  261. package/coverage/lcov-report/base.css +0 -224
  262. package/coverage/lcov-report/block-navigation.js +0 -87
  263. package/coverage/lcov-report/contracts/_collections/index.html +0 -116
  264. package/coverage/lcov-report/contracts/_collections/index.ts.html +0 -97
  265. package/coverage/lcov-report/contracts/_collections/utils/index.html +0 -116
  266. package/coverage/lcov-report/contracts/_collections/utils/test-id.util.ts.html +0 -172
  267. package/coverage/lcov-report/contracts/_enums/cwv-metric-type.enum.ts.html +0 -145
  268. package/coverage/lcov-report/contracts/_enums/field-test-case-type.enum.ts.html +0 -394
  269. package/coverage/lcov-report/contracts/_enums/index.html +0 -191
  270. package/coverage/lcov-report/contracts/_enums/index.ts.html +0 -100
  271. package/coverage/lcov-report/contracts/_enums/standard-viewport.enum.ts.html +0 -127
  272. package/coverage/lcov-report/contracts/_enums/test-expectation-type.enum.ts.html +0 -133
  273. package/coverage/lcov-report/contracts/_enums/test-run-mode-type.enum.ts.html +0 -130
  274. package/coverage/lcov-report/contracts/index.html +0 -116
  275. package/coverage/lcov-report/contracts/index.ts.html +0 -121
  276. package/coverage/lcov-report/cwv/_collections/cwv-aggregator.util.ts.html +0 -241
  277. package/coverage/lcov-report/cwv/_collections/cwv-comparison.util.ts.html +0 -355
  278. package/coverage/lcov-report/cwv/_collections/cwv-diagnose.util.ts.html +0 -553
  279. package/coverage/lcov-report/cwv/_collections/cwv-emission.util.ts.html +0 -448
  280. package/coverage/lcov-report/cwv/_collections/cwv-summarize.util.ts.html +0 -325
  281. package/coverage/lcov-report/cwv/_collections/index.html +0 -206
  282. package/coverage/lcov-report/cwv/_collections/inp-interaction-script.const.ts.html +0 -304
  283. package/coverage/lcov-report/cwv/_collections/web-vitals-page-script.const.ts.html +0 -331
  284. package/coverage/lcov-report/cwv/cwv-suite.generator.ts.html +0 -277
  285. package/coverage/lcov-report/cwv/index.html +0 -116
  286. package/coverage/lcov-report/favicon.png +0 -0
  287. package/coverage/lcov-report/generators/_collections/cli-runner.util.ts.html +0 -919
  288. package/coverage/lcov-report/generators/_collections/config-validator.util.ts.html +0 -397
  289. package/coverage/lcov-report/generators/_collections/field-emission.util.ts.html +0 -604
  290. package/coverage/lcov-report/generators/_collections/form-level-emission.util.ts.html +0 -220
  291. package/coverage/lcov-report/generators/_collections/index.html +0 -236
  292. package/coverage/lcov-report/generators/_collections/json-schema.util.ts.html +0 -652
  293. package/coverage/lcov-report/generators/_collections/preset-configs.const.ts.html +0 -328
  294. package/coverage/lcov-report/generators/_collections/spec-emission.util.ts.html +0 -298
  295. package/coverage/lcov-report/generators/_collections/test-case-filter.util.ts.html +0 -523
  296. package/coverage/lcov-report/generators/_collections/viewport-emission.util.ts.html +0 -313
  297. package/coverage/lcov-report/generators/form-suite.generator.ts.html +0 -406
  298. package/coverage/lcov-report/generators/index.html +0 -131
  299. package/coverage/lcov-report/generators/viewport-suite.generator.ts.html +0 -307
  300. package/coverage/lcov-report/index.html +0 -266
  301. package/coverage/lcov-report/prettify.css +0 -1
  302. package/coverage/lcov-report/prettify.js +0 -2
  303. package/coverage/lcov-report/runtime/_collections/assertion-helpers.util.ts.html +0 -205
  304. package/coverage/lcov-report/runtime/_collections/index.html +0 -146
  305. package/coverage/lcov-report/runtime/_collections/unique-generator.util.ts.html +0 -256
  306. package/coverage/lcov-report/runtime/_collections/wait-helpers.util.ts.html +0 -238
  307. package/coverage/lcov-report/runtime/_services/dialog-page-object.ts.html +0 -157
  308. package/coverage/lcov-report/runtime/_services/field-page-object.ts.html +0 -253
  309. package/coverage/lcov-report/runtime/_services/form-page-object.ts.html +0 -184
  310. package/coverage/lcov-report/runtime/_services/index.html +0 -236
  311. package/coverage/lcov-report/runtime/_services/loader-page-object.ts.html +0 -142
  312. package/coverage/lcov-report/runtime/_services/logger.service.ts.html +0 -385
  313. package/coverage/lcov-report/runtime/_services/login-flow-helper.base.ts.html +0 -331
  314. package/coverage/lcov-report/runtime/_services/nav-page-object.ts.html +0 -145
  315. package/coverage/lcov-report/runtime/_services/toast-page-object.ts.html +0 -130
  316. package/coverage/lcov-report/runtime/_services/wave-2b-page-objects.ts.html +0 -397
  317. package/coverage/lcov-report/runtime/index.html +0 -116
  318. package/coverage/lcov-report/runtime/index.ts.html +0 -178
  319. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  320. package/coverage/lcov-report/sorter.js +0 -210
  321. package/coverage/lcov.info +0 -4047
  322. package/coverage/prettify.css +0 -1
  323. package/coverage/prettify.js +0 -2
  324. package/coverage/runtime/_collections/assertion-helpers.util.ts.html +0 -205
  325. package/coverage/runtime/_collections/index.html +0 -146
  326. package/coverage/runtime/_collections/unique-generator.util.ts.html +0 -256
  327. package/coverage/runtime/_collections/wait-helpers.util.ts.html +0 -238
  328. package/coverage/runtime/_services/dialog-page-object.ts.html +0 -157
  329. package/coverage/runtime/_services/field-page-object.ts.html +0 -253
  330. package/coverage/runtime/_services/form-page-object.ts.html +0 -184
  331. package/coverage/runtime/_services/index.html +0 -236
  332. package/coverage/runtime/_services/loader-page-object.ts.html +0 -142
  333. package/coverage/runtime/_services/logger.service.ts.html +0 -385
  334. package/coverage/runtime/_services/login-flow-helper.base.ts.html +0 -331
  335. package/coverage/runtime/_services/nav-page-object.ts.html +0 -145
  336. package/coverage/runtime/_services/toast-page-object.ts.html +0 -130
  337. package/coverage/runtime/_services/wave-2b-page-objects.ts.html +0 -397
  338. package/coverage/runtime/index.html +0 -116
  339. package/coverage/runtime/index.ts.html +0 -178
  340. package/coverage/sort-arrow-sprite.png +0 -0
  341. package/coverage/sorter.js +0 -210
  342. package/coverage/tmp/coverage-228636-1781075225757-0.json +0 -1
  343. package/coverage/tmp/coverage-228704-1781075227108-0.json +0 -1
  344. package/dogfood/PARITY-MATRIX.md +0 -67
  345. package/dogfood/generated/date-range-field-new.spec.ts +0 -54
  346. package/dogfood/generated/password-field-new.spec.ts +0 -97
  347. package/dogfood/generated/radio-select-field-new.spec.ts +0 -69
  348. package/dogfood/generated/slider-field-new.spec.ts +0 -47
  349. package/dogfood/generated/text-field-new.spec.ts +0 -0
  350. package/dogfood/generated-full/checkbox-field-new.spec.ts +0 -56
  351. package/dogfood/generated-full/date-field-new.spec.ts +0 -71
  352. package/dogfood/generated-full/date-range-field-new.spec.ts +0 -54
  353. package/dogfood/generated-full/datetime-field-new.spec.ts +0 -55
  354. package/dogfood/generated-full/multiselect-field-new.spec.ts +0 -69
  355. package/dogfood/generated-full/number-field-new.spec.ts +0 -113
  356. package/dogfood/generated-full/password-field-new.spec.ts +0 -97
  357. package/dogfood/generated-full/radio-select-field-new.spec.ts +0 -69
  358. package/dogfood/generated-full/sandbox-viewport-audit.spec.ts +0 -4643
  359. package/dogfood/generated-full/select-field-new.spec.ts +0 -69
  360. package/dogfood/generated-full/slider-field-new.spec.ts +0 -47
  361. package/dogfood/generated-full/slider-range-field-new.spec.ts +0 -54
  362. package/dogfood/generated-full/text-field-new.spec.ts +0 -0
  363. package/dogfood/generated-full/textarea-field-new.spec.ts +0 -72
  364. package/dogfood/sandbox-bootstrap-full.js +0 -248
  365. package/dogfood/sandbox-bootstrap.js +0 -170
  366. package/examples/minimal-form/README.md +0 -55
  367. package/examples/minimal-form/form-config.json +0 -38
  368. package/examples/multi-form-app/README.md +0 -63
  369. package/examples/multi-form-app/cwv-config.json +0 -14
  370. package/examples/multi-form-app/settings/login-form.json +0 -11
  371. package/examples/multi-form-app/settings/profile-form.json +0 -25
  372. package/examples/multi-form-app/viewport-config.json +0 -12
  373. package/logs/cicd-job.json +0 -3
  374. package/logs/cicd-report.json +0 -3
  375. package/logs/cicd-status.json +0 -3
@@ -1,67 +0,0 @@
1
- # MP-08 SP-A — Sandbox dogfood parity matrix
2
-
3
- A `dynamo-ngx-sandbox` jelenleg **54 hand-rolled e2e tesztet** futtat a
4
- Forms v2 wave-1B + wave-2a field-ekre (`dynamo-ngx/e2e/tests/forms-v2/*.spec.ts`).
5
- Ez a doku méri fel, hogy a `dynamo-e2e` generated suite **paritást ad-e**.
6
-
7
- ## Hand-rolled vs. generated coverage
8
-
9
- | Sandbox route | Hand-rolled tesztek (jelenlegi) | Generated tesztek (Wave-1) | Δ |
10
- |---|---|---|---|
11
- | `/c/text-field-new` | a `form-new.spec.ts` keretében (label/keyboard/validators) | 16 (text matrix) | parity+ |
12
- | `/c/password-field-new` | 12 (`password-field.spec.ts`) | 9 (password matrix) + 3 form-level | -3 (a reveal-toggle interakció hiányzik a generator-ban) |
13
- | `/c/slider-field-new` | 4 (`wave-2a-fields.spec.ts`) | 3 (slider matrix) | -1 (drag-with-keyboard) |
14
- | `/c/slider-range-field-new` | 4 | 3 (sliderRange matrix) + 3 form-level | parity |
15
- | `/c/radio-select-field-new` | 4 | 5 (radio matrix) | +1 |
16
- | `/c/datetime-field-new` | 3 | 4 (datetime matrix) | +1 |
17
- | `/c/date-range-field-new` | 6 | 3 (dateRange matrix) | -3 (allowSameDay-edge a custom-case-be kell tenni) |
18
- | **TOTAL** | **~54** | **~62 (per-field) + 21 (form-level)** | **+30** |
19
-
20
- ## Hiányzó capability-k a generator-ban (Wave-2 TODO)
21
-
22
- 1. **Reveal-toggle interaction** (password) — a `password-field-new` 👁
23
- button click-flow-ja nincs a curated mátrixban. Wave-2 SP-2 javaslat:
24
- `DyE2E_FieldTestCase_Type.revealToggle` enum-érték + dedikált
25
- password-emission-ág.
26
-
27
- 2. **Drag-with-keyboard** (slider) — `ArrowLeft` / `ArrowRight` / `Home` /
28
- `End` press-sequencé a sliderben. Wave-2 SP-3: `keyboardOnly`
29
- test-case-type emission generic-keyboardarrow flow-val.
30
-
31
- 3. **allowSameDay edge** (dateRange) — `settings.allowSameDay === false`
32
- esetén a `startEqualsEnd` case `valid` → `invalid` flip-eli a
33
- shape-eljárás. A `DyE2E_TestCaseFilter_Util.filter()` jelenleg NEM
34
- nézi az `allowSameDay` settings-flag-et. Wave-2 SP-1.
35
-
36
- 4. **Label / keyboard / focus-trap** (text) — a `form-new.spec.ts`
37
- keretes-tesztjei a label-render-t és focus-flow-t ellenőrzik. Ez
38
- form-level orchestrator extension, NEM per-field — generator-szinten
39
- új form-level emit-szignatúra kell.
40
-
41
- ## Replacement stratégia (Wave-1.5)
42
-
43
- - **Side-by-side**: hand-rolled + generated egyaránt megmarad, a
44
- Playwright projekt mind a kettőt futtatja. A generated suite
45
- igazolásra: 0 regresszió.
46
- - **Drop-in (Wave-2)**: a Wave-2 hiányzó capability-k pótlása után
47
- a hand-rolled suite tönkre-mehet, kivéve a 4-féle "nem-mappázott"
48
- edge-case-t (lásd fent), amelyek custom-override-ban élnek tovább.
49
-
50
- ## Generated specs lokálisan
51
-
52
- ```bash
53
- node dogfood/sandbox-bootstrap.js
54
- ls dogfood/generated/
55
- # → text-field-new.spec.ts password-field-new.spec.ts slider-field-new.spec.ts
56
- # radio-select-field-new.spec.ts date-range-field-new.spec.ts
57
- ```
58
-
59
- A generated spec-ek **deterministicak** (lásd a `STAMP_BUILT_AT` const-ot a
60
- generator-ban) — a bootstrap script azonos input-ra azonos output-ot ad.
61
-
62
- ## Következő lépés (MP-08 SP-C..F)
63
-
64
- - SP-C — minden Forms v2 sandbox route generated suite-eljárás
65
- - SP-D — `dynamo-ngx/e2e/tests/forms-v2/` mellé bekötés side-by-side mód
66
- - SP-E — Hand-rolled törlés Wave-2 lezárása után
67
- - SP-F — Sandbox CICD pipeline-update (`coverage` step a generated suite-ra is)
@@ -1,54 +0,0 @@
1
- /**
2
- * Auto-generated by @futdevpro/dynamo-e2e — FormSuite Generator
3
- * Form key: sandbox-date-range-default
4
- * Route: /c/date-range-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_DateRangeFieldNew (Default variant)', (): void => {
14
-
15
- test.describe('Field: vacationRange (dateRange)', (): void => {
16
- test.beforeEach(async ({ page }): Promise<void> => {
17
- const response = await page.goto('/c/date-range-field-new');
18
- expect(response?.ok()).toBeTruthy();
19
- await page.locator('dynamo-date-range-field-new').first().waitFor({ state: 'visible' });
20
- });
21
-
22
- test('field[vacationRange] dateRange:valid → valid — normál tartomány', async ({ page }): Promise<void> => {
23
- const startInput: Locator = page.getByTestId('sandbox-date-range-default-start');
24
- const endInput: Locator = page.getByTestId('sandbox-date-range-default-end');
25
- await startInput.fill('2026-06-01');
26
- await endInput.fill('2026-06-30');
27
- await endInput.blur();
28
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-date-range-default"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
29
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
30
- });
31
-
32
- test('field[vacationRange] dateRange:equal → valid — start === end (allowSameDay)', async ({ page }): Promise<void> => {
33
- const startInput: Locator = page.getByTestId('sandbox-date-range-default-start');
34
- const endInput: Locator = page.getByTestId('sandbox-date-range-default-end');
35
- await startInput.fill('2026-06-15');
36
- await endInput.fill('2026-06-15');
37
- await endInput.blur();
38
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-date-range-default"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
39
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
40
- });
41
-
42
- test('field[vacationRange] dateRange:start-after-end → invalid:dateRange — start > end → cross-field error', async ({ page }): Promise<void> => {
43
- const startInput: Locator = page.getByTestId('sandbox-date-range-default-start');
44
- const endInput: Locator = page.getByTestId('sandbox-date-range-default-end');
45
- await startInput.fill('2026-06-30');
46
- await endInput.fill('2026-06-01');
47
- await endInput.blur();
48
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-date-range-default"]').locator('xpath=ancestor-or-self::*[starts-with(local-name(),"dynamo-")]').first();
49
- await expect(fieldRoot.locator('.text-red-400.mt-1').first()).toBeVisible();
50
- // expectedErrorKey: dateRange
51
- });
52
- });
53
-
54
- });
@@ -1,97 +0,0 @@
1
- /**
2
- * Auto-generated by @futdevpro/dynamo-e2e — FormSuite Generator
3
- * Form key: sandbox-pwd-required
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 variant)', (): 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: sandbox-radio-vertical
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 variant)', (): 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
- });
@@ -1,47 +0,0 @@
1
- /**
2
- * Auto-generated by @futdevpro/dynamo-e2e — FormSuite Generator
3
- * Form key: sandbox-slider-default
4
- * Route: /c/slider-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_SliderFieldNew (Default 0-100)', (): void => {
14
-
15
- test.describe('Field: volume (slider)', (): void => {
16
- test.beforeEach(async ({ page }): Promise<void> => {
17
- const response = await page.goto('/c/slider-field-new');
18
- expect(response?.ok()).toBeTruthy();
19
- await page.locator('dynamo-slider-field-new').first().waitFor({ state: 'visible' });
20
- });
21
-
22
- test('field[volume] slider:min → valid — min-érték', async ({ page }): Promise<void> => {
23
- const input: Locator = page.getByTestId('sandbox-slider-default');
24
- await input.fill(String(0 ?? ''));
25
- await input.blur();
26
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-slider-default"]').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[volume] slider:max → valid — max-érték', async ({ page }): Promise<void> => {
31
- const input: Locator = page.getByTestId('sandbox-slider-default');
32
- await input.fill(String(100 ?? ''));
33
- await input.blur();
34
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-slider-default"]').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[volume] slider:mid → valid — közepes érték', async ({ page }): Promise<void> => {
39
- const input: Locator = page.getByTestId('sandbox-slider-default');
40
- await input.fill(String(50 ?? ''));
41
- await input.blur();
42
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-slider-default"]').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
-
47
- });
@@ -1,56 +0,0 @@
1
- /**
2
- * Auto-generated by @futdevpro/dynamo-e2e — FormSuite Generator
3
- * Form key: sb-checkbox
4
- * Route: /c/checkbox-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_CheckboxFieldNew', (): void => {
14
-
15
- test.describe('Field: agree (checkbox)', (): void => {
16
- test.beforeEach(async ({ page }): Promise<void> => {
17
- const response = await page.goto('/c/checkbox-field-new');
18
- expect(response?.ok()).toBeTruthy();
19
- await page.locator('dynamo-checkbox-field-new').first().waitFor({ state: 'visible' });
20
- });
21
-
22
- test('field[agree] cb:initial-unchecked → valid — kezdeti unchecked', async ({ page }): Promise<void> => {
23
- const checkbox: Locator = page.getByTestId('sandbox-checkbox-required');
24
- await checkbox.uncheck();
25
- await checkbox.blur();
26
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-checkbox-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[agree] cb:toggle-once → valid — 1× click → checked', async ({ page }): Promise<void> => {
31
- const checkbox: Locator = page.getByTestId('sandbox-checkbox-required');
32
- await checkbox.check();
33
- await checkbox.blur();
34
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-checkbox-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[agree] cb:toggle-twice → valid — 2× click → unchecked', async ({ page }): Promise<void> => {
39
- const checkbox: Locator = page.getByTestId('sandbox-checkbox-required');
40
- await checkbox.uncheck();
41
- await checkbox.blur();
42
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-checkbox-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[agree] cb:required-unchecked → invalid:required — required + unchecked → form-invalid', async ({ page }): Promise<void> => {
47
- const checkbox: Locator = page.getByTestId('sandbox-checkbox-required');
48
- await checkbox.uncheck();
49
- await checkbox.blur();
50
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-checkbox-required"]').locator('xpath=ancestor-or-self::*[starts-with(local-name(),"dynamo-")]').first();
51
- await expect(fieldRoot.locator('.text-red-400.mt-1').first()).toBeVisible();
52
- // expectedErrorKey: required
53
- });
54
- });
55
-
56
- });
@@ -1,71 +0,0 @@
1
- /**
2
- * Auto-generated by @futdevpro/dynamo-e2e — FormSuite Generator
3
- * Form key: sb-date
4
- * Route: /c/date-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_DateFieldNew', (): void => {
14
-
15
- test.describe('Field: birthDate (date)', (): void => {
16
- test.beforeEach(async ({ page }): Promise<void> => {
17
- const response = await page.goto('/c/date-field-new');
18
- expect(response?.ok()).toBeTruthy();
19
- await page.locator('dynamo-date-field-new').first().waitFor({ state: 'visible' });
20
- });
21
-
22
- test('field[birthDate] date:empty → valid — üres dátum', async ({ page }): Promise<void> => {
23
- const input: Locator = page.getByTestId('sandbox-date-default');
24
- await input.fill('');
25
- await input.blur();
26
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-date-default"]').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[birthDate] date:today → valid — mai dátum', async ({ page }): Promise<void> => {
31
- const input: Locator = page.getByTestId('sandbox-date-default');
32
- await input.fill('2026-06-10');
33
- await input.blur();
34
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-date-default"]').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[birthDate] date:leap-feb29 → valid — szökőév feb 29.', async ({ page }): Promise<void> => {
39
- const input: Locator = page.getByTestId('sandbox-date-default');
40
- await input.fill('2024-02-29');
41
- await input.blur();
42
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-date-default"]').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[birthDate] date:before-y2k → valid — Y2K előtti dátum', async ({ page }): Promise<void> => {
47
- const input: Locator = page.getByTestId('sandbox-date-default');
48
- await input.fill('1999-12-31');
49
- await input.blur();
50
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-date-default"]').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[birthDate] date:before-unix-epoch → valid — Unix epoch előtt', async ({ page }): Promise<void> => {
55
- const input: Locator = page.getByTestId('sandbox-date-default');
56
- await input.fill('1969-12-31');
57
- await input.blur();
58
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-date-default"]').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[birthDate] date:far-future → valid — messzi jövő', async ({ page }): Promise<void> => {
63
- const input: Locator = page.getByTestId('sandbox-date-default');
64
- await input.fill('2099-12-31');
65
- await input.blur();
66
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-date-default"]').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
-
71
- });
@@ -1,54 +0,0 @@
1
- /**
2
- * Auto-generated by @futdevpro/dynamo-e2e — FormSuite Generator
3
- * Form key: sb-date-range
4
- * Route: /c/date-range-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_DateRangeFieldNew', (): void => {
14
-
15
- test.describe('Field: vacation (dateRange)', (): void => {
16
- test.beforeEach(async ({ page }): Promise<void> => {
17
- const response = await page.goto('/c/date-range-field-new');
18
- expect(response?.ok()).toBeTruthy();
19
- await page.locator('dynamo-date-range-field-new').first().waitFor({ state: 'visible' });
20
- });
21
-
22
- test('field[vacation] dateRange:valid → valid — normál tartomány', async ({ page }): Promise<void> => {
23
- const startInput: Locator = page.getByTestId('sandbox-date-range-default-start');
24
- const endInput: Locator = page.getByTestId('sandbox-date-range-default-end');
25
- await startInput.fill('2026-06-01');
26
- await endInput.fill('2026-06-30');
27
- await endInput.blur();
28
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-date-range-default"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
29
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
30
- });
31
-
32
- test('field[vacation] dateRange:equal → valid — start === end (allowSameDay)', async ({ page }): Promise<void> => {
33
- const startInput: Locator = page.getByTestId('sandbox-date-range-default-start');
34
- const endInput: Locator = page.getByTestId('sandbox-date-range-default-end');
35
- await startInput.fill('2026-06-15');
36
- await endInput.fill('2026-06-15');
37
- await endInput.blur();
38
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-date-range-default"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
39
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
40
- });
41
-
42
- test('field[vacation] dateRange:start-after-end → invalid:dateRange — start > end → cross-field error', async ({ page }): Promise<void> => {
43
- const startInput: Locator = page.getByTestId('sandbox-date-range-default-start');
44
- const endInput: Locator = page.getByTestId('sandbox-date-range-default-end');
45
- await startInput.fill('2026-06-30');
46
- await endInput.fill('2026-06-01');
47
- await endInput.blur();
48
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-date-range-default"]').locator('xpath=ancestor-or-self::*[starts-with(local-name(),"dynamo-")]').first();
49
- await expect(fieldRoot.locator('.text-red-400.mt-1').first()).toBeVisible();
50
- // expectedErrorKey: dateRange
51
- });
52
- });
53
-
54
- });
@@ -1,55 +0,0 @@
1
- /**
2
- * Auto-generated by @futdevpro/dynamo-e2e — FormSuite Generator
3
- * Form key: sb-datetime
4
- * Route: /c/datetime-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_DateTimeFieldNew (Bounded)', (): void => {
14
-
15
- test.describe('Field: meetingAt (dateTime)', (): void => {
16
- test.beforeEach(async ({ page }): Promise<void> => {
17
- const response = await page.goto('/c/datetime-field-new');
18
- expect(response?.ok()).toBeTruthy();
19
- await page.locator('dynamo-datetime-field-new').first().waitFor({ state: 'visible' });
20
- });
21
-
22
- test('field[meetingAt] datetime:empty → valid — üres datetime', async ({ page }): Promise<void> => {
23
- const input: Locator = page.getByTestId('sandbox-datetime-bounded');
24
- await input.fill('');
25
- await input.blur();
26
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-datetime-bounded"]').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[meetingAt] datetime:midnight → valid — éjfél (00:00)', async ({ page }): Promise<void> => {
31
- const input: Locator = page.getByTestId('sandbox-datetime-bounded');
32
- await input.fill('2026-06-10T00:00');
33
- await input.blur();
34
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-datetime-bounded"]').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[meetingAt] datetime:noon → valid — dél (12:00)', async ({ page }): Promise<void> => {
39
- const input: Locator = page.getByTestId('sandbox-datetime-bounded');
40
- await input.fill('2026-06-10T12:00');
41
- await input.blur();
42
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-datetime-bounded"]').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[meetingAt] datetime:end-of-day → valid — nap vége (23:59)', async ({ page }): Promise<void> => {
47
- const input: Locator = page.getByTestId('sandbox-datetime-bounded');
48
- await input.fill('2026-06-10T23:59');
49
- await input.blur();
50
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-datetime-bounded"]').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
-
55
- });