@futdevpro/dynamo-e2e 1.18.8 → 1.18.10

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 (203) 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 +130 -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 +52 -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/_models/interfaces/project-split-options.interface.d.ts +27 -0
  34. package/build/_modules/presets/_models/interfaces/project-split-options.interface.d.ts.map +1 -0
  35. package/build/_modules/presets/_models/interfaces/project-split-options.interface.js +3 -0
  36. package/build/_modules/presets/_models/interfaces/project-split-options.interface.js.map +1 -0
  37. package/build/_modules/presets/index.d.ts +7 -0
  38. package/build/_modules/presets/index.d.ts.map +1 -1
  39. package/build/_modules/presets/index.js +12 -1
  40. package/build/_modules/presets/index.js.map +1 -1
  41. package/build/_modules/presets/presets.spec.d.ts +2 -0
  42. package/build/_modules/presets/presets.spec.d.ts.map +1 -0
  43. package/build/_modules/presets/presets.spec.js +286 -0
  44. package/build/_modules/presets/presets.spec.js.map +1 -0
  45. package/build/_modules/vqa/generators/ai-agent-readme.template.d.ts +2 -1
  46. package/build/_modules/vqa/generators/ai-agent-readme.template.d.ts.map +1 -1
  47. package/build/_modules/vqa/generators/ai-agent-readme.template.js +22 -3
  48. package/build/_modules/vqa/generators/ai-agent-readme.template.js.map +1 -1
  49. package/coverage/contracts/_collections/index.html +1 -1
  50. package/coverage/contracts/_collections/index.ts.html +1 -1
  51. package/coverage/contracts/_collections/utils/index.html +9 -9
  52. package/coverage/contracts/_collections/utils/test-id.util.ts.html +15 -30
  53. package/coverage/contracts/_enums/cwv-metric-type.enum.ts.html +1 -1
  54. package/coverage/contracts/_enums/field-test-case-type.enum.ts.html +4 -34
  55. package/coverage/contracts/_enums/index.html +5 -5
  56. package/coverage/contracts/_enums/index.ts.html +1 -1
  57. package/coverage/contracts/_enums/standard-viewport.enum.ts.html +1 -1
  58. package/coverage/contracts/_enums/test-expectation-type.enum.ts.html +1 -1
  59. package/coverage/contracts/_enums/test-run-mode-type.enum.ts.html +1 -1
  60. package/coverage/contracts/index.html +1 -1
  61. package/coverage/contracts/index.ts.html +1 -1
  62. package/coverage/cwv/_collections/cwv-aggregator.util.ts.html +1 -1
  63. package/coverage/cwv/_collections/cwv-comparison.util.ts.html +4 -4
  64. package/coverage/cwv/_collections/cwv-diagnose.util.ts.html +1 -1
  65. package/coverage/cwv/_collections/cwv-emission.util.ts.html +1 -1
  66. package/coverage/cwv/_collections/cwv-summarize.util.ts.html +1 -1
  67. package/coverage/cwv/_collections/index.html +7 -7
  68. package/coverage/cwv/_collections/inp-interaction-script.const.ts.html +1 -1
  69. package/coverage/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
  70. package/coverage/cwv/cwv-suite.generator.ts.html +3 -3
  71. package/coverage/cwv/index.html +5 -5
  72. package/coverage/generators/_collections/cli-runner.util.ts.html +1 -1
  73. package/coverage/generators/_collections/config-validator.util.ts.html +1 -1
  74. package/coverage/generators/_collections/field-emission.util.ts.html +103 -235
  75. package/coverage/generators/_collections/form-level-emission.util.ts.html +33 -39
  76. package/coverage/generators/_collections/index.html +31 -31
  77. package/coverage/generators/_collections/json-schema.util.ts.html +1 -1
  78. package/coverage/generators/_collections/preset-configs.const.ts.html +1 -1
  79. package/coverage/generators/_collections/spec-emission.util.ts.html +35 -35
  80. package/coverage/generators/_collections/test-case-filter.util.ts.html +66 -258
  81. package/coverage/generators/_collections/viewport-emission.util.ts.html +1 -1
  82. package/coverage/generators/form-suite.generator.ts.html +79 -97
  83. package/coverage/generators/index.html +18 -18
  84. package/coverage/generators/viewport-suite.generator.ts.html +3 -3
  85. package/coverage/index.html +50 -95
  86. package/coverage/lcov-report/contracts/_collections/index.html +1 -1
  87. package/coverage/lcov-report/contracts/_collections/index.ts.html +1 -1
  88. package/coverage/lcov-report/contracts/_collections/utils/index.html +9 -9
  89. package/coverage/lcov-report/contracts/_collections/utils/test-id.util.ts.html +15 -30
  90. package/coverage/lcov-report/contracts/_enums/cwv-metric-type.enum.ts.html +1 -1
  91. package/coverage/lcov-report/contracts/_enums/field-test-case-type.enum.ts.html +4 -34
  92. package/coverage/lcov-report/contracts/_enums/index.html +5 -5
  93. package/coverage/lcov-report/contracts/_enums/index.ts.html +1 -1
  94. package/coverage/lcov-report/contracts/_enums/standard-viewport.enum.ts.html +1 -1
  95. package/coverage/lcov-report/contracts/_enums/test-expectation-type.enum.ts.html +1 -1
  96. package/coverage/lcov-report/contracts/_enums/test-run-mode-type.enum.ts.html +1 -1
  97. package/coverage/lcov-report/contracts/index.html +1 -1
  98. package/coverage/lcov-report/contracts/index.ts.html +1 -1
  99. package/coverage/lcov-report/cwv/_collections/cwv-aggregator.util.ts.html +1 -1
  100. package/coverage/lcov-report/cwv/_collections/cwv-comparison.util.ts.html +4 -4
  101. package/coverage/lcov-report/cwv/_collections/cwv-diagnose.util.ts.html +1 -1
  102. package/coverage/lcov-report/cwv/_collections/cwv-emission.util.ts.html +1 -1
  103. package/coverage/lcov-report/cwv/_collections/cwv-summarize.util.ts.html +1 -1
  104. package/coverage/lcov-report/cwv/_collections/index.html +7 -7
  105. package/coverage/lcov-report/cwv/_collections/inp-interaction-script.const.ts.html +1 -1
  106. package/coverage/lcov-report/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
  107. package/coverage/lcov-report/cwv/cwv-suite.generator.ts.html +3 -3
  108. package/coverage/lcov-report/cwv/index.html +5 -5
  109. package/coverage/lcov-report/generators/_collections/cli-runner.util.ts.html +1 -1
  110. package/coverage/lcov-report/generators/_collections/config-validator.util.ts.html +1 -1
  111. package/coverage/lcov-report/generators/_collections/field-emission.util.ts.html +103 -235
  112. package/coverage/lcov-report/generators/_collections/form-level-emission.util.ts.html +33 -39
  113. package/coverage/lcov-report/generators/_collections/index.html +31 -31
  114. package/coverage/lcov-report/generators/_collections/json-schema.util.ts.html +1 -1
  115. package/coverage/lcov-report/generators/_collections/preset-configs.const.ts.html +1 -1
  116. package/coverage/lcov-report/generators/_collections/spec-emission.util.ts.html +35 -35
  117. package/coverage/lcov-report/generators/_collections/test-case-filter.util.ts.html +66 -258
  118. package/coverage/lcov-report/generators/_collections/viewport-emission.util.ts.html +1 -1
  119. package/coverage/lcov-report/generators/form-suite.generator.ts.html +79 -97
  120. package/coverage/lcov-report/generators/index.html +18 -18
  121. package/coverage/lcov-report/generators/viewport-suite.generator.ts.html +3 -3
  122. package/coverage/lcov-report/index.html +50 -95
  123. package/coverage/lcov-report/runtime/_collections/assertion-helpers.util.ts.html +7 -16
  124. package/coverage/lcov-report/runtime/_collections/index.html +17 -17
  125. package/coverage/lcov-report/runtime/_collections/unique-generator.util.ts.html +3 -3
  126. package/coverage/lcov-report/runtime/_collections/wait-helpers.util.ts.html +5 -5
  127. package/coverage/lcov-report/runtime/_services/dialog-page-object.ts.html +2 -2
  128. package/coverage/lcov-report/runtime/_services/field-page-object.ts.html +2 -2
  129. package/coverage/lcov-report/runtime/_services/form-page-object.ts.html +2 -2
  130. package/coverage/lcov-report/runtime/_services/index.html +9 -9
  131. package/coverage/lcov-report/runtime/_services/loader-page-object.ts.html +2 -2
  132. package/coverage/lcov-report/runtime/_services/logger.service.ts.html +5 -5
  133. package/coverage/lcov-report/runtime/_services/login-flow-helper.base.ts.html +2 -2
  134. package/coverage/lcov-report/runtime/_services/nav-page-object.ts.html +2 -2
  135. package/coverage/lcov-report/runtime/_services/toast-page-object.ts.html +1 -1
  136. package/coverage/lcov-report/runtime/_services/wave-2b-page-objects.ts.html +6 -6
  137. package/coverage/lcov-report/runtime/index.html +1 -1
  138. package/coverage/lcov-report/runtime/index.ts.html +1 -1
  139. package/coverage/lcov.info +804 -3165
  140. package/coverage/runtime/_collections/assertion-helpers.util.ts.html +7 -16
  141. package/coverage/runtime/_collections/index.html +17 -17
  142. package/coverage/runtime/_collections/unique-generator.util.ts.html +3 -3
  143. package/coverage/runtime/_collections/wait-helpers.util.ts.html +5 -5
  144. package/coverage/runtime/_services/dialog-page-object.ts.html +2 -2
  145. package/coverage/runtime/_services/field-page-object.ts.html +2 -2
  146. package/coverage/runtime/_services/form-page-object.ts.html +2 -2
  147. package/coverage/runtime/_services/index.html +9 -9
  148. package/coverage/runtime/_services/loader-page-object.ts.html +2 -2
  149. package/coverage/runtime/_services/logger.service.ts.html +5 -5
  150. package/coverage/runtime/_services/login-flow-helper.base.ts.html +2 -2
  151. package/coverage/runtime/_services/nav-page-object.ts.html +2 -2
  152. package/coverage/runtime/_services/toast-page-object.ts.html +1 -1
  153. package/coverage/runtime/_services/wave-2b-page-objects.ts.html +6 -6
  154. package/coverage/runtime/index.html +1 -1
  155. package/coverage/runtime/index.ts.html +1 -1
  156. package/coverage/tmp/coverage-228636-1781075225757-0.json +1 -0
  157. package/coverage/tmp/coverage-228704-1781075227108-0.json +1 -0
  158. package/dogfood/generated/date-range-field-new.spec.ts +54 -0
  159. package/dogfood/generated/password-field-new.spec.ts +97 -0
  160. package/dogfood/generated/radio-select-field-new.spec.ts +69 -0
  161. package/dogfood/generated/slider-field-new.spec.ts +47 -0
  162. package/dogfood/generated/text-field-new.spec.ts +0 -0
  163. package/logs/cicd-job.json +3 -0
  164. package/logs/cicd-report.json +3 -0
  165. package/logs/cicd-status.json +3 -0
  166. package/package.json +4 -1
  167. package/.dynamo/logs/cicd-pipeline/status.json +0 -74
  168. package/coverage/lcov-report/vqa/_collections/utils/deterministic-finding.util.ts.html +0 -481
  169. package/coverage/lcov-report/vqa/_collections/utils/finding-id.util.ts.html +0 -214
  170. package/coverage/lcov-report/vqa/_collections/utils/finding-validator.util.ts.html +0 -463
  171. package/coverage/lcov-report/vqa/_collections/utils/index.html +0 -176
  172. package/coverage/lcov-report/vqa/_collections/utils/manifest-validator.util.ts.html +0 -652
  173. package/coverage/lcov-report/vqa/_collections/utils/risk-score.util.ts.html +0 -424
  174. package/coverage/lcov-report/vqa/_enums/dom-evidence-detector.enum.ts.html +0 -214
  175. package/coverage/lcov-report/vqa/_enums/finding-severity.enum.ts.html +0 -133
  176. package/coverage/lcov-report/vqa/_enums/finding-status.enum.ts.html +0 -151
  177. package/coverage/lcov-report/vqa/_enums/index.html +0 -161
  178. package/coverage/lcov-report/vqa/_enums/visual-state-type.enum.ts.html +0 -235
  179. package/coverage/lcov-report/vqa/generators/ai-agent-readme.template.ts.html +0 -643
  180. package/coverage/lcov-report/vqa/generators/bundle-summary.template.ts.html +0 -316
  181. package/coverage/lcov-report/vqa/generators/capture-spec.generator.ts.html +0 -835
  182. package/coverage/lcov-report/vqa/generators/comparison-bundle.generator.ts.html +0 -898
  183. package/coverage/lcov-report/vqa/generators/index.html +0 -176
  184. package/coverage/lcov-report/vqa/generators/review-bundle.generator.ts.html +0 -559
  185. package/coverage/tmp/coverage-13181-1784118006591-0.json +0 -1
  186. package/coverage/tmp/coverage-13186-1784118005044-0.json +0 -1
  187. package/coverage/vqa/_collections/utils/deterministic-finding.util.ts.html +0 -481
  188. package/coverage/vqa/_collections/utils/finding-id.util.ts.html +0 -214
  189. package/coverage/vqa/_collections/utils/finding-validator.util.ts.html +0 -463
  190. package/coverage/vqa/_collections/utils/index.html +0 -176
  191. package/coverage/vqa/_collections/utils/manifest-validator.util.ts.html +0 -652
  192. package/coverage/vqa/_collections/utils/risk-score.util.ts.html +0 -424
  193. package/coverage/vqa/_enums/dom-evidence-detector.enum.ts.html +0 -214
  194. package/coverage/vqa/_enums/finding-severity.enum.ts.html +0 -133
  195. package/coverage/vqa/_enums/finding-status.enum.ts.html +0 -151
  196. package/coverage/vqa/_enums/index.html +0 -161
  197. package/coverage/vqa/_enums/visual-state-type.enum.ts.html +0 -235
  198. package/coverage/vqa/generators/ai-agent-readme.template.ts.html +0 -643
  199. package/coverage/vqa/generators/bundle-summary.template.ts.html +0 -316
  200. package/coverage/vqa/generators/capture-spec.generator.ts.html +0 -835
  201. package/coverage/vqa/generators/comparison-bundle.generator.ts.html +0 -898
  202. package/coverage/vqa/generators/index.html +0 -176
  203. 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>