@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,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
- });