@futdevpro/dynamo-e2e 1.18.9 → 1.18.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (343) hide show
  1. package/CHANGELOG.md +12 -2
  2. package/LICENSE +21 -0
  3. package/README.md +3 -0
  4. package/build/_modules/game/_models/game-contracts.interface.d.ts +82 -0
  5. package/build/_modules/game/_models/game-contracts.interface.d.ts.map +1 -0
  6. package/build/_modules/game/_models/game-contracts.interface.js +3 -0
  7. package/build/_modules/game/_models/game-contracts.interface.js.map +1 -0
  8. package/build/_modules/game/game-seam.helper.d.ts +40 -0
  9. package/build/_modules/game/game-seam.helper.d.ts.map +1 -0
  10. package/build/_modules/game/game-seam.helper.js +254 -0
  11. package/build/_modules/game/game-seam.helper.js.map +1 -0
  12. package/build/_modules/game/index.d.ts +4 -0
  13. package/build/_modules/game/index.d.ts.map +1 -0
  14. package/build/_modules/game/index.js +20 -0
  15. package/build/_modules/game/index.js.map +1 -0
  16. package/build/_modules/game/journey-catalog.validator.d.ts +5 -0
  17. package/build/_modules/game/journey-catalog.validator.d.ts.map +1 -0
  18. package/build/_modules/game/journey-catalog.validator.js +244 -0
  19. package/build/_modules/game/journey-catalog.validator.js.map +1 -0
  20. package/build/_modules/generators/_collections/form-level-emission.util.d.ts.map +1 -1
  21. package/build/_modules/generators/_collections/form-level-emission.util.js +8 -0
  22. package/build/_modules/generators/_collections/form-level-emission.util.js.map +1 -1
  23. package/build/_modules/generators/_models/form-settings-shape.interface.d.ts +7 -0
  24. package/build/_modules/generators/_models/form-settings-shape.interface.d.ts.map +1 -1
  25. package/build/_modules/presets/_collections/playwright-config.factory.d.ts.map +1 -1
  26. package/build/_modules/presets/_collections/playwright-config.factory.js +30 -1
  27. package/build/_modules/presets/_collections/playwright-config.factory.js.map +1 -1
  28. package/build/_modules/presets/_models/interfaces/playwright-config-options.interface.d.ts +13 -0
  29. package/build/_modules/presets/_models/interfaces/playwright-config-options.interface.d.ts.map +1 -1
  30. package/build/_modules/presets/_models/interfaces/project-split-options.interface.d.ts +27 -0
  31. package/build/_modules/presets/_models/interfaces/project-split-options.interface.d.ts.map +1 -0
  32. package/build/_modules/presets/_models/interfaces/project-split-options.interface.js +3 -0
  33. package/build/_modules/presets/_models/interfaces/project-split-options.interface.js.map +1 -0
  34. package/build/_modules/presets/index.d.ts +1 -0
  35. package/build/_modules/presets/index.d.ts.map +1 -1
  36. package/build/_modules/presets/index.js.map +1 -1
  37. package/build/_modules/vqa/generators/ai-agent-readme.template.js +1 -1
  38. package/build/index.d.ts +1 -0
  39. package/build/index.d.ts.map +1 -1
  40. package/build/index.js +2 -1
  41. package/build/index.js.map +1 -1
  42. package/package.json +12 -5
  43. package/.c8rc.json +0 -25
  44. package/.dynamo/pipeline.cicd.config.json +0 -167
  45. package/.dynamo/version-bump.config.json +0 -5
  46. package/.github/workflows/main.yml +0 -35
  47. package/BUILD.md +0 -36
  48. package/CONTRIBUTING.md +0 -90
  49. package/build/_modules/contracts/contracts.spec.d.ts +0 -2
  50. package/build/_modules/contracts/contracts.spec.d.ts.map +0 -1
  51. package/build/_modules/contracts/contracts.spec.js +0 -144
  52. package/build/_modules/contracts/contracts.spec.js.map +0 -1
  53. package/build/_modules/cwv/cwv-comparison.spec.d.ts +0 -2
  54. package/build/_modules/cwv/cwv-comparison.spec.d.ts.map +0 -1
  55. package/build/_modules/cwv/cwv-comparison.spec.js +0 -77
  56. package/build/_modules/cwv/cwv-comparison.spec.js.map +0 -1
  57. package/build/_modules/cwv/cwv-diagnose.spec.d.ts +0 -2
  58. package/build/_modules/cwv/cwv-diagnose.spec.d.ts.map +0 -1
  59. package/build/_modules/cwv/cwv-diagnose.spec.js +0 -78
  60. package/build/_modules/cwv/cwv-diagnose.spec.js.map +0 -1
  61. package/build/_modules/cwv/cwv-suite.generator.spec.d.ts +0 -2
  62. package/build/_modules/cwv/cwv-suite.generator.spec.d.ts.map +0 -1
  63. package/build/_modules/cwv/cwv-suite.generator.spec.js +0 -81
  64. package/build/_modules/cwv/cwv-suite.generator.spec.js.map +0 -1
  65. package/build/_modules/cwv/cwv-summarize.spec.d.ts +0 -2
  66. package/build/_modules/cwv/cwv-summarize.spec.d.ts.map +0 -1
  67. package/build/_modules/cwv/cwv-summarize.spec.js +0 -70
  68. package/build/_modules/cwv/cwv-summarize.spec.js.map +0 -1
  69. package/build/_modules/cwv/inp-emit-integration.spec.d.ts +0 -2
  70. package/build/_modules/cwv/inp-emit-integration.spec.d.ts.map +0 -1
  71. package/build/_modules/cwv/inp-emit-integration.spec.js +0 -43
  72. package/build/_modules/cwv/inp-emit-integration.spec.js.map +0 -1
  73. package/build/_modules/cwv/inp-interaction-driver.spec.d.ts +0 -2
  74. package/build/_modules/cwv/inp-interaction-driver.spec.d.ts.map +0 -1
  75. package/build/_modules/cwv/inp-interaction-driver.spec.js +0 -44
  76. package/build/_modules/cwv/inp-interaction-driver.spec.js.map +0 -1
  77. package/build/_modules/cwv/inp-script.spec.d.ts +0 -2
  78. package/build/_modules/cwv/inp-script.spec.d.ts.map +0 -1
  79. package/build/_modules/cwv/inp-script.spec.js +0 -35
  80. package/build/_modules/cwv/inp-script.spec.js.map +0 -1
  81. package/build/_modules/cwv/per-route-thresholds.spec.d.ts +0 -2
  82. package/build/_modules/cwv/per-route-thresholds.spec.d.ts.map +0 -1
  83. package/build/_modules/cwv/per-route-thresholds.spec.js +0 -37
  84. package/build/_modules/cwv/per-route-thresholds.spec.js.map +0 -1
  85. package/build/_modules/generators/bootstrap.spec.d.ts +0 -2
  86. package/build/_modules/generators/bootstrap.spec.d.ts.map +0 -1
  87. package/build/_modules/generators/bootstrap.spec.js +0 -46
  88. package/build/_modules/generators/bootstrap.spec.js.map +0 -1
  89. package/build/_modules/generators/cli-runner.spec.d.ts +0 -2
  90. package/build/_modules/generators/cli-runner.spec.d.ts.map +0 -1
  91. package/build/_modules/generators/cli-runner.spec.js +0 -93
  92. package/build/_modules/generators/cli-runner.spec.js.map +0 -1
  93. package/build/_modules/generators/config-validator.spec.d.ts +0 -2
  94. package/build/_modules/generators/config-validator.spec.d.ts.map +0 -1
  95. package/build/_modules/generators/config-validator.spec.js +0 -115
  96. package/build/_modules/generators/config-validator.spec.js.map +0 -1
  97. package/build/_modules/generators/doctor.spec.d.ts +0 -2
  98. package/build/_modules/generators/doctor.spec.d.ts.map +0 -1
  99. package/build/_modules/generators/doctor.spec.js +0 -68
  100. package/build/_modules/generators/doctor.spec.js.map +0 -1
  101. package/build/_modules/generators/field-emission-edge.spec.d.ts +0 -2
  102. package/build/_modules/generators/field-emission-edge.spec.d.ts.map +0 -1
  103. package/build/_modules/generators/field-emission-edge.spec.js +0 -164
  104. package/build/_modules/generators/field-emission-edge.spec.js.map +0 -1
  105. package/build/_modules/generators/form-suite.generator.spec.d.ts +0 -2
  106. package/build/_modules/generators/form-suite.generator.spec.d.ts.map +0 -1
  107. package/build/_modules/generators/form-suite.generator.spec.js +0 -188
  108. package/build/_modules/generators/form-suite.generator.spec.js.map +0 -1
  109. package/build/_modules/generators/info.spec.d.ts +0 -2
  110. package/build/_modules/generators/info.spec.d.ts.map +0 -1
  111. package/build/_modules/generators/info.spec.js +0 -42
  112. package/build/_modules/generators/info.spec.js.map +0 -1
  113. package/build/_modules/generators/json-schema.spec.d.ts +0 -2
  114. package/build/_modules/generators/json-schema.spec.d.ts.map +0 -1
  115. package/build/_modules/generators/json-schema.spec.js +0 -81
  116. package/build/_modules/generators/json-schema.spec.js.map +0 -1
  117. package/build/_modules/generators/preset-configs.spec.d.ts +0 -2
  118. package/build/_modules/generators/preset-configs.spec.d.ts.map +0 -1
  119. package/build/_modules/generators/preset-configs.spec.js +0 -53
  120. package/build/_modules/generators/preset-configs.spec.js.map +0 -1
  121. package/build/_modules/generators/test-case-filter-edge.spec.d.ts +0 -2
  122. package/build/_modules/generators/test-case-filter-edge.spec.d.ts.map +0 -1
  123. package/build/_modules/generators/test-case-filter-edge.spec.js +0 -105
  124. package/build/_modules/generators/test-case-filter-edge.spec.js.map +0 -1
  125. package/build/_modules/generators/viewport-suite.generator.spec.d.ts +0 -2
  126. package/build/_modules/generators/viewport-suite.generator.spec.d.ts.map +0 -1
  127. package/build/_modules/generators/viewport-suite.generator.spec.js +0 -59
  128. package/build/_modules/generators/viewport-suite.generator.spec.js.map +0 -1
  129. package/build/_modules/generators/wave-2b-emission.spec.d.ts +0 -2
  130. package/build/_modules/generators/wave-2b-emission.spec.d.ts.map +0 -1
  131. package/build/_modules/generators/wave-2b-emission.spec.js +0 -115
  132. package/build/_modules/generators/wave-2b-emission.spec.js.map +0 -1
  133. package/build/_modules/presets/presets.spec.d.ts +0 -2
  134. package/build/_modules/presets/presets.spec.d.ts.map +0 -1
  135. package/build/_modules/presets/presets.spec.js +0 -230
  136. package/build/_modules/presets/presets.spec.js.map +0 -1
  137. package/build/_modules/runtime/assertion-helpers.spec.d.ts +0 -2
  138. package/build/_modules/runtime/assertion-helpers.spec.d.ts.map +0 -1
  139. package/build/_modules/runtime/assertion-helpers.spec.js +0 -57
  140. package/build/_modules/runtime/assertion-helpers.spec.js.map +0 -1
  141. package/build/_modules/runtime/logger.service.spec.d.ts +0 -2
  142. package/build/_modules/runtime/logger.service.spec.d.ts.map +0 -1
  143. package/build/_modules/runtime/logger.service.spec.js +0 -61
  144. package/build/_modules/runtime/logger.service.spec.js.map +0 -1
  145. package/build/_modules/runtime/login-flow-helper.spec.d.ts +0 -2
  146. package/build/_modules/runtime/login-flow-helper.spec.d.ts.map +0 -1
  147. package/build/_modules/runtime/login-flow-helper.spec.js +0 -74
  148. package/build/_modules/runtime/login-flow-helper.spec.js.map +0 -1
  149. package/build/_modules/runtime/page-objects.spec.d.ts +0 -2
  150. package/build/_modules/runtime/page-objects.spec.d.ts.map +0 -1
  151. package/build/_modules/runtime/page-objects.spec.js +0 -241
  152. package/build/_modules/runtime/page-objects.spec.js.map +0 -1
  153. package/build/_modules/runtime/runtime.spec.d.ts +0 -2
  154. package/build/_modules/runtime/runtime.spec.d.ts.map +0 -1
  155. package/build/_modules/runtime/runtime.spec.js +0 -73
  156. package/build/_modules/runtime/runtime.spec.js.map +0 -1
  157. package/build/_modules/runtime/unique-generator.spec.d.ts +0 -2
  158. package/build/_modules/runtime/unique-generator.spec.d.ts.map +0 -1
  159. package/build/_modules/runtime/unique-generator.spec.js +0 -41
  160. package/build/_modules/runtime/unique-generator.spec.js.map +0 -1
  161. package/build/_modules/runtime/wave-2b-page-objects.spec.d.ts +0 -2
  162. package/build/_modules/runtime/wave-2b-page-objects.spec.d.ts.map +0 -1
  163. package/build/_modules/runtime/wave-2b-page-objects.spec.js +0 -130
  164. package/build/_modules/runtime/wave-2b-page-objects.spec.js.map +0 -1
  165. package/build/_modules/vqa/capture-spec.generator.spec.d.ts +0 -2
  166. package/build/_modules/vqa/capture-spec.generator.spec.d.ts.map +0 -1
  167. package/build/_modules/vqa/capture-spec.generator.spec.js +0 -126
  168. package/build/_modules/vqa/capture-spec.generator.spec.js.map +0 -1
  169. package/build/_modules/vqa/comparison-bundle.generator.spec.d.ts +0 -2
  170. package/build/_modules/vqa/comparison-bundle.generator.spec.d.ts.map +0 -1
  171. package/build/_modules/vqa/comparison-bundle.generator.spec.js +0 -130
  172. package/build/_modules/vqa/comparison-bundle.generator.spec.js.map +0 -1
  173. package/build/_modules/vqa/finding-validator.spec.d.ts +0 -2
  174. package/build/_modules/vqa/finding-validator.spec.d.ts.map +0 -1
  175. package/build/_modules/vqa/finding-validator.spec.js +0 -136
  176. package/build/_modules/vqa/finding-validator.spec.js.map +0 -1
  177. package/build/_modules/vqa/manifest-validator.spec.d.ts +0 -2
  178. package/build/_modules/vqa/manifest-validator.spec.d.ts.map +0 -1
  179. package/build/_modules/vqa/manifest-validator.spec.js +0 -125
  180. package/build/_modules/vqa/manifest-validator.spec.js.map +0 -1
  181. package/build/_modules/vqa/review-bundle.generator.spec.d.ts +0 -2
  182. package/build/_modules/vqa/review-bundle.generator.spec.d.ts.map +0 -1
  183. package/build/_modules/vqa/review-bundle.generator.spec.js +0 -166
  184. package/build/_modules/vqa/review-bundle.generator.spec.js.map +0 -1
  185. package/build/_modules/vqa/wave-7.spec.d.ts +0 -2
  186. package/build/_modules/vqa/wave-7.spec.d.ts.map +0 -1
  187. package/build/_modules/vqa/wave-7.spec.js +0 -203
  188. package/build/_modules/vqa/wave-7.spec.js.map +0 -1
  189. package/coverage/base.css +0 -224
  190. package/coverage/block-navigation.js +0 -87
  191. package/coverage/contracts/_collections/index.html +0 -116
  192. package/coverage/contracts/_collections/index.ts.html +0 -97
  193. package/coverage/contracts/_collections/utils/index.html +0 -116
  194. package/coverage/contracts/_collections/utils/test-id.util.ts.html +0 -172
  195. package/coverage/contracts/_enums/cwv-metric-type.enum.ts.html +0 -145
  196. package/coverage/contracts/_enums/field-test-case-type.enum.ts.html +0 -394
  197. package/coverage/contracts/_enums/index.html +0 -191
  198. package/coverage/contracts/_enums/index.ts.html +0 -100
  199. package/coverage/contracts/_enums/standard-viewport.enum.ts.html +0 -127
  200. package/coverage/contracts/_enums/test-expectation-type.enum.ts.html +0 -133
  201. package/coverage/contracts/_enums/test-run-mode-type.enum.ts.html +0 -130
  202. package/coverage/contracts/index.html +0 -116
  203. package/coverage/contracts/index.ts.html +0 -121
  204. package/coverage/cwv/_collections/cwv-aggregator.util.ts.html +0 -241
  205. package/coverage/cwv/_collections/cwv-comparison.util.ts.html +0 -355
  206. package/coverage/cwv/_collections/cwv-diagnose.util.ts.html +0 -553
  207. package/coverage/cwv/_collections/cwv-emission.util.ts.html +0 -448
  208. package/coverage/cwv/_collections/cwv-summarize.util.ts.html +0 -325
  209. package/coverage/cwv/_collections/index.html +0 -206
  210. package/coverage/cwv/_collections/inp-interaction-script.const.ts.html +0 -304
  211. package/coverage/cwv/_collections/web-vitals-page-script.const.ts.html +0 -331
  212. package/coverage/cwv/cwv-suite.generator.ts.html +0 -277
  213. package/coverage/cwv/index.html +0 -116
  214. package/coverage/favicon.png +0 -0
  215. package/coverage/generators/_collections/cli-runner.util.ts.html +0 -919
  216. package/coverage/generators/_collections/config-validator.util.ts.html +0 -397
  217. package/coverage/generators/_collections/field-emission.util.ts.html +0 -604
  218. package/coverage/generators/_collections/form-level-emission.util.ts.html +0 -220
  219. package/coverage/generators/_collections/index.html +0 -236
  220. package/coverage/generators/_collections/json-schema.util.ts.html +0 -652
  221. package/coverage/generators/_collections/preset-configs.const.ts.html +0 -328
  222. package/coverage/generators/_collections/spec-emission.util.ts.html +0 -298
  223. package/coverage/generators/_collections/test-case-filter.util.ts.html +0 -523
  224. package/coverage/generators/_collections/viewport-emission.util.ts.html +0 -313
  225. package/coverage/generators/form-suite.generator.ts.html +0 -406
  226. package/coverage/generators/index.html +0 -131
  227. package/coverage/generators/viewport-suite.generator.ts.html +0 -307
  228. package/coverage/index.html +0 -266
  229. package/coverage/lcov-report/base.css +0 -224
  230. package/coverage/lcov-report/block-navigation.js +0 -87
  231. package/coverage/lcov-report/contracts/_collections/index.html +0 -116
  232. package/coverage/lcov-report/contracts/_collections/index.ts.html +0 -97
  233. package/coverage/lcov-report/contracts/_collections/utils/index.html +0 -116
  234. package/coverage/lcov-report/contracts/_collections/utils/test-id.util.ts.html +0 -172
  235. package/coverage/lcov-report/contracts/_enums/cwv-metric-type.enum.ts.html +0 -145
  236. package/coverage/lcov-report/contracts/_enums/field-test-case-type.enum.ts.html +0 -394
  237. package/coverage/lcov-report/contracts/_enums/index.html +0 -191
  238. package/coverage/lcov-report/contracts/_enums/index.ts.html +0 -100
  239. package/coverage/lcov-report/contracts/_enums/standard-viewport.enum.ts.html +0 -127
  240. package/coverage/lcov-report/contracts/_enums/test-expectation-type.enum.ts.html +0 -133
  241. package/coverage/lcov-report/contracts/_enums/test-run-mode-type.enum.ts.html +0 -130
  242. package/coverage/lcov-report/contracts/index.html +0 -116
  243. package/coverage/lcov-report/contracts/index.ts.html +0 -121
  244. package/coverage/lcov-report/cwv/_collections/cwv-aggregator.util.ts.html +0 -241
  245. package/coverage/lcov-report/cwv/_collections/cwv-comparison.util.ts.html +0 -355
  246. package/coverage/lcov-report/cwv/_collections/cwv-diagnose.util.ts.html +0 -553
  247. package/coverage/lcov-report/cwv/_collections/cwv-emission.util.ts.html +0 -448
  248. package/coverage/lcov-report/cwv/_collections/cwv-summarize.util.ts.html +0 -325
  249. package/coverage/lcov-report/cwv/_collections/index.html +0 -206
  250. package/coverage/lcov-report/cwv/_collections/inp-interaction-script.const.ts.html +0 -304
  251. package/coverage/lcov-report/cwv/_collections/web-vitals-page-script.const.ts.html +0 -331
  252. package/coverage/lcov-report/cwv/cwv-suite.generator.ts.html +0 -277
  253. package/coverage/lcov-report/cwv/index.html +0 -116
  254. package/coverage/lcov-report/favicon.png +0 -0
  255. package/coverage/lcov-report/generators/_collections/cli-runner.util.ts.html +0 -919
  256. package/coverage/lcov-report/generators/_collections/config-validator.util.ts.html +0 -397
  257. package/coverage/lcov-report/generators/_collections/field-emission.util.ts.html +0 -604
  258. package/coverage/lcov-report/generators/_collections/form-level-emission.util.ts.html +0 -220
  259. package/coverage/lcov-report/generators/_collections/index.html +0 -236
  260. package/coverage/lcov-report/generators/_collections/json-schema.util.ts.html +0 -652
  261. package/coverage/lcov-report/generators/_collections/preset-configs.const.ts.html +0 -328
  262. package/coverage/lcov-report/generators/_collections/spec-emission.util.ts.html +0 -298
  263. package/coverage/lcov-report/generators/_collections/test-case-filter.util.ts.html +0 -523
  264. package/coverage/lcov-report/generators/_collections/viewport-emission.util.ts.html +0 -313
  265. package/coverage/lcov-report/generators/form-suite.generator.ts.html +0 -406
  266. package/coverage/lcov-report/generators/index.html +0 -131
  267. package/coverage/lcov-report/generators/viewport-suite.generator.ts.html +0 -307
  268. package/coverage/lcov-report/index.html +0 -266
  269. package/coverage/lcov-report/prettify.css +0 -1
  270. package/coverage/lcov-report/prettify.js +0 -2
  271. package/coverage/lcov-report/runtime/_collections/assertion-helpers.util.ts.html +0 -205
  272. package/coverage/lcov-report/runtime/_collections/index.html +0 -146
  273. package/coverage/lcov-report/runtime/_collections/unique-generator.util.ts.html +0 -256
  274. package/coverage/lcov-report/runtime/_collections/wait-helpers.util.ts.html +0 -238
  275. package/coverage/lcov-report/runtime/_services/dialog-page-object.ts.html +0 -157
  276. package/coverage/lcov-report/runtime/_services/field-page-object.ts.html +0 -253
  277. package/coverage/lcov-report/runtime/_services/form-page-object.ts.html +0 -184
  278. package/coverage/lcov-report/runtime/_services/index.html +0 -236
  279. package/coverage/lcov-report/runtime/_services/loader-page-object.ts.html +0 -142
  280. package/coverage/lcov-report/runtime/_services/logger.service.ts.html +0 -385
  281. package/coverage/lcov-report/runtime/_services/login-flow-helper.base.ts.html +0 -331
  282. package/coverage/lcov-report/runtime/_services/nav-page-object.ts.html +0 -145
  283. package/coverage/lcov-report/runtime/_services/toast-page-object.ts.html +0 -130
  284. package/coverage/lcov-report/runtime/_services/wave-2b-page-objects.ts.html +0 -397
  285. package/coverage/lcov-report/runtime/index.html +0 -116
  286. package/coverage/lcov-report/runtime/index.ts.html +0 -178
  287. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  288. package/coverage/lcov-report/sorter.js +0 -210
  289. package/coverage/lcov.info +0 -4047
  290. package/coverage/prettify.css +0 -1
  291. package/coverage/prettify.js +0 -2
  292. package/coverage/runtime/_collections/assertion-helpers.util.ts.html +0 -205
  293. package/coverage/runtime/_collections/index.html +0 -146
  294. package/coverage/runtime/_collections/unique-generator.util.ts.html +0 -256
  295. package/coverage/runtime/_collections/wait-helpers.util.ts.html +0 -238
  296. package/coverage/runtime/_services/dialog-page-object.ts.html +0 -157
  297. package/coverage/runtime/_services/field-page-object.ts.html +0 -253
  298. package/coverage/runtime/_services/form-page-object.ts.html +0 -184
  299. package/coverage/runtime/_services/index.html +0 -236
  300. package/coverage/runtime/_services/loader-page-object.ts.html +0 -142
  301. package/coverage/runtime/_services/logger.service.ts.html +0 -385
  302. package/coverage/runtime/_services/login-flow-helper.base.ts.html +0 -331
  303. package/coverage/runtime/_services/nav-page-object.ts.html +0 -145
  304. package/coverage/runtime/_services/toast-page-object.ts.html +0 -130
  305. package/coverage/runtime/_services/wave-2b-page-objects.ts.html +0 -397
  306. package/coverage/runtime/index.html +0 -116
  307. package/coverage/runtime/index.ts.html +0 -178
  308. package/coverage/sort-arrow-sprite.png +0 -0
  309. package/coverage/sorter.js +0 -210
  310. package/coverage/tmp/coverage-228636-1781075225757-0.json +0 -1
  311. package/coverage/tmp/coverage-228704-1781075227108-0.json +0 -1
  312. package/dogfood/PARITY-MATRIX.md +0 -67
  313. package/dogfood/generated/date-range-field-new.spec.ts +0 -54
  314. package/dogfood/generated/password-field-new.spec.ts +0 -97
  315. package/dogfood/generated/radio-select-field-new.spec.ts +0 -69
  316. package/dogfood/generated/slider-field-new.spec.ts +0 -47
  317. package/dogfood/generated/text-field-new.spec.ts +0 -0
  318. package/dogfood/generated-full/checkbox-field-new.spec.ts +0 -56
  319. package/dogfood/generated-full/date-field-new.spec.ts +0 -71
  320. package/dogfood/generated-full/date-range-field-new.spec.ts +0 -54
  321. package/dogfood/generated-full/datetime-field-new.spec.ts +0 -55
  322. package/dogfood/generated-full/multiselect-field-new.spec.ts +0 -69
  323. package/dogfood/generated-full/number-field-new.spec.ts +0 -113
  324. package/dogfood/generated-full/password-field-new.spec.ts +0 -97
  325. package/dogfood/generated-full/radio-select-field-new.spec.ts +0 -69
  326. package/dogfood/generated-full/sandbox-viewport-audit.spec.ts +0 -4643
  327. package/dogfood/generated-full/select-field-new.spec.ts +0 -69
  328. package/dogfood/generated-full/slider-field-new.spec.ts +0 -47
  329. package/dogfood/generated-full/slider-range-field-new.spec.ts +0 -54
  330. package/dogfood/generated-full/text-field-new.spec.ts +0 -0
  331. package/dogfood/generated-full/textarea-field-new.spec.ts +0 -72
  332. package/dogfood/sandbox-bootstrap-full.js +0 -248
  333. package/dogfood/sandbox-bootstrap.js +0 -170
  334. package/examples/minimal-form/README.md +0 -55
  335. package/examples/minimal-form/form-config.json +0 -38
  336. package/examples/multi-form-app/README.md +0 -63
  337. package/examples/multi-form-app/cwv-config.json +0 -14
  338. package/examples/multi-form-app/settings/login-form.json +0 -11
  339. package/examples/multi-form-app/settings/profile-form.json +0 -25
  340. package/examples/multi-form-app/viewport-config.json +0 -12
  341. package/logs/cicd-job.json +0 -3
  342. package/logs/cicd-report.json +0 -3
  343. package/logs/cicd-status.json +0 -3
@@ -1,69 +0,0 @@
1
- /**
2
- * Auto-generated by @futdevpro/dynamo-e2e — FormSuite Generator
3
- * Form key: sb-select
4
- * Route: /c/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_SelectFieldNew', (): void => {
14
-
15
- test.describe('Field: country (select)', (): void => {
16
- test.beforeEach(async ({ page }): Promise<void> => {
17
- const response = await page.goto('/c/select-field-new');
18
- expect(response?.ok()).toBeTruthy();
19
- await page.locator('dynamo-select-field-new').first().waitFor({ state: 'visible' });
20
- });
21
-
22
- test('field[country] 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-select-required"], dynamo-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-select-required"]').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[country] 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-select-required"], dynamo-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-select-required"]').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[country] 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-select-required"], dynamo-select-field-new').first();
43
- // option index 2 (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-select-required"]').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[country] 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-select-required"], dynamo-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-select-required"]').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[country] 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-select-required"], dynamo-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-select-required"]').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: sb-slider
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', (): 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,54 +0,0 @@
1
- /**
2
- * Auto-generated by @futdevpro/dynamo-e2e — FormSuite Generator
3
- * Form key: sb-slider-range
4
- * Route: /c/slider-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_SliderRangeFieldNew', (): void => {
14
-
15
- test.describe('Field: priceRange (sliderRange)', (): void => {
16
- test.beforeEach(async ({ page }): Promise<void> => {
17
- const response = await page.goto('/c/slider-range-field-new');
18
- expect(response?.ok()).toBeTruthy();
19
- await page.locator('dynamo-slider-range-field-new').first().waitFor({ state: 'visible' });
20
- });
21
-
22
- test('field[priceRange] sliderRange:min-max → valid — start=min, end=max', async ({ page }): Promise<void> => {
23
- const startInput: Locator = page.getByTestId('sandbox-slider-range-start');
24
- const endInput: Locator = page.getByTestId('sandbox-slider-range-end');
25
- await startInput.fill('');
26
- await endInput.fill('');
27
- await endInput.blur();
28
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-slider-range"]').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[priceRange] sliderRange:equal → valid — start === end', async ({ page }): Promise<void> => {
33
- const startInput: Locator = page.getByTestId('sandbox-slider-range-start');
34
- const endInput: Locator = page.getByTestId('sandbox-slider-range-end');
35
- await startInput.fill('50');
36
- await endInput.fill('50');
37
- await endInput.blur();
38
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-slider-range"]').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[priceRange] sliderRange:reversed-clamp → transformed — start > end → auto-clamp (UI invariant)', async ({ page }): Promise<void> => {
43
- const startInput: Locator = page.getByTestId('sandbox-slider-range-start');
44
- const endInput: Locator = page.getByTestId('sandbox-slider-range-end');
45
- await startInput.fill('80');
46
- await endInput.fill('20');
47
- await endInput.blur();
48
- // Transformed expectation: data_$ === { start: 20, end: 20 }
49
- // Wave-1: a concrete data_$ access pattern per-consumer; placeholder marker:
50
- expect(true).toBe(true);
51
- });
52
- });
53
-
54
- });
@@ -1,72 +0,0 @@
1
- /**
2
- * Auto-generated by @futdevpro/dynamo-e2e — FormSuite Generator
3
- * Form key: sb-textarea
4
- * Route: /c/textarea-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_TextAreaFieldNew', (): void => {
14
-
15
- test.describe('Field: bio (textarea)', (): void => {
16
- test.beforeEach(async ({ page }): Promise<void> => {
17
- const response = await page.goto('/c/textarea-field-new');
18
- expect(response?.ok()).toBeTruthy();
19
- await page.locator('dynamo-textarea-field-new').first().waitFor({ state: 'visible' });
20
- });
21
-
22
- test('field[bio] textarea:empty → valid — üres textarea', async ({ page }): Promise<void> => {
23
- const input: Locator = page.getByTestId('sandbox-textarea-default');
24
- await input.fill('');
25
- await input.blur();
26
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-textarea-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[bio] textarea:multiline → valid — több-soros bevitel', async ({ page }): Promise<void> => {
31
- const input: Locator = page.getByTestId('sandbox-textarea-default');
32
- await input.fill('első sor\nmásodik sor\nharmadik sor');
33
- await input.blur();
34
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-textarea-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[bio] textarea:sentence → valid — egy sornyi mondat', async ({ page }): Promise<void> => {
39
- const input: Locator = page.getByTestId('sandbox-textarea-default');
40
- await input.fill('Egy mondat, ami minden rendben van.');
41
- await input.blur();
42
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-textarea-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[bio] textarea:long-paragraph → invalid:maxLength — hosszú bekezdés (2000+ char)', async ({ page }): Promise<void> => {
47
- const input: Locator = page.getByTestId('sandbox-textarea-default');
48
- await input.fill('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
49
- await input.blur();
50
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-textarea-default"]').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: maxLength
53
- });
54
-
55
- test('field[bio] textarea:unicode-emoji → valid — emoji a textarea-ban', async ({ page }): Promise<void> => {
56
- const input: Locator = page.getByTestId('sandbox-textarea-default');
57
- await input.fill('Pénztárgép 🧾 fizetés 💳 vége 🎉');
58
- await input.blur();
59
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-textarea-default"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
60
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);
61
- });
62
-
63
- test('field[bio] textarea:xss-tag → valid — XSS-tag textarea-ban', async ({ page }): Promise<void> => {
64
- const input: Locator = page.getByTestId('sandbox-textarea-default');
65
- await input.fill('<script>alert(1)</script>');
66
- await input.blur();
67
- const fieldRoot: Locator = page.locator('[data-testid="sandbox-textarea-default"]').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
-
72
- });
@@ -1,248 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * MP-08 SP-C — Extended sandbox-dogfood — MINDEN Forms v2 field-type a
4
- * dynamo-ngx-sandbox-ben (text/textarea/number/password/slider/sliderRange/
5
- * checkbox/select/multiselect/radioSelect/date/datetime/dateRange).
6
- *
7
- * 13 field-type × N variant (a sandbox-registry-ben definiált) → 13+ spec
8
- * fájl. A `dogfood/generated-full/` mappába kerül.
9
- *
10
- * Futtatás:
11
- * node dogfood/sandbox-bootstrap-full.js
12
- *
13
- * A `dynamo-ngx/e2e/tests/generated/` mappába (side-by-side a hand-rolled
14
- * mellé) másolható ezeknek a fájloknak a tartalma.
15
- */
16
- 'use strict';
17
-
18
- const fs = require('fs');
19
- const path = require('path');
20
- const { DyE2E_FormSuite_Generator } = require('../build/_modules/generators/form-suite.generator');
21
-
22
- const OUT_DIR = path.join(__dirname, 'generated-full');
23
- fs.mkdirSync(OUT_DIR, { recursive: true });
24
-
25
- /**
26
- * 13 field-type → reprezentatív sandbox-entry mind. A Settings POJO-k
27
- * az aktuális `dynamo-ngx/projects/dynamo-ngx-sandbox/src/app/_registry/
28
- * sandbox-registry.ts` Required vagy Default variant-jaiból extraktálva.
29
- */
30
- const sandboxConfigs = [
31
- {
32
- name: 'text-field-new',
33
- cfg: {
34
- formSettings: {
35
- key: 'sb-text',
36
- fields: [{ key: 'name', type: 'text', label: 'Név', required: true, minLength: 2, maxLength: 64, testId: 'sandbox-text-required' }],
37
- },
38
- formRoute: '/c/text-field-new',
39
- formSelector: 'dynamo-text-field-new',
40
- suiteSettings: { runMode: 'full', skipFormLevelTests: true, describePrefix: 'Sandbox: DyNX_TextFieldNew (Required)' },
41
- },
42
- },
43
- {
44
- name: 'textarea-field-new',
45
- cfg: {
46
- formSettings: {
47
- key: 'sb-textarea',
48
- fields: [{ key: 'bio', type: 'textarea', label: 'Bio', required: false, maxLength: 500, testId: 'sandbox-textarea-default' }],
49
- },
50
- formRoute: '/c/textarea-field-new',
51
- formSelector: 'dynamo-textarea-field-new',
52
- suiteSettings: { runMode: 'full', skipFormLevelTests: true, describePrefix: 'Sandbox: DyNX_TextAreaFieldNew' },
53
- },
54
- },
55
- {
56
- name: 'number-field-new',
57
- cfg: {
58
- formSettings: {
59
- key: 'sb-number',
60
- fields: [{ key: 'age', type: 'number', label: 'Életkor', required: true, min: 13, max: 120, testId: 'sandbox-number-required' }],
61
- },
62
- formRoute: '/c/number-field-new',
63
- formSelector: 'dynamo-number-field-new',
64
- suiteSettings: { runMode: 'full', skipFormLevelTests: true, describePrefix: 'Sandbox: DyNX_NumberFieldNew' },
65
- },
66
- },
67
- {
68
- name: 'password-field-new',
69
- cfg: {
70
- formSettings: {
71
- key: 'sb-pwd',
72
- fields: [{ key: 'password', type: 'password', label: 'Jelszó', required: true, minLength: 8, maxLength: 128, testId: 'sandbox-pwd-required' }],
73
- },
74
- formRoute: '/c/password-field-new',
75
- formSelector: 'dynamo-password-field-new',
76
- suiteSettings: { runMode: 'full', skipFormLevelTests: true, describePrefix: 'Sandbox: DyNX_PasswordFieldNew (Required)' },
77
- },
78
- },
79
- {
80
- name: 'slider-field-new',
81
- cfg: {
82
- formSettings: {
83
- key: 'sb-slider',
84
- fields: [{ key: 'volume', type: 'slider', label: 'Hangerő', min: 0, max: 100, step: 1, testId: 'sandbox-slider-default' }],
85
- },
86
- formRoute: '/c/slider-field-new',
87
- formSelector: 'dynamo-slider-field-new',
88
- suiteSettings: { runMode: 'full', skipFormLevelTests: true, describePrefix: 'Sandbox: DyNX_SliderFieldNew' },
89
- },
90
- },
91
- {
92
- name: 'slider-range-field-new',
93
- cfg: {
94
- formSettings: {
95
- key: 'sb-slider-range',
96
- fields: [{ key: 'priceRange', type: 'sliderRange', label: 'Ár-sáv', min: 0, max: 100, step: 1, testId: 'sandbox-slider-range' }],
97
- },
98
- formRoute: '/c/slider-range-field-new',
99
- formSelector: 'dynamo-slider-range-field-new',
100
- suiteSettings: { runMode: 'full', skipFormLevelTests: true, describePrefix: 'Sandbox: DyNX_SliderRangeFieldNew' },
101
- },
102
- },
103
- {
104
- name: 'checkbox-field-new',
105
- cfg: {
106
- formSettings: {
107
- key: 'sb-checkbox',
108
- fields: [{ key: 'agree', type: 'checkbox', label: 'Elfogadom', required: true, testId: 'sandbox-checkbox-required' }],
109
- },
110
- formRoute: '/c/checkbox-field-new',
111
- formSelector: 'dynamo-checkbox-field-new',
112
- suiteSettings: { runMode: 'full', skipFormLevelTests: true, describePrefix: 'Sandbox: DyNX_CheckboxFieldNew' },
113
- },
114
- },
115
- {
116
- name: 'select-field-new',
117
- cfg: {
118
- formSettings: {
119
- key: 'sb-select',
120
- fields: [{
121
- key: 'country', type: 'select', label: 'Ország', required: true,
122
- options: [{ label: 'HU', value: 'hu' }, { label: 'EN', value: 'en' }, { label: 'DE', value: 'de' }],
123
- testId: 'sandbox-select-required',
124
- }],
125
- },
126
- formRoute: '/c/select-field-new',
127
- formSelector: 'dynamo-select-field-new',
128
- suiteSettings: { runMode: 'full', skipFormLevelTests: true, describePrefix: 'Sandbox: DyNX_SelectFieldNew' },
129
- },
130
- },
131
- {
132
- name: 'multiselect-field-new',
133
- cfg: {
134
- formSettings: {
135
- key: 'sb-multi',
136
- fields: [{
137
- key: 'languages', type: 'multiselect',
138
- options: [{ label: 'HU', value: 'hu' }, { label: 'EN', value: 'en' }, { label: 'DE', value: 'de' }],
139
- testId: 'sandbox-multi-default',
140
- }],
141
- },
142
- formRoute: '/c/multiselect-field-new',
143
- formSelector: 'dynamo-multiselect-field-new',
144
- suiteSettings: { runMode: 'full', skipFormLevelTests: true, describePrefix: 'Sandbox: DyNX_MultiselectFieldNew' },
145
- },
146
- },
147
- {
148
- name: 'radio-select-field-new',
149
- cfg: {
150
- formSettings: {
151
- key: 'sb-radio',
152
- fields: [{
153
- key: 'priority', type: 'radioSelect', required: true,
154
- options: [
155
- { label: 'Alacsony', value: 'low' },
156
- { label: 'Közepes', value: 'medium' },
157
- { label: 'Magas', value: 'high' },
158
- { label: 'Sürgős', value: 'urgent' },
159
- ],
160
- testId: 'sandbox-radio-vertical',
161
- }],
162
- },
163
- formRoute: '/c/radio-select-field-new',
164
- formSelector: 'dynamo-radio-select-field-new',
165
- suiteSettings: { runMode: 'full', skipFormLevelTests: true, describePrefix: 'Sandbox: DyNX_RadioSelectFieldNew (Vertical)' },
166
- },
167
- },
168
- {
169
- name: 'date-field-new',
170
- cfg: {
171
- formSettings: {
172
- key: 'sb-date',
173
- fields: [{ key: 'birthDate', type: 'date', label: 'Születési dátum', testId: 'sandbox-date-default' }],
174
- },
175
- formRoute: '/c/date-field-new',
176
- formSelector: 'dynamo-date-field-new',
177
- suiteSettings: { runMode: 'full', skipFormLevelTests: true, describePrefix: 'Sandbox: DyNX_DateFieldNew' },
178
- },
179
- },
180
- {
181
- name: 'datetime-field-new',
182
- cfg: {
183
- formSettings: {
184
- key: 'sb-datetime',
185
- fields: [{
186
- key: 'meetingAt', type: 'dateTime', label: 'Találkozó',
187
- minDateTime: '2026-01-01T00:00', maxDateTime: '2026-12-31T23:59',
188
- testId: 'sandbox-datetime-bounded',
189
- }],
190
- },
191
- formRoute: '/c/datetime-field-new',
192
- formSelector: 'dynamo-datetime-field-new',
193
- suiteSettings: { runMode: 'full', skipFormLevelTests: true, describePrefix: 'Sandbox: DyNX_DateTimeFieldNew (Bounded)' },
194
- },
195
- },
196
- {
197
- name: 'date-range-field-new',
198
- cfg: {
199
- formSettings: {
200
- key: 'sb-date-range',
201
- fields: [{ key: 'vacation', type: 'dateRange', label: 'Szabadság', allowSameDay: true, testId: 'sandbox-date-range-default' }],
202
- },
203
- formRoute: '/c/date-range-field-new',
204
- formSelector: 'dynamo-date-range-field-new',
205
- suiteSettings: { runMode: 'full', skipFormLevelTests: true, describePrefix: 'Sandbox: DyNX_DateRangeFieldNew' },
206
- },
207
- },
208
- ];
209
-
210
- let totalCases = 0;
211
- const summary = [];
212
-
213
- for (const { name, cfg } of sandboxConfigs) {
214
- const spec = DyE2E_FormSuite_Generator.emit(cfg);
215
- const outPath = path.join(OUT_DIR, `${name}.spec.ts`);
216
- fs.writeFileSync(outPath, spec, 'utf-8');
217
- const caseCount = (spec.match(/^\s*test\(/gm) || []).length;
218
- totalCases += caseCount;
219
- summary.push({ name, cases: caseCount, bytes: spec.length });
220
- console.log(` ✓ ${name}.spec.ts (${caseCount} test cases, ${spec.length} bytes)`);
221
- }
222
-
223
- // Plus 1 viewport-audit spec az osszes sandbox-route-ra
224
- const { DyE2E_ViewportSuite_Generator } = require('../build/_modules/generators/viewport-suite.generator');
225
- const viewportCfg = {
226
- routes: sandboxConfigs.map(({ name }) => ({
227
- key: name,
228
- label: `Sandbox ${name}`,
229
- path: `/c/${name}`,
230
- })),
231
- themes: ['dark', 'light'],
232
- checkOverflow: true,
233
- checkTouchTargets: true,
234
- takeScreenshot: true,
235
- screenshotDir: 'e2e/screenshots/sandbox',
236
- describePrefix: 'Sandbox viewport audit',
237
- };
238
- const viewportSpec = DyE2E_ViewportSuite_Generator.emit(viewportCfg);
239
- fs.writeFileSync(path.join(OUT_DIR, 'sandbox-viewport-audit.spec.ts'), viewportSpec);
240
- const viewportCases = (viewportSpec.match(/^\s*test\(/gm) || []).length;
241
- console.log(` ✓ sandbox-viewport-audit.spec.ts (${viewportCases} test cases — 13 routes × 7 viewports × 2 themes)`);
242
-
243
- console.log(`\n[dogfood-full] generated ${sandboxConfigs.length + 1} spec files, ${totalCases + viewportCases} total test cases.`);
244
- console.log(`[dogfood-full] per-field-type breakdown:`);
245
- for (const s of summary) {
246
- console.log(` ${s.name.padEnd(28)} ${String(s.cases).padStart(3)} cases`);
247
- }
248
- console.log(` sandbox-viewport-audit ${String(viewportCases).padStart(3)} cases`);
@@ -1,170 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * MP-08 SP-B — Sandbox dogfood bootstrap.
4
- *
5
- * Bemenet: a `dynamo-ngx-sandbox` Settings POJO-it leíró 1-1 JSON konfiguráció
6
- * (a teljes sandbox-registry.ts-ből kihúzott reprezentatív minta).
7
- *
8
- * Kimenet: a `dogfood/generated/` mappába írt `.spec.ts` fájlok, amelyeket a
9
- * dynamo-ngx repó-ba copy-be lehet venni a hand-rolled e2e mellé / helyett.
10
- *
11
- * Futtatás:
12
- * node dogfood/sandbox-bootstrap.js
13
- */
14
- 'use strict';
15
-
16
- const fs = require('fs');
17
- const path = require('path');
18
- const { DyE2E_FormSuite_Generator } = require('../build/_modules/generators/form-suite.generator');
19
-
20
- const OUT_DIR = path.join(__dirname, 'generated');
21
- fs.mkdirSync(OUT_DIR, { recursive: true });
22
-
23
- // 1. text-field-new sandbox entry — 3 variantból a Required-Default-szerinti
24
- // Settings POJO. (A többi variant a futás-időben válthat, lásd e2e
25
- // spec-ekben a beforeEach `selectVariant(...)`-tot.)
26
- const sandboxTextField = {
27
- formSettings: {
28
- key: 'sandbox-text-field-new',
29
- fields: [
30
- {
31
- key: 'username',
32
- type: 'text',
33
- label: 'Felhasználónév',
34
- required: true,
35
- minLength: 3,
36
- maxLength: 64,
37
- testId: 'sandbox-text-required',
38
- },
39
- ],
40
- },
41
- formRoute: '/c/text-field-new',
42
- formSelector: 'dynamo-text-field-new',
43
- suiteSettings: {
44
- runMode: 'full',
45
- skipFormLevelTests: true, // sandbox-route nem submit-button-os form
46
- describePrefix: 'Sandbox: DyNX_TextFieldNew (Required variant)',
47
- },
48
- };
49
-
50
- // 2. password-field-new sandbox entry.
51
- const sandboxPasswordField = {
52
- formSettings: {
53
- key: 'sandbox-pwd-required',
54
- fields: [
55
- {
56
- key: 'password',
57
- type: 'password',
58
- label: 'Jelszó',
59
- required: true,
60
- minLength: 8,
61
- maxLength: 128,
62
- testId: 'sandbox-pwd-required',
63
- },
64
- ],
65
- },
66
- formRoute: '/c/password-field-new',
67
- formSelector: 'dynamo-password-field-new',
68
- suiteSettings: {
69
- runMode: 'full',
70
- skipFormLevelTests: true,
71
- describePrefix: 'Sandbox: DyNX_PasswordFieldNew (Required variant)',
72
- },
73
- };
74
-
75
- // 3. slider-field-new sandbox entry.
76
- const sandboxSlider = {
77
- formSettings: {
78
- key: 'sandbox-slider-default',
79
- fields: [
80
- {
81
- key: 'volume',
82
- type: 'slider',
83
- label: 'Hangerő',
84
- min: 0,
85
- max: 100,
86
- step: 1,
87
- testId: 'sandbox-slider-default',
88
- },
89
- ],
90
- },
91
- formRoute: '/c/slider-field-new',
92
- formSelector: 'dynamo-slider-field-new',
93
- suiteSettings: {
94
- runMode: 'full',
95
- skipFormLevelTests: true,
96
- describePrefix: 'Sandbox: DyNX_SliderFieldNew (Default 0-100)',
97
- },
98
- };
99
-
100
- // 4. radio-select-field-new sandbox entry.
101
- const sandboxRadio = {
102
- formSettings: {
103
- key: 'sandbox-radio-vertical',
104
- fields: [
105
- {
106
- key: 'priority',
107
- type: 'radioSelect',
108
- label: 'Prioritás',
109
- required: true,
110
- options: [
111
- { label: 'Alacsony', value: 'low' },
112
- { label: 'Közepes', value: 'medium' },
113
- { label: 'Magas', value: 'high' },
114
- { label: 'Sürgős', value: 'urgent' },
115
- ],
116
- testId: 'sandbox-radio-vertical',
117
- },
118
- ],
119
- },
120
- formRoute: '/c/radio-select-field-new',
121
- formSelector: 'dynamo-radio-select-field-new',
122
- suiteSettings: {
123
- runMode: 'full',
124
- skipFormLevelTests: true,
125
- describePrefix: 'Sandbox: DyNX_RadioSelectFieldNew (Vertical variant)',
126
- },
127
- };
128
-
129
- // 5. date-range-field-new sandbox entry.
130
- const sandboxDateRange = {
131
- formSettings: {
132
- key: 'sandbox-date-range-default',
133
- fields: [
134
- {
135
- key: 'vacationRange',
136
- type: 'dateRange',
137
- label: 'Szabadság',
138
- allowSameDay: true,
139
- testId: 'sandbox-date-range-default',
140
- },
141
- ],
142
- },
143
- formRoute: '/c/date-range-field-new',
144
- formSelector: 'dynamo-date-range-field-new',
145
- suiteSettings: {
146
- runMode: 'full',
147
- skipFormLevelTests: true,
148
- describePrefix: 'Sandbox: DyNX_DateRangeFieldNew (Default variant)',
149
- },
150
- };
151
-
152
- const inputs = [
153
- ['text-field-new', sandboxTextField],
154
- ['password-field-new', sandboxPasswordField],
155
- ['slider-field-new', sandboxSlider],
156
- ['radio-select-field-new', sandboxRadio],
157
- ['date-range-field-new', sandboxDateRange],
158
- ];
159
-
160
- let totalCases = 0;
161
- for (const [name, cfg] of inputs) {
162
- const spec = DyE2E_FormSuite_Generator.emit(cfg);
163
- const outPath = path.join(OUT_DIR, `${name}.spec.ts`);
164
- fs.writeFileSync(outPath, spec, 'utf-8');
165
- const caseCount = (spec.match(/^\s*test\(/gm) || []).length;
166
- totalCases += caseCount;
167
- console.log(` ✓ ${name}.spec.ts (${caseCount} test cases)`);
168
- }
169
-
170
- console.log(`\n[dogfood] generated ${inputs.length} spec files, ${totalCases} total test cases.`);