@futdevpro/dynamo-e2e 1.18.8 → 1.18.9

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 (199) hide show
  1. package/.dynamo/pipeline.cicd.config.json +3 -3
  2. package/CHANGELOG.md +23 -0
  3. package/README.md +1 -1
  4. package/build/_modules/generators/_collections/cli-runner.util.d.ts.map +1 -1
  5. package/build/_modules/generators/_collections/cli-runner.util.js +5 -11
  6. package/build/_modules/generators/_collections/cli-runner.util.js.map +1 -1
  7. package/build/_modules/generators/bootstrap.spec.js +4 -3
  8. package/build/_modules/generators/bootstrap.spec.js.map +1 -1
  9. package/build/_modules/presets/_collections/constants/playwright-viewport-presets.const.d.ts +22 -0
  10. package/build/_modules/presets/_collections/constants/playwright-viewport-presets.const.d.ts.map +1 -0
  11. package/build/_modules/presets/_collections/constants/playwright-viewport-presets.const.js +69 -0
  12. package/build/_modules/presets/_collections/constants/playwright-viewport-presets.const.js.map +1 -0
  13. package/build/_modules/presets/_collections/global-setup.factory.d.ts +14 -0
  14. package/build/_modules/presets/_collections/global-setup.factory.d.ts.map +1 -0
  15. package/build/_modules/presets/_collections/global-setup.factory.js +113 -0
  16. package/build/_modules/presets/_collections/global-setup.factory.js.map +1 -0
  17. package/build/_modules/presets/_collections/playwright-config.factory.d.ts +19 -0
  18. package/build/_modules/presets/_collections/playwright-config.factory.d.ts.map +1 -0
  19. package/build/_modules/presets/_collections/playwright-config.factory.js +107 -0
  20. package/build/_modules/presets/_collections/playwright-config.factory.js.map +1 -0
  21. package/build/_modules/presets/_collections/viewport-preset-resolver.util.d.ts +8 -0
  22. package/build/_modules/presets/_collections/viewport-preset-resolver.util.d.ts.map +1 -0
  23. package/build/_modules/presets/_collections/viewport-preset-resolver.util.js +25 -0
  24. package/build/_modules/presets/_collections/viewport-preset-resolver.util.js.map +1 -0
  25. package/build/_modules/presets/_models/interfaces/global-setup-options.interface.d.ts +28 -0
  26. package/build/_modules/presets/_models/interfaces/global-setup-options.interface.d.ts.map +1 -0
  27. package/build/_modules/presets/_models/interfaces/global-setup-options.interface.js +3 -0
  28. package/build/_modules/presets/_models/interfaces/global-setup-options.interface.js.map +1 -0
  29. package/build/_modules/presets/_models/interfaces/playwright-config-options.interface.d.ts +43 -0
  30. package/build/_modules/presets/_models/interfaces/playwright-config-options.interface.d.ts.map +1 -0
  31. package/build/_modules/presets/_models/interfaces/playwright-config-options.interface.js +3 -0
  32. package/build/_modules/presets/_models/interfaces/playwright-config-options.interface.js.map +1 -0
  33. package/build/_modules/presets/index.d.ts +6 -0
  34. package/build/_modules/presets/index.d.ts.map +1 -1
  35. package/build/_modules/presets/index.js +12 -1
  36. package/build/_modules/presets/index.js.map +1 -1
  37. package/build/_modules/presets/presets.spec.d.ts +2 -0
  38. package/build/_modules/presets/presets.spec.d.ts.map +1 -0
  39. package/build/_modules/presets/presets.spec.js +230 -0
  40. package/build/_modules/presets/presets.spec.js.map +1 -0
  41. package/build/_modules/vqa/generators/ai-agent-readme.template.d.ts +2 -1
  42. package/build/_modules/vqa/generators/ai-agent-readme.template.d.ts.map +1 -1
  43. package/build/_modules/vqa/generators/ai-agent-readme.template.js +22 -3
  44. package/build/_modules/vqa/generators/ai-agent-readme.template.js.map +1 -1
  45. package/coverage/contracts/_collections/index.html +1 -1
  46. package/coverage/contracts/_collections/index.ts.html +1 -1
  47. package/coverage/contracts/_collections/utils/index.html +9 -9
  48. package/coverage/contracts/_collections/utils/test-id.util.ts.html +15 -30
  49. package/coverage/contracts/_enums/cwv-metric-type.enum.ts.html +1 -1
  50. package/coverage/contracts/_enums/field-test-case-type.enum.ts.html +4 -34
  51. package/coverage/contracts/_enums/index.html +5 -5
  52. package/coverage/contracts/_enums/index.ts.html +1 -1
  53. package/coverage/contracts/_enums/standard-viewport.enum.ts.html +1 -1
  54. package/coverage/contracts/_enums/test-expectation-type.enum.ts.html +1 -1
  55. package/coverage/contracts/_enums/test-run-mode-type.enum.ts.html +1 -1
  56. package/coverage/contracts/index.html +1 -1
  57. package/coverage/contracts/index.ts.html +1 -1
  58. package/coverage/cwv/_collections/cwv-aggregator.util.ts.html +1 -1
  59. package/coverage/cwv/_collections/cwv-comparison.util.ts.html +4 -4
  60. package/coverage/cwv/_collections/cwv-diagnose.util.ts.html +1 -1
  61. package/coverage/cwv/_collections/cwv-emission.util.ts.html +1 -1
  62. package/coverage/cwv/_collections/cwv-summarize.util.ts.html +1 -1
  63. package/coverage/cwv/_collections/index.html +7 -7
  64. package/coverage/cwv/_collections/inp-interaction-script.const.ts.html +1 -1
  65. package/coverage/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
  66. package/coverage/cwv/cwv-suite.generator.ts.html +3 -3
  67. package/coverage/cwv/index.html +5 -5
  68. package/coverage/generators/_collections/cli-runner.util.ts.html +1 -1
  69. package/coverage/generators/_collections/config-validator.util.ts.html +1 -1
  70. package/coverage/generators/_collections/field-emission.util.ts.html +103 -235
  71. package/coverage/generators/_collections/form-level-emission.util.ts.html +33 -39
  72. package/coverage/generators/_collections/index.html +31 -31
  73. package/coverage/generators/_collections/json-schema.util.ts.html +1 -1
  74. package/coverage/generators/_collections/preset-configs.const.ts.html +1 -1
  75. package/coverage/generators/_collections/spec-emission.util.ts.html +35 -35
  76. package/coverage/generators/_collections/test-case-filter.util.ts.html +66 -258
  77. package/coverage/generators/_collections/viewport-emission.util.ts.html +1 -1
  78. package/coverage/generators/form-suite.generator.ts.html +79 -97
  79. package/coverage/generators/index.html +18 -18
  80. package/coverage/generators/viewport-suite.generator.ts.html +3 -3
  81. package/coverage/index.html +50 -95
  82. package/coverage/lcov-report/contracts/_collections/index.html +1 -1
  83. package/coverage/lcov-report/contracts/_collections/index.ts.html +1 -1
  84. package/coverage/lcov-report/contracts/_collections/utils/index.html +9 -9
  85. package/coverage/lcov-report/contracts/_collections/utils/test-id.util.ts.html +15 -30
  86. package/coverage/lcov-report/contracts/_enums/cwv-metric-type.enum.ts.html +1 -1
  87. package/coverage/lcov-report/contracts/_enums/field-test-case-type.enum.ts.html +4 -34
  88. package/coverage/lcov-report/contracts/_enums/index.html +5 -5
  89. package/coverage/lcov-report/contracts/_enums/index.ts.html +1 -1
  90. package/coverage/lcov-report/contracts/_enums/standard-viewport.enum.ts.html +1 -1
  91. package/coverage/lcov-report/contracts/_enums/test-expectation-type.enum.ts.html +1 -1
  92. package/coverage/lcov-report/contracts/_enums/test-run-mode-type.enum.ts.html +1 -1
  93. package/coverage/lcov-report/contracts/index.html +1 -1
  94. package/coverage/lcov-report/contracts/index.ts.html +1 -1
  95. package/coverage/lcov-report/cwv/_collections/cwv-aggregator.util.ts.html +1 -1
  96. package/coverage/lcov-report/cwv/_collections/cwv-comparison.util.ts.html +4 -4
  97. package/coverage/lcov-report/cwv/_collections/cwv-diagnose.util.ts.html +1 -1
  98. package/coverage/lcov-report/cwv/_collections/cwv-emission.util.ts.html +1 -1
  99. package/coverage/lcov-report/cwv/_collections/cwv-summarize.util.ts.html +1 -1
  100. package/coverage/lcov-report/cwv/_collections/index.html +7 -7
  101. package/coverage/lcov-report/cwv/_collections/inp-interaction-script.const.ts.html +1 -1
  102. package/coverage/lcov-report/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
  103. package/coverage/lcov-report/cwv/cwv-suite.generator.ts.html +3 -3
  104. package/coverage/lcov-report/cwv/index.html +5 -5
  105. package/coverage/lcov-report/generators/_collections/cli-runner.util.ts.html +1 -1
  106. package/coverage/lcov-report/generators/_collections/config-validator.util.ts.html +1 -1
  107. package/coverage/lcov-report/generators/_collections/field-emission.util.ts.html +103 -235
  108. package/coverage/lcov-report/generators/_collections/form-level-emission.util.ts.html +33 -39
  109. package/coverage/lcov-report/generators/_collections/index.html +31 -31
  110. package/coverage/lcov-report/generators/_collections/json-schema.util.ts.html +1 -1
  111. package/coverage/lcov-report/generators/_collections/preset-configs.const.ts.html +1 -1
  112. package/coverage/lcov-report/generators/_collections/spec-emission.util.ts.html +35 -35
  113. package/coverage/lcov-report/generators/_collections/test-case-filter.util.ts.html +66 -258
  114. package/coverage/lcov-report/generators/_collections/viewport-emission.util.ts.html +1 -1
  115. package/coverage/lcov-report/generators/form-suite.generator.ts.html +79 -97
  116. package/coverage/lcov-report/generators/index.html +18 -18
  117. package/coverage/lcov-report/generators/viewport-suite.generator.ts.html +3 -3
  118. package/coverage/lcov-report/index.html +50 -95
  119. package/coverage/lcov-report/runtime/_collections/assertion-helpers.util.ts.html +7 -16
  120. package/coverage/lcov-report/runtime/_collections/index.html +17 -17
  121. package/coverage/lcov-report/runtime/_collections/unique-generator.util.ts.html +3 -3
  122. package/coverage/lcov-report/runtime/_collections/wait-helpers.util.ts.html +5 -5
  123. package/coverage/lcov-report/runtime/_services/dialog-page-object.ts.html +2 -2
  124. package/coverage/lcov-report/runtime/_services/field-page-object.ts.html +2 -2
  125. package/coverage/lcov-report/runtime/_services/form-page-object.ts.html +2 -2
  126. package/coverage/lcov-report/runtime/_services/index.html +9 -9
  127. package/coverage/lcov-report/runtime/_services/loader-page-object.ts.html +2 -2
  128. package/coverage/lcov-report/runtime/_services/logger.service.ts.html +5 -5
  129. package/coverage/lcov-report/runtime/_services/login-flow-helper.base.ts.html +2 -2
  130. package/coverage/lcov-report/runtime/_services/nav-page-object.ts.html +2 -2
  131. package/coverage/lcov-report/runtime/_services/toast-page-object.ts.html +1 -1
  132. package/coverage/lcov-report/runtime/_services/wave-2b-page-objects.ts.html +6 -6
  133. package/coverage/lcov-report/runtime/index.html +1 -1
  134. package/coverage/lcov-report/runtime/index.ts.html +1 -1
  135. package/coverage/lcov.info +804 -3165
  136. package/coverage/runtime/_collections/assertion-helpers.util.ts.html +7 -16
  137. package/coverage/runtime/_collections/index.html +17 -17
  138. package/coverage/runtime/_collections/unique-generator.util.ts.html +3 -3
  139. package/coverage/runtime/_collections/wait-helpers.util.ts.html +5 -5
  140. package/coverage/runtime/_services/dialog-page-object.ts.html +2 -2
  141. package/coverage/runtime/_services/field-page-object.ts.html +2 -2
  142. package/coverage/runtime/_services/form-page-object.ts.html +2 -2
  143. package/coverage/runtime/_services/index.html +9 -9
  144. package/coverage/runtime/_services/loader-page-object.ts.html +2 -2
  145. package/coverage/runtime/_services/logger.service.ts.html +5 -5
  146. package/coverage/runtime/_services/login-flow-helper.base.ts.html +2 -2
  147. package/coverage/runtime/_services/nav-page-object.ts.html +2 -2
  148. package/coverage/runtime/_services/toast-page-object.ts.html +1 -1
  149. package/coverage/runtime/_services/wave-2b-page-objects.ts.html +6 -6
  150. package/coverage/runtime/index.html +1 -1
  151. package/coverage/runtime/index.ts.html +1 -1
  152. package/coverage/tmp/coverage-228636-1781075225757-0.json +1 -0
  153. package/coverage/tmp/coverage-228704-1781075227108-0.json +1 -0
  154. package/dogfood/generated/date-range-field-new.spec.ts +54 -0
  155. package/dogfood/generated/password-field-new.spec.ts +97 -0
  156. package/dogfood/generated/radio-select-field-new.spec.ts +69 -0
  157. package/dogfood/generated/slider-field-new.spec.ts +47 -0
  158. package/dogfood/generated/text-field-new.spec.ts +0 -0
  159. package/logs/cicd-job.json +3 -0
  160. package/logs/cicd-report.json +3 -0
  161. package/logs/cicd-status.json +3 -0
  162. package/package.json +4 -1
  163. package/.dynamo/logs/cicd-pipeline/status.json +0 -74
  164. package/coverage/lcov-report/vqa/_collections/utils/deterministic-finding.util.ts.html +0 -481
  165. package/coverage/lcov-report/vqa/_collections/utils/finding-id.util.ts.html +0 -214
  166. package/coverage/lcov-report/vqa/_collections/utils/finding-validator.util.ts.html +0 -463
  167. package/coverage/lcov-report/vqa/_collections/utils/index.html +0 -176
  168. package/coverage/lcov-report/vqa/_collections/utils/manifest-validator.util.ts.html +0 -652
  169. package/coverage/lcov-report/vqa/_collections/utils/risk-score.util.ts.html +0 -424
  170. package/coverage/lcov-report/vqa/_enums/dom-evidence-detector.enum.ts.html +0 -214
  171. package/coverage/lcov-report/vqa/_enums/finding-severity.enum.ts.html +0 -133
  172. package/coverage/lcov-report/vqa/_enums/finding-status.enum.ts.html +0 -151
  173. package/coverage/lcov-report/vqa/_enums/index.html +0 -161
  174. package/coverage/lcov-report/vqa/_enums/visual-state-type.enum.ts.html +0 -235
  175. package/coverage/lcov-report/vqa/generators/ai-agent-readme.template.ts.html +0 -643
  176. package/coverage/lcov-report/vqa/generators/bundle-summary.template.ts.html +0 -316
  177. package/coverage/lcov-report/vqa/generators/capture-spec.generator.ts.html +0 -835
  178. package/coverage/lcov-report/vqa/generators/comparison-bundle.generator.ts.html +0 -898
  179. package/coverage/lcov-report/vqa/generators/index.html +0 -176
  180. package/coverage/lcov-report/vqa/generators/review-bundle.generator.ts.html +0 -559
  181. package/coverage/tmp/coverage-13181-1784118006591-0.json +0 -1
  182. package/coverage/tmp/coverage-13186-1784118005044-0.json +0 -1
  183. package/coverage/vqa/_collections/utils/deterministic-finding.util.ts.html +0 -481
  184. package/coverage/vqa/_collections/utils/finding-id.util.ts.html +0 -214
  185. package/coverage/vqa/_collections/utils/finding-validator.util.ts.html +0 -463
  186. package/coverage/vqa/_collections/utils/index.html +0 -176
  187. package/coverage/vqa/_collections/utils/manifest-validator.util.ts.html +0 -652
  188. package/coverage/vqa/_collections/utils/risk-score.util.ts.html +0 -424
  189. package/coverage/vqa/_enums/dom-evidence-detector.enum.ts.html +0 -214
  190. package/coverage/vqa/_enums/finding-severity.enum.ts.html +0 -133
  191. package/coverage/vqa/_enums/finding-status.enum.ts.html +0 -151
  192. package/coverage/vqa/_enums/index.html +0 -161
  193. package/coverage/vqa/_enums/visual-state-type.enum.ts.html +0 -235
  194. package/coverage/vqa/generators/ai-agent-readme.template.ts.html +0 -643
  195. package/coverage/vqa/generators/bundle-summary.template.ts.html +0 -316
  196. package/coverage/vqa/generators/capture-spec.generator.ts.html +0 -835
  197. package/coverage/vqa/generators/comparison-bundle.generator.ts.html +0 -898
  198. package/coverage/vqa/generators/index.html +0 -176
  199. package/coverage/vqa/generators/review-bundle.generator.ts.html +0 -559
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">97.69% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>212/217</span>
28
+ <span class='fraction'>173/173</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">76.92% </span>
33
+ <span class="strong">72.05% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>60/78</span>
35
+ <span class='fraction'>49/68</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>5/5</span>
42
+ <span class='fraction'>4/4</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">97.69% </span>
47
+ <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>212/217</span>
49
+ <span class='fraction'>173/173</span>
50
50
  </div>
51
51
 
52
52
 
@@ -236,55 +236,7 @@
236
236
  <a name='L171'></a><a href='#L171'>171</a>
237
237
  <a name='L172'></a><a href='#L172'>172</a>
238
238
  <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
284
- <span class="cline-any cline-yes">1x</span>
285
- <span class="cline-any cline-yes">1x</span>
286
- <span class="cline-any cline-yes">1x</span>
287
- <span class="cline-any cline-yes">1x</span>
239
+ <a name='L174'></a><a href='#L174'>174</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
288
240
  <span class="cline-any cline-yes">1x</span>
289
241
  <span class="cline-any cline-yes">1x</span>
290
242
  <span class="cline-any cline-yes">1x</span>
@@ -306,60 +258,50 @@
306
258
  <span class="cline-any cline-yes">1x</span>
307
259
  <span class="cline-any cline-yes">1x</span>
308
260
  <span class="cline-any cline-yes">1x</span>
309
- <span class="cline-any cline-yes">338x</span>
310
- <span class="cline-any cline-yes">338x</span>
311
- <span class="cline-any cline-yes">338x</span>
312
- <span class="cline-any cline-yes">338x</span>
313
- <span class="cline-any cline-yes">338x</span>
314
- <span class="cline-any cline-yes">338x</span>
315
- <span class="cline-any cline-yes">338x</span>
316
- <span class="cline-any cline-yes">338x</span>
317
- <span class="cline-any cline-yes">338x</span>
318
- <span class="cline-any cline-yes">338x</span>
319
- <span class="cline-any cline-yes">338x</span>
320
- <span class="cline-any cline-yes">338x</span>
321
- <span class="cline-any cline-yes">338x</span>
322
- <span class="cline-any cline-yes">338x</span>
261
+ <span class="cline-any cline-yes">201x</span>
262
+ <span class="cline-any cline-yes">201x</span>
263
+ <span class="cline-any cline-yes">201x</span>
264
+ <span class="cline-any cline-yes">201x</span>
265
+ <span class="cline-any cline-yes">201x</span>
266
+ <span class="cline-any cline-yes">201x</span>
267
+ <span class="cline-any cline-yes">201x</span>
268
+ <span class="cline-any cline-yes">201x</span>
269
+ <span class="cline-any cline-yes">201x</span>
270
+ <span class="cline-any cline-yes">201x</span>
271
+ <span class="cline-any cline-yes">201x</span>
272
+ <span class="cline-any cline-yes">201x</span>
273
+ <span class="cline-any cline-yes">201x</span>
274
+ <span class="cline-any cline-yes">201x</span>
323
275
  <span class="cline-any cline-yes">1x</span>
324
276
  <span class="cline-any cline-yes">1x</span>
325
- <span class="cline-any cline-yes">338x</span>
326
- <span class="cline-any cline-yes">338x</span>
327
- <span class="cline-any cline-yes">338x</span>
328
- <span class="cline-any cline-yes">338x</span>
329
- <span class="cline-any cline-yes">338x</span>
330
- <span class="cline-any cline-yes">24x</span>
277
+ <span class="cline-any cline-yes">201x</span>
278
+ <span class="cline-any cline-yes">201x</span>
279
+ <span class="cline-any cline-yes">201x</span>
280
+ <span class="cline-any cline-yes">201x</span>
281
+ <span class="cline-any cline-yes">201x</span>
282
+ <span class="cline-any cline-yes">20x</span>
331
283
  <span class="cline-any cline-yes">2x</span>
332
- <span class="cline-any cline-yes">338x</span>
333
- <span class="cline-any cline-yes">338x</span>
334
- <span class="cline-any cline-yes">338x</span>
335
- <span class="cline-any cline-yes">1x</span>
336
- <span class="cline-any cline-yes">1x</span>
337
- <span class="cline-any cline-yes">1x</span>
338
- <span class="cline-any cline-yes">338x</span>
339
- <span class="cline-any cline-yes">338x</span>
340
- <span class="cline-any cline-yes">338x</span>
341
- <span class="cline-any cline-yes">338x</span>
342
- <span class="cline-any cline-yes">338x</span>
343
- <span class="cline-any cline-yes">338x</span>
344
- <span class="cline-any cline-yes">338x</span>
345
- <span class="cline-any cline-yes">338x</span>
346
- <span class="cline-any cline-yes">10x</span>
347
- <span class="cline-any cline-yes">10x</span>
348
- <span class="cline-any cline-yes">10x</span>
349
- <span class="cline-any cline-yes">10x</span>
350
- <span class="cline-any cline-yes">10x</span>
351
- <span class="cline-any cline-yes">10x</span>
352
- <span class="cline-any cline-no">&nbsp;</span>
353
- <span class="cline-any cline-no">&nbsp;</span>
354
- <span class="cline-any cline-no">&nbsp;</span>
355
- <span class="cline-any cline-no">&nbsp;</span>
356
- <span class="cline-any cline-no">&nbsp;</span>
357
- <span class="cline-any cline-yes">10x</span>
358
- <span class="cline-any cline-yes">10x</span>
359
- <span class="cline-any cline-yes">10x</span>
360
- <span class="cline-any cline-yes">10x</span>
361
- <span class="cline-any cline-yes">328x</span>
362
- <span class="cline-any cline-yes">338x</span>
284
+ <span class="cline-any cline-yes">201x</span>
285
+ <span class="cline-any cline-yes">201x</span>
286
+ <span class="cline-any cline-yes">201x</span>
287
+ <span class="cline-any cline-yes">1x</span>
288
+ <span class="cline-any cline-yes">1x</span>
289
+ <span class="cline-any cline-yes">1x</span>
290
+ <span class="cline-any cline-yes">201x</span>
291
+ <span class="cline-any cline-yes">201x</span>
292
+ <span class="cline-any cline-yes">201x</span>
293
+ <span class="cline-any cline-yes">201x</span>
294
+ <span class="cline-any cline-yes">201x</span>
295
+ <span class="cline-any cline-yes">201x</span>
296
+ <span class="cline-any cline-yes">201x</span>
297
+ <span class="cline-any cline-yes">201x</span>
298
+ <span class="cline-any cline-yes">12x</span>
299
+ <span class="cline-any cline-yes">12x</span>
300
+ <span class="cline-any cline-yes">12x</span>
301
+ <span class="cline-any cline-yes">12x</span>
302
+ <span class="cline-any cline-yes">12x</span>
303
+ <span class="cline-any cline-yes">189x</span>
304
+ <span class="cline-any cline-yes">201x</span>
363
305
  <span class="cline-any cline-yes">2x</span>
364
306
  <span class="cline-any cline-yes">2x</span>
365
307
  <span class="cline-any cline-yes">2x</span>
@@ -379,8 +321,8 @@
379
321
  <span class="cline-any cline-yes">2x</span>
380
322
  <span class="cline-any cline-yes">2x</span>
381
323
  <span class="cline-any cline-yes">2x</span>
382
- <span class="cline-any cline-yes">326x</span>
383
- <span class="cline-any cline-yes">338x</span>
324
+ <span class="cline-any cline-yes">187x</span>
325
+ <span class="cline-any cline-yes">201x</span>
384
326
  <span class="cline-any cline-yes">3x</span>
385
327
  <span class="cline-any cline-yes">3x</span>
386
328
  <span class="cline-any cline-yes">3x</span>
@@ -389,106 +331,76 @@
389
331
  <span class="cline-any cline-yes">3x</span>
390
332
  <span class="cline-any cline-yes">3x</span>
391
333
  <span class="cline-any cline-yes">3x</span>
392
- <span class="cline-any cline-yes">323x</span>
393
- <span class="cline-any cline-yes">323x</span>
394
- <span class="cline-any cline-yes">338x</span>
334
+ <span class="cline-any cline-yes">184x</span>
335
+ <span class="cline-any cline-yes">184x</span>
336
+ <span class="cline-any cline-yes">201x</span>
395
337
  <span class="cline-any cline-yes">3x</span>
396
338
  <span class="cline-any cline-yes">3x</span>
397
339
  <span class="cline-any cline-yes">3x</span>
398
340
  <span class="cline-any cline-yes">3x</span>
399
341
  <span class="cline-any cline-yes">3x</span>
400
342
  <span class="cline-any cline-yes">3x</span>
401
- <span class="cline-any cline-yes">320x</span>
402
- <span class="cline-any cline-yes">320x</span>
403
- <span class="cline-any cline-yes">338x</span>
343
+ <span class="cline-any cline-yes">181x</span>
344
+ <span class="cline-any cline-yes">181x</span>
345
+ <span class="cline-any cline-yes">201x</span>
404
346
  <span class="cline-any cline-yes">3x</span>
405
347
  <span class="cline-any cline-yes">3x</span>
406
348
  <span class="cline-any cline-yes">3x</span>
407
349
  <span class="cline-any cline-yes">3x</span>
408
350
  <span class="cline-any cline-yes">3x</span>
409
- <span class="cline-any cline-yes">317x</span>
410
- <span class="cline-any cline-yes">317x</span>
411
- <span class="cline-any cline-yes">338x</span>
351
+ <span class="cline-any cline-yes">178x</span>
352
+ <span class="cline-any cline-yes">178x</span>
353
+ <span class="cline-any cline-yes">201x</span>
412
354
  <span class="cline-any cline-yes">2x</span>
413
355
  <span class="cline-any cline-yes">2x</span>
414
356
  <span class="cline-any cline-yes">2x</span>
415
357
  <span class="cline-any cline-yes">2x</span>
416
358
  <span class="cline-any cline-yes">2x</span>
417
359
  <span class="cline-any cline-yes">2x</span>
418
- <span class="cline-any cline-yes">315x</span>
419
- <span class="cline-any cline-yes">315x</span>
420
- <span class="cline-any cline-yes">338x</span>
360
+ <span class="cline-any cline-yes">176x</span>
361
+ <span class="cline-any cline-yes">176x</span>
362
+ <span class="cline-any cline-yes">201x</span>
421
363
  <span class="cline-any cline-yes">3x</span>
422
364
  <span class="cline-any cline-yes">3x</span>
423
365
  <span class="cline-any cline-yes">3x</span>
424
366
  <span class="cline-any cline-yes">3x</span>
425
367
  <span class="cline-any cline-yes">3x</span>
426
- <span class="cline-any cline-yes">312x</span>
427
- <span class="cline-any cline-yes">312x</span>
428
- <span class="cline-any cline-yes">338x</span>
368
+ <span class="cline-any cline-yes">173x</span>
369
+ <span class="cline-any cline-yes">173x</span>
370
+ <span class="cline-any cline-yes">201x</span>
429
371
  <span class="cline-any cline-yes">3x</span>
430
372
  <span class="cline-any cline-yes">3x</span>
431
373
  <span class="cline-any cline-yes">3x</span>
432
374
  <span class="cline-any cline-yes">3x</span>
433
375
  <span class="cline-any cline-yes">3x</span>
434
- <span class="cline-any cline-yes">309x</span>
435
- <span class="cline-any cline-yes">309x</span>
436
- <span class="cline-any cline-yes">309x</span>
437
- <span class="cline-any cline-yes">338x</span>
438
- <span class="cline-any cline-yes">338x</span>
439
- <span class="cline-any cline-yes">338x</span>
440
- <span class="cline-any cline-yes">1x</span>
441
- <span class="cline-any cline-yes">1x</span>
442
- <span class="cline-any cline-yes">1x</span>
443
- <span class="cline-any cline-yes">1x</span>
444
- <span class="cline-any cline-yes">1x</span>
445
- <span class="cline-any cline-yes">1x</span>
446
- <span class="cline-any cline-yes">22x</span>
447
- <span class="cline-any cline-yes">22x</span>
448
- <span class="cline-any cline-yes">22x</span>
449
- <span class="cline-any cline-yes">22x</span>
450
- <span class="cline-any cline-yes">22x</span>
451
- <span class="cline-any cline-yes">1x</span>
452
- <span class="cline-any cline-yes">1x</span>
453
- <span class="cline-any cline-yes">1x</span>
454
- <span class="cline-any cline-yes">338x</span>
455
- <span class="cline-any cline-yes">338x</span>
456
- <span class="cline-any cline-yes">338x</span>
457
- <span class="cline-any cline-yes">338x</span>
458
- <span class="cline-any cline-yes">338x</span>
459
- <span class="cline-any cline-yes">338x</span>
460
- <span class="cline-any cline-yes">314x</span>
461
- <span class="cline-any cline-yes">314x</span>
462
- <span class="cline-any cline-yes">314x</span>
463
- <span class="cline-any cline-yes">314x</span>
464
- <span class="cline-any cline-yes">314x</span>
465
- <span class="cline-any cline-yes">314x</span>
466
- <span class="cline-any cline-yes">314x</span>
467
- <span class="cline-any cline-yes">338x</span>
468
- <span class="cline-any cline-yes">22x</span>
469
- <span class="cline-any cline-yes">22x</span>
470
- <span class="cline-any cline-yes">22x</span>
471
- <span class="cline-any cline-yes">22x</span>
472
- <span class="cline-any cline-yes">22x</span>
473
- <span class="cline-any cline-yes">22x</span>
474
- <span class="cline-any cline-yes">22x</span>
475
- <span class="cline-any cline-yes">2x</span>
476
- <span class="cline-any cline-yes">2x</span>
477
- <span class="cline-any cline-yes">2x</span>
478
- <span class="cline-any cline-yes">2x</span>
479
- <span class="cline-any cline-yes">20x</span>
480
- <span class="cline-any cline-yes">20x</span>
481
- <span class="cline-any cline-yes">22x</span>
482
- <span class="cline-any cline-yes">1x</span>
376
+ <span class="cline-any cline-yes">170x</span>
377
+ <span class="cline-any cline-yes">170x</span>
378
+ <span class="cline-any cline-yes">170x</span>
379
+ <span class="cline-any cline-yes">201x</span>
380
+ <span class="cline-any cline-yes">201x</span>
381
+ <span class="cline-any cline-yes">201x</span>
483
382
  <span class="cline-any cline-yes">1x</span>
484
383
  <span class="cline-any cline-yes">1x</span>
485
384
  <span class="cline-any cline-yes">1x</span>
486
- <span class="cline-any cline-yes">19x</span>
487
- <span class="cline-any cline-yes">19x</span>
488
- <span class="cline-any cline-yes">19x</span>
489
- <span class="cline-any cline-yes">19x</span>
490
- <span class="cline-any cline-yes">19x</span>
491
- <span class="cline-any cline-yes">338x</span>
385
+ <span class="cline-any cline-yes">201x</span>
386
+ <span class="cline-any cline-yes">201x</span>
387
+ <span class="cline-any cline-yes">201x</span>
388
+ <span class="cline-any cline-yes">201x</span>
389
+ <span class="cline-any cline-yes">201x</span>
390
+ <span class="cline-any cline-yes">181x</span>
391
+ <span class="cline-any cline-yes">181x</span>
392
+ <span class="cline-any cline-yes">181x</span>
393
+ <span class="cline-any cline-yes">181x</span>
394
+ <span class="cline-any cline-yes">201x</span>
395
+ <span class="cline-any cline-yes">18x</span>
396
+ <span class="cline-any cline-yes">18x</span>
397
+ <span class="cline-any cline-yes">18x</span>
398
+ <span class="cline-any cline-yes">18x</span>
399
+ <span class="cline-any cline-yes">18x</span>
400
+ <span class="cline-any cline-yes">18x</span>
401
+ <span class="cline-any cline-yes">18x</span>
402
+ <span class="cline-any cline-yes">18x</span>
403
+ <span class="cline-any cline-yes">201x</span>
492
404
  <span class="cline-any cline-yes">1x</span>
493
405
  <span class="cline-any cline-yes">1x</span>
494
406
  <span class="cline-any cline-yes">1x</span>
@@ -500,11 +412,7 @@
500
412
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { DyE2E_TestExpectation_Type } from '../../contracts/_enums/test-expectation-type.enum';
501
413
  import { DyE2E_FieldTestCase_DataModel } from '../../contracts/_models/data-models/field-test-case.data-model';
502
414
  import { DyE2E_TestId_Util } from '../../contracts/_collections/utils/test-id.util';
503
- import {
504
- DyE2E_FieldSettings_Shape,
505
- DyE2E_FormSettings_Shape,
506
- DyE2E_InvalidSignal_Type,
507
- } from '../_models/form-settings-shape.interface';
415
+ import { DyE2E_FieldSettings_Shape, DyE2E_FormSettings_Shape } from '../_models/form-settings-shape.interface';
508
416
  import { DyE2E_SpecEmission_Util } from './spec-emission.util';
509
417
  &nbsp;
510
418
  /**
@@ -529,7 +437,7 @@ export class DyE2E_FieldEmission_Util {
529
437
  ): string {
530
438
  const fieldTestId: string = field.testId ?? DyE2E_TestId_Util.field(form.key, field.key);
531
439
  const interaction: string = DyE2E_FieldEmission_Util.emitInteraction(field, testCase, fieldTestId);
532
- const assertion: string = DyE2E_FieldEmission_Util.emitAssertion(form, field, testCase, fieldTestId);
440
+ const assertion: string = DyE2E_FieldEmission_Util.emitAssertion(field, testCase, fieldTestId);
533
441
  const title: string = DyE2E_FieldEmission_Util.testCaseTitle(field, testCase);
534
442
  &nbsp;
535
443
  return `test('${DyE2E_SpecEmission_Util.escapeString(title)}', async ({ page }): Promise&lt;void&gt; =&gt; {
@@ -544,7 +452,7 @@ ${DyE2E_SpecEmission_Util.indent(assertion, 1)}
544
452
  ): string {
545
453
  const exp: string =
546
454
  testCase.expectation === DyE2E_TestExpectation_Type.valid ? 'valid' :
547
- testCase.expectation === DyE2E_TestExpectation_Type.invalid ? `invalid:${testCase.expectedErrorKey ?? '?'}` :
455
+ testCase.expectation === DyE2E_TestExpectation_Type.invalid ? `invalid:${testCase.expectedErrorKey<span class="branch-0 cbranch-no" title="branch not covered" > ?? '?'}</span>` :
548
456
  testCase.expectation === DyE2E_TestExpectation_Type.transformed ? 'transformed' :
549
457
  'skip';
550
458
  return `field[${field.key}] ${testCase.id} → ${exp} — ${testCase.description}`;
@@ -561,16 +469,6 @@ ${DyE2E_SpecEmission_Util.indent(assertion, 1)}
561
469
  &nbsp;
562
470
  if (type === 'checkbox') {
563
471
  const targetChecked: boolean = !!testCase.inputValue;
564
- // Required-checkbox INVALID eset (required + unchecked): egy default-unchecked checkbox
565
- // `uncheck()`-je NO-OP (Playwright nem kattint, ha már unchecked) → a mező SOHA nem lesz
566
- // touched/dirty → a required-error NEM renderelődik → az invalid-assertion (error visible)
567
- // elhasal. Ezért check→uncheck ciklussal TOUCH-oljuk (touched+dirty), unchecked végállapottal.
568
- if (!targetChecked &amp;&amp; testCase.expectation === DyE2E_TestExpectation_Type.invalid) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
569
- <span class="cstat-no" title="statement not covered" > return `const checkbox: Locator = page.getByTestId('${fieldTestId}');</span>
570
- <span class="cstat-no" title="statement not covered" >await checkbox.check();</span>
571
- <span class="cstat-no" title="statement not covered" >await checkbox.uncheck();</span>
572
- <span class="cstat-no" title="statement not covered" >await checkbox.blur();`;</span>
573
- <span class="cstat-no" title="statement not covered" > }</span>
574
472
  return `const checkbox: Locator = page.getByTestId('${fieldTestId}');
575
473
  await checkbox.${targetChecked ? 'check' : 'uncheck'}();
576
474
  await checkbox.blur();`;
@@ -654,56 +552,26 @@ await editor.blur();`;
654
552
  await input.fill(${typeof testCase.inputValue === 'string' ? valueLit <span class="branch-0 cbranch-no" title="branch not covered" >: `String(${valueLit} ?? '')`}</span>);
655
553
  await input.blur();`;
656
554
  }
657
- &nbsp;
658
- /**
659
- * Az INVALID-eset assertion-jelének feloldása (MASTERPROMPTER-004): field-szintű felülírja a
660
- * form-szintűt; egyik sincs → `field-error` (flotta-kompatibilis default, a LOGIN-suite nem törik).
661
- */
662
- private static resolveInvalidSignal(
663
- form: DyE2E_FormSettings_Shape,
664
- field: DyE2E_FieldSettings_Shape,
665
- ): DyE2E_InvalidSignal_Type {
666
- return field.invalidSignal ?? form.invalidSignal ?? 'field-error';
667
- }
668
555
  &nbsp;
669
556
  /** A vart kimenet ellenorzese. */
670
557
  private static emitAssertion&lt;T&gt;(
671
- form: DyE2E_FormSettings_Shape,
672
558
  field: DyE2E_FieldSettings_Shape,
673
559
  testCase: DyE2E_FieldTestCase_DataModel&lt;T&gt;,
674
560
  fieldTestId: string,
675
561
  ): string {
676
562
  if (testCase.expectation === DyE2E_TestExpectation_Type.valid) {
677
- // Nincs error-msg vagy red-border. A `toHaveCount(0)` auto-retry-zik, DE terhelt CI-runneren (párhuzamos
678
- // build-ök → lassú kliens-render) egy tranziens/késleltetett validációs-render túllóghat az alapértelmezett
679
- // 5s expect-timeout-on → false-fail (flake). Explicit hosszabb timeout load-toleranciát ad: valid input-nál
680
- // valóban NINCS error, így ez CSAK egy valós bug esetén "kerül időbe" (nem ad false-green-t).
563
+ // Nincs error-msg vagy red-border.
681
564
  return `const fieldRoot: Locator = page.locator('[data-testid="${fieldTestId}"]').locator('xpath=ancestor-or-self::*[contains(@class,"field") or starts-with(local-name(),"dynamo-")]').first();
682
- await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0, { timeout: 10_000 });`;
565
+ await expect(fieldRoot.locator('.text-red-400.mt-1')).toHaveCount(0);`;
683
566
  }
684
567
  if (testCase.expectation === DyE2E_TestExpectation_Type.invalid) {
685
- const signal: DyE2E_InvalidSignal_Type = DyE2E_FieldEmission_Util.resolveInvalidSignal(form, field);
686
- const errKeyComment: string = testCase.expectedErrorKey
687
- ? `\n// expectedErrorKey: ${testCase.expectedErrorKey}`
688
- : '';
689
- &nbsp;
690
- // submit-disabled: a mező-error nem feltétlen renderelt, de a form nem submittelhető.
691
- if (signal === 'submit-disabled') {
692
- const submitTestId: string = form.submitTestId ?? DyE2E_TestId_Util.formSubmit(form.key);
693
- return `const submitBtn: Locator = page.getByTestId('${submitTestId}');
694
- await expect(submitBtn).toBeDisabled();${errKeyComment}`;
695
- }
696
- &nbsp;
697
- // form-error-panel: form-szintű error-panel látszik (dedikált testId).
698
- if (signal === 'form-error-panel') {
699
- const formErrorTestId: string = (form.formErrorTestId as string | undefined) ?? DyE2E_TestId_Util.formError(form.key);
700
- return `const formError: Locator = page.getByTestId('${formErrorTestId}');
701
- await expect(formError).toBeVisible();${errKeyComment}`;
702
- }
703
- &nbsp;
704
- // field-error (DEFAULT): red-border + first-error-message a mező alatt.
568
+ // Red-border + first-error-message.
705
569
  return `const fieldRoot: Locator = page.locator('[data-testid="${fieldTestId}"]').locator('xpath=ancestor-or-self::*[starts-with(local-name(),"dynamo-")]').first();
706
- await expect(fieldRoot.locator('.text-red-400.mt-1').first()).toBeVisible();${errKeyComment}`;
570
+ await expect(fieldRoot.locator('.text-red-400.mt-1').first()).toBeVisible();${
571
+ testCase.expectedErrorKey
572
+ ? `\n// expectedErrorKey: ${testCase.expectedErrorKey}`
573
+ <span class="branch-0 cbranch-no" title="branch not covered" > : ''</span>
574
+ }`;
707
575
  }
708
576
  if (testCase.expectation === DyE2E_TestExpectation_Type.transformed) {
709
577
  const transformedLit: string = DyE2E_SpecEmission_Util.valueLiteral(testCase.expectedTransformedValue<span class="branch-0 cbranch-no" title="branch not covered" > ?? null)</span>;
@@ -721,7 +589,7 @@ expect(true).toBe(true);`;
721
589
  <div class='footer quiet pad2 space-top1 center small'>
722
590
  Code coverage generated by
723
591
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
724
- at 2026-07-15T12:20:07.101Z
592
+ at 2026-06-10T07:07:07.643Z
725
593
  </div>
726
594
  <script src="../../prettify.js"></script>
727
595
  <script>
@@ -25,14 +25,14 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>47/47</span>
28
+ <span class='fraction'>45/45</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>10/10</span>
35
+ <span class='fraction'>9/9</span>
36
36
  </div>
37
37
 
38
38
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>47/47</span>
49
+ <span class='fraction'>45/45</span>
50
50
  </div>
51
51
 
52
52
 
@@ -108,9 +108,7 @@
108
108
  <a name='L43'></a><a href='#L43'>43</a>
109
109
  <a name='L44'></a><a href='#L44'>44</a>
110
110
  <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
111
+ <a name='L46'></a><a href='#L46'>46</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
114
112
  <span class="cline-any cline-yes">1x</span>
115
113
  <span class="cline-any cline-yes">1x</span>
116
114
  <span class="cline-any cline-yes">1x</span>
@@ -121,41 +119,39 @@
121
119
  <span class="cline-any cline-yes">1x</span>
122
120
  <span class="cline-any cline-yes">1x</span>
123
121
  <span class="cline-any cline-yes">1x</span>
124
- <span class="cline-any cline-yes">20x</span>
125
- <span class="cline-any cline-yes">20x</span>
126
- <span class="cline-any cline-yes">20x</span>
127
- <span class="cline-any cline-yes">20x</span>
128
- <span class="cline-any cline-yes">20x</span>
129
- <span class="cline-any cline-yes">20x</span>
130
- <span class="cline-any cline-yes">20x</span>
131
- <span class="cline-any cline-yes">20x</span>
132
- <span class="cline-any cline-yes">20x</span>
133
- <span class="cline-any cline-yes">7x</span>
134
- <span class="cline-any cline-yes">20x</span>
135
- <span class="cline-any cline-yes">20x</span>
136
- <span class="cline-any cline-yes">20x</span>
122
+ <span class="cline-any cline-yes">15x</span>
123
+ <span class="cline-any cline-yes">15x</span>
124
+ <span class="cline-any cline-yes">15x</span>
125
+ <span class="cline-any cline-yes">15x</span>
126
+ <span class="cline-any cline-yes">15x</span>
127
+ <span class="cline-any cline-yes">15x</span>
128
+ <span class="cline-any cline-yes">15x</span>
129
+ <span class="cline-any cline-yes">4x</span>
130
+ <span class="cline-any cline-yes">15x</span>
131
+ <span class="cline-any cline-yes">15x</span>
132
+ <span class="cline-any cline-yes">15x</span>
137
133
  <span class="cline-any cline-yes">1x</span>
138
134
  <span class="cline-any cline-yes">1x</span>
139
- <span class="cline-any cline-yes">20x</span>
140
- <span class="cline-any cline-yes">20x</span>
141
- <span class="cline-any cline-yes">20x</span>
142
- <span class="cline-any cline-yes">20x</span>
143
- <span class="cline-any cline-yes">20x</span>
144
- <span class="cline-any cline-yes">20x</span>
135
+ <span class="cline-any cline-yes">15x</span>
136
+ <span class="cline-any cline-yes">15x</span>
137
+ <span class="cline-any cline-yes">15x</span>
138
+ <span class="cline-any cline-yes">15x</span>
139
+ <span class="cline-any cline-yes">15x</span>
140
+ <span class="cline-any cline-yes">15x</span>
145
141
  <span class="cline-any cline-yes">1x</span>
146
142
  <span class="cline-any cline-yes">1x</span>
147
- <span class="cline-any cline-yes">20x</span>
148
- <span class="cline-any cline-yes">20x</span>
149
- <span class="cline-any cline-yes">20x</span>
150
- <span class="cline-any cline-yes">20x</span>
143
+ <span class="cline-any cline-yes">15x</span>
144
+ <span class="cline-any cline-yes">15x</span>
145
+ <span class="cline-any cline-yes">15x</span>
146
+ <span class="cline-any cline-yes">15x</span>
151
147
  <span class="cline-any cline-yes">1x</span>
152
148
  <span class="cline-any cline-yes">1x</span>
153
- <span class="cline-any cline-yes">20x</span>
154
- <span class="cline-any cline-yes">20x</span>
155
- <span class="cline-any cline-yes">20x</span>
156
- <span class="cline-any cline-yes">20x</span>
157
- <span class="cline-any cline-yes">20x</span>
158
- <span class="cline-any cline-yes">20x</span>
149
+ <span class="cline-any cline-yes">15x</span>
150
+ <span class="cline-any cline-yes">15x</span>
151
+ <span class="cline-any cline-yes">15x</span>
152
+ <span class="cline-any cline-yes">15x</span>
153
+ <span class="cline-any cline-yes">15x</span>
154
+ <span class="cline-any cline-yes">15x</span>
159
155
  <span class="cline-any cline-yes">1x</span>
160
156
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { DyE2E_TestId_Util } from '../../contracts/_collections/utils/test-id.util';
161
157
  import { DyE2E_FormSettings_Shape } from '../_models/form-settings-shape.interface';
@@ -168,9 +164,7 @@ import { DyE2E_SpecEmission_Util } from './spec-emission.util';
168
164
  export class DyE2E_FormLevelEmission_Util {
169
165
  &nbsp;
170
166
  static emitSubmitEmpty(form: DyE2E_FormSettings_Shape): string {
171
- // Explicit submitTestId override (a renderelt `${formId}-submit` ≠ `${key}-submit`
172
- // esetén — pl. FDPNX login), különben a `${key}-submit` derivált.
173
- const submitTestId: string = form.submitTestId ?? DyE2E_TestId_Util.formSubmit(form.key);
167
+ const submitTestId: string = DyE2E_TestId_Util.formSubmit(form.key);
174
168
  const requiredFieldCount: number = form.fields.filter((f): boolean =&gt; f.required === true).length;
175
169
  return `test('form-level: submit empty form ${requiredFieldCount &gt; 0 ? '→ required-validators fire' : '→ submits'}', async ({ page }): Promise&lt;void&gt; =&gt; {
176
170
  const submit: Locator = page.getByTestId('${submitTestId}');
@@ -211,7 +205,7 @@ ${requiredFieldCount &gt; 0
211
205
  <div class='footer quiet pad2 space-top1 center small'>
212
206
  Code coverage generated by
213
207
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
214
- at 2026-07-15T12:20:07.101Z
208
+ at 2026-06-10T07:07:07.643Z
215
209
  </div>
216
210
  <script src="../../prettify.js"></script>
217
211
  <script>