@futdevpro/dynamo-e2e 1.18.10 → 1.18.11

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