@futdevpro/dynamo-e2e 1.18.7 → 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 (211) 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/contracts/_collections/utils/test-id.util.d.ts +2 -0
  5. package/build/_modules/contracts/_collections/utils/test-id.util.d.ts.map +1 -1
  6. package/build/_modules/contracts/_collections/utils/test-id.util.js +4 -0
  7. package/build/_modules/contracts/_collections/utils/test-id.util.js.map +1 -1
  8. package/build/_modules/generators/_collections/cli-runner.util.d.ts.map +1 -1
  9. package/build/_modules/generators/_collections/cli-runner.util.js +5 -11
  10. package/build/_modules/generators/_collections/cli-runner.util.js.map +1 -1
  11. package/build/_modules/generators/_collections/field-emission.util.d.ts +5 -0
  12. package/build/_modules/generators/_collections/field-emission.util.d.ts.map +1 -1
  13. package/build/_modules/generators/_collections/field-emission.util.js +27 -6
  14. package/build/_modules/generators/_collections/field-emission.util.js.map +1 -1
  15. package/build/_modules/generators/_models/form-settings-shape.interface.d.ts +15 -0
  16. package/build/_modules/generators/_models/form-settings-shape.interface.d.ts.map +1 -1
  17. package/build/_modules/generators/bootstrap.spec.js +4 -3
  18. package/build/_modules/generators/bootstrap.spec.js.map +1 -1
  19. package/build/_modules/generators/field-emission-edge.spec.js +49 -0
  20. package/build/_modules/generators/field-emission-edge.spec.js.map +1 -1
  21. package/build/_modules/presets/_collections/constants/playwright-viewport-presets.const.d.ts +22 -0
  22. package/build/_modules/presets/_collections/constants/playwright-viewport-presets.const.d.ts.map +1 -0
  23. package/build/_modules/presets/_collections/constants/playwright-viewport-presets.const.js +69 -0
  24. package/build/_modules/presets/_collections/constants/playwright-viewport-presets.const.js.map +1 -0
  25. package/build/_modules/presets/_collections/global-setup.factory.d.ts +14 -0
  26. package/build/_modules/presets/_collections/global-setup.factory.d.ts.map +1 -0
  27. package/build/_modules/presets/_collections/global-setup.factory.js +113 -0
  28. package/build/_modules/presets/_collections/global-setup.factory.js.map +1 -0
  29. package/build/_modules/presets/_collections/playwright-config.factory.d.ts +19 -0
  30. package/build/_modules/presets/_collections/playwright-config.factory.d.ts.map +1 -0
  31. package/build/_modules/presets/_collections/playwright-config.factory.js +107 -0
  32. package/build/_modules/presets/_collections/playwright-config.factory.js.map +1 -0
  33. package/build/_modules/presets/_collections/viewport-preset-resolver.util.d.ts +8 -0
  34. package/build/_modules/presets/_collections/viewport-preset-resolver.util.d.ts.map +1 -0
  35. package/build/_modules/presets/_collections/viewport-preset-resolver.util.js +25 -0
  36. package/build/_modules/presets/_collections/viewport-preset-resolver.util.js.map +1 -0
  37. package/build/_modules/presets/_models/interfaces/global-setup-options.interface.d.ts +28 -0
  38. package/build/_modules/presets/_models/interfaces/global-setup-options.interface.d.ts.map +1 -0
  39. package/build/_modules/presets/_models/interfaces/global-setup-options.interface.js +3 -0
  40. package/build/_modules/presets/_models/interfaces/global-setup-options.interface.js.map +1 -0
  41. package/build/_modules/presets/_models/interfaces/playwright-config-options.interface.d.ts +43 -0
  42. package/build/_modules/presets/_models/interfaces/playwright-config-options.interface.d.ts.map +1 -0
  43. package/build/_modules/presets/_models/interfaces/playwright-config-options.interface.js +3 -0
  44. package/build/_modules/presets/_models/interfaces/playwright-config-options.interface.js.map +1 -0
  45. package/build/_modules/presets/index.d.ts +6 -0
  46. package/build/_modules/presets/index.d.ts.map +1 -1
  47. package/build/_modules/presets/index.js +12 -1
  48. package/build/_modules/presets/index.js.map +1 -1
  49. package/build/_modules/presets/presets.spec.d.ts +2 -0
  50. package/build/_modules/presets/presets.spec.d.ts.map +1 -0
  51. package/build/_modules/presets/presets.spec.js +230 -0
  52. package/build/_modules/presets/presets.spec.js.map +1 -0
  53. package/build/_modules/vqa/generators/ai-agent-readme.template.d.ts +2 -1
  54. package/build/_modules/vqa/generators/ai-agent-readme.template.d.ts.map +1 -1
  55. package/build/_modules/vqa/generators/ai-agent-readme.template.js +22 -3
  56. package/build/_modules/vqa/generators/ai-agent-readme.template.js.map +1 -1
  57. package/coverage/contracts/_collections/index.html +1 -1
  58. package/coverage/contracts/_collections/index.ts.html +1 -1
  59. package/coverage/contracts/_collections/utils/index.html +1 -1
  60. package/coverage/contracts/_collections/utils/test-id.util.ts.html +10 -10
  61. package/coverage/contracts/_enums/cwv-metric-type.enum.ts.html +1 -1
  62. package/coverage/contracts/_enums/field-test-case-type.enum.ts.html +4 -34
  63. package/coverage/contracts/_enums/index.html +5 -5
  64. package/coverage/contracts/_enums/index.ts.html +1 -1
  65. package/coverage/contracts/_enums/standard-viewport.enum.ts.html +1 -1
  66. package/coverage/contracts/_enums/test-expectation-type.enum.ts.html +1 -1
  67. package/coverage/contracts/_enums/test-run-mode-type.enum.ts.html +1 -1
  68. package/coverage/contracts/index.html +1 -1
  69. package/coverage/contracts/index.ts.html +1 -1
  70. package/coverage/cwv/_collections/cwv-aggregator.util.ts.html +1 -1
  71. package/coverage/cwv/_collections/cwv-comparison.util.ts.html +4 -4
  72. package/coverage/cwv/_collections/cwv-diagnose.util.ts.html +1 -1
  73. package/coverage/cwv/_collections/cwv-emission.util.ts.html +1 -1
  74. package/coverage/cwv/_collections/cwv-summarize.util.ts.html +1 -1
  75. package/coverage/cwv/_collections/index.html +7 -7
  76. package/coverage/cwv/_collections/inp-interaction-script.const.ts.html +1 -1
  77. package/coverage/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
  78. package/coverage/cwv/cwv-suite.generator.ts.html +3 -3
  79. package/coverage/cwv/index.html +5 -5
  80. package/coverage/generators/_collections/cli-runner.util.ts.html +1 -1
  81. package/coverage/generators/_collections/config-validator.util.ts.html +1 -1
  82. package/coverage/generators/_collections/field-emission.util.ts.html +87 -126
  83. package/coverage/generators/_collections/form-level-emission.util.ts.html +33 -39
  84. package/coverage/generators/_collections/index.html +29 -29
  85. package/coverage/generators/_collections/json-schema.util.ts.html +1 -1
  86. package/coverage/generators/_collections/preset-configs.const.ts.html +1 -1
  87. package/coverage/generators/_collections/spec-emission.util.ts.html +35 -35
  88. package/coverage/generators/_collections/test-case-filter.util.ts.html +66 -258
  89. package/coverage/generators/_collections/viewport-emission.util.ts.html +1 -1
  90. package/coverage/generators/form-suite.generator.ts.html +79 -97
  91. package/coverage/generators/index.html +18 -18
  92. package/coverage/generators/viewport-suite.generator.ts.html +3 -3
  93. package/coverage/index.html +45 -90
  94. package/coverage/lcov-report/contracts/_collections/index.html +1 -1
  95. package/coverage/lcov-report/contracts/_collections/index.ts.html +1 -1
  96. package/coverage/lcov-report/contracts/_collections/utils/index.html +1 -1
  97. package/coverage/lcov-report/contracts/_collections/utils/test-id.util.ts.html +10 -10
  98. package/coverage/lcov-report/contracts/_enums/cwv-metric-type.enum.ts.html +1 -1
  99. package/coverage/lcov-report/contracts/_enums/field-test-case-type.enum.ts.html +4 -34
  100. package/coverage/lcov-report/contracts/_enums/index.html +5 -5
  101. package/coverage/lcov-report/contracts/_enums/index.ts.html +1 -1
  102. package/coverage/lcov-report/contracts/_enums/standard-viewport.enum.ts.html +1 -1
  103. package/coverage/lcov-report/contracts/_enums/test-expectation-type.enum.ts.html +1 -1
  104. package/coverage/lcov-report/contracts/_enums/test-run-mode-type.enum.ts.html +1 -1
  105. package/coverage/lcov-report/contracts/index.html +1 -1
  106. package/coverage/lcov-report/contracts/index.ts.html +1 -1
  107. package/coverage/lcov-report/cwv/_collections/cwv-aggregator.util.ts.html +1 -1
  108. package/coverage/lcov-report/cwv/_collections/cwv-comparison.util.ts.html +4 -4
  109. package/coverage/lcov-report/cwv/_collections/cwv-diagnose.util.ts.html +1 -1
  110. package/coverage/lcov-report/cwv/_collections/cwv-emission.util.ts.html +1 -1
  111. package/coverage/lcov-report/cwv/_collections/cwv-summarize.util.ts.html +1 -1
  112. package/coverage/lcov-report/cwv/_collections/index.html +7 -7
  113. package/coverage/lcov-report/cwv/_collections/inp-interaction-script.const.ts.html +1 -1
  114. package/coverage/lcov-report/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
  115. package/coverage/lcov-report/cwv/cwv-suite.generator.ts.html +3 -3
  116. package/coverage/lcov-report/cwv/index.html +5 -5
  117. package/coverage/lcov-report/generators/_collections/cli-runner.util.ts.html +1 -1
  118. package/coverage/lcov-report/generators/_collections/config-validator.util.ts.html +1 -1
  119. package/coverage/lcov-report/generators/_collections/field-emission.util.ts.html +87 -126
  120. package/coverage/lcov-report/generators/_collections/form-level-emission.util.ts.html +33 -39
  121. package/coverage/lcov-report/generators/_collections/index.html +29 -29
  122. package/coverage/lcov-report/generators/_collections/json-schema.util.ts.html +1 -1
  123. package/coverage/lcov-report/generators/_collections/preset-configs.const.ts.html +1 -1
  124. package/coverage/lcov-report/generators/_collections/spec-emission.util.ts.html +35 -35
  125. package/coverage/lcov-report/generators/_collections/test-case-filter.util.ts.html +66 -258
  126. package/coverage/lcov-report/generators/_collections/viewport-emission.util.ts.html +1 -1
  127. package/coverage/lcov-report/generators/form-suite.generator.ts.html +79 -97
  128. package/coverage/lcov-report/generators/index.html +18 -18
  129. package/coverage/lcov-report/generators/viewport-suite.generator.ts.html +3 -3
  130. package/coverage/lcov-report/index.html +45 -90
  131. package/coverage/lcov-report/runtime/_collections/assertion-helpers.util.ts.html +7 -16
  132. package/coverage/lcov-report/runtime/_collections/index.html +17 -17
  133. package/coverage/lcov-report/runtime/_collections/unique-generator.util.ts.html +3 -3
  134. package/coverage/lcov-report/runtime/_collections/wait-helpers.util.ts.html +5 -5
  135. package/coverage/lcov-report/runtime/_services/dialog-page-object.ts.html +2 -2
  136. package/coverage/lcov-report/runtime/_services/field-page-object.ts.html +2 -2
  137. package/coverage/lcov-report/runtime/_services/form-page-object.ts.html +2 -2
  138. package/coverage/lcov-report/runtime/_services/index.html +9 -9
  139. package/coverage/lcov-report/runtime/_services/loader-page-object.ts.html +2 -2
  140. package/coverage/lcov-report/runtime/_services/logger.service.ts.html +5 -5
  141. package/coverage/lcov-report/runtime/_services/login-flow-helper.base.ts.html +2 -2
  142. package/coverage/lcov-report/runtime/_services/nav-page-object.ts.html +2 -2
  143. package/coverage/lcov-report/runtime/_services/toast-page-object.ts.html +1 -1
  144. package/coverage/lcov-report/runtime/_services/wave-2b-page-objects.ts.html +6 -6
  145. package/coverage/lcov-report/runtime/index.html +1 -1
  146. package/coverage/lcov-report/runtime/index.ts.html +1 -1
  147. package/coverage/lcov.info +737 -3049
  148. package/coverage/runtime/_collections/assertion-helpers.util.ts.html +7 -16
  149. package/coverage/runtime/_collections/index.html +17 -17
  150. package/coverage/runtime/_collections/unique-generator.util.ts.html +3 -3
  151. package/coverage/runtime/_collections/wait-helpers.util.ts.html +5 -5
  152. package/coverage/runtime/_services/dialog-page-object.ts.html +2 -2
  153. package/coverage/runtime/_services/field-page-object.ts.html +2 -2
  154. package/coverage/runtime/_services/form-page-object.ts.html +2 -2
  155. package/coverage/runtime/_services/index.html +9 -9
  156. package/coverage/runtime/_services/loader-page-object.ts.html +2 -2
  157. package/coverage/runtime/_services/logger.service.ts.html +5 -5
  158. package/coverage/runtime/_services/login-flow-helper.base.ts.html +2 -2
  159. package/coverage/runtime/_services/nav-page-object.ts.html +2 -2
  160. package/coverage/runtime/_services/toast-page-object.ts.html +1 -1
  161. package/coverage/runtime/_services/wave-2b-page-objects.ts.html +6 -6
  162. package/coverage/runtime/index.html +1 -1
  163. package/coverage/runtime/index.ts.html +1 -1
  164. package/coverage/tmp/coverage-228636-1781075225757-0.json +1 -0
  165. package/coverage/tmp/coverage-228704-1781075227108-0.json +1 -0
  166. package/dogfood/generated/date-range-field-new.spec.ts +54 -0
  167. package/dogfood/generated/password-field-new.spec.ts +97 -0
  168. package/dogfood/generated/radio-select-field-new.spec.ts +69 -0
  169. package/dogfood/generated/slider-field-new.spec.ts +47 -0
  170. package/dogfood/generated/text-field-new.spec.ts +0 -0
  171. package/logs/cicd-job.json +3 -0
  172. package/logs/cicd-report.json +3 -0
  173. package/logs/cicd-status.json +3 -0
  174. package/package.json +4 -1
  175. package/.dynamo/logs/cicd-pipeline/status.json +0 -74
  176. package/coverage/lcov-report/vqa/_collections/utils/deterministic-finding.util.ts.html +0 -481
  177. package/coverage/lcov-report/vqa/_collections/utils/finding-id.util.ts.html +0 -214
  178. package/coverage/lcov-report/vqa/_collections/utils/finding-validator.util.ts.html +0 -463
  179. package/coverage/lcov-report/vqa/_collections/utils/index.html +0 -176
  180. package/coverage/lcov-report/vqa/_collections/utils/manifest-validator.util.ts.html +0 -652
  181. package/coverage/lcov-report/vqa/_collections/utils/risk-score.util.ts.html +0 -424
  182. package/coverage/lcov-report/vqa/_enums/dom-evidence-detector.enum.ts.html +0 -214
  183. package/coverage/lcov-report/vqa/_enums/finding-severity.enum.ts.html +0 -133
  184. package/coverage/lcov-report/vqa/_enums/finding-status.enum.ts.html +0 -151
  185. package/coverage/lcov-report/vqa/_enums/index.html +0 -161
  186. package/coverage/lcov-report/vqa/_enums/visual-state-type.enum.ts.html +0 -235
  187. package/coverage/lcov-report/vqa/generators/ai-agent-readme.template.ts.html +0 -643
  188. package/coverage/lcov-report/vqa/generators/bundle-summary.template.ts.html +0 -316
  189. package/coverage/lcov-report/vqa/generators/capture-spec.generator.ts.html +0 -835
  190. package/coverage/lcov-report/vqa/generators/comparison-bundle.generator.ts.html +0 -898
  191. package/coverage/lcov-report/vqa/generators/index.html +0 -176
  192. package/coverage/lcov-report/vqa/generators/review-bundle.generator.ts.html +0 -559
  193. package/coverage/tmp/coverage-19436-1783427587751-0.json +0 -1
  194. package/coverage/tmp/coverage-19441-1783427586112-0.json +0 -1
  195. package/coverage/vqa/_collections/utils/deterministic-finding.util.ts.html +0 -481
  196. package/coverage/vqa/_collections/utils/finding-id.util.ts.html +0 -214
  197. package/coverage/vqa/_collections/utils/finding-validator.util.ts.html +0 -463
  198. package/coverage/vqa/_collections/utils/index.html +0 -176
  199. package/coverage/vqa/_collections/utils/manifest-validator.util.ts.html +0 -652
  200. package/coverage/vqa/_collections/utils/risk-score.util.ts.html +0 -424
  201. package/coverage/vqa/_enums/dom-evidence-detector.enum.ts.html +0 -214
  202. package/coverage/vqa/_enums/finding-severity.enum.ts.html +0 -133
  203. package/coverage/vqa/_enums/finding-status.enum.ts.html +0 -151
  204. package/coverage/vqa/_enums/index.html +0 -161
  205. package/coverage/vqa/_enums/visual-state-type.enum.ts.html +0 -235
  206. package/coverage/vqa/generators/ai-agent-readme.template.ts.html +0 -643
  207. package/coverage/vqa/generators/bundle-summary.template.ts.html +0 -316
  208. package/coverage/vqa/generators/capture-spec.generator.ts.html +0 -835
  209. package/coverage/vqa/generators/comparison-bundle.generator.ts.html +0 -898
  210. package/coverage/vqa/generators/index.html +0 -176
  211. package/coverage/vqa/generators/review-bundle.generator.ts.html +0 -559
@@ -1,643 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for vqa/generators/ai-agent-readme.template.ts</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../prettify.css" />
9
- <link rel="stylesheet" href="../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../../index.html">All files</a> / <a href="index.html">vqa/generators</a> ai-agent-readme.template.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>186/186</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>5/5</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>1/1</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>186/186</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line high'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
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>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
253
- <span class="cline-any cline-yes">1x</span>
254
- <span class="cline-any cline-yes">1x</span>
255
- <span class="cline-any cline-yes">1x</span>
256
- <span class="cline-any cline-yes">1x</span>
257
- <span class="cline-any cline-yes">1x</span>
258
- <span class="cline-any cline-yes">1x</span>
259
- <span class="cline-any cline-yes">1x</span>
260
- <span class="cline-any cline-yes">1x</span>
261
- <span class="cline-any cline-yes">1x</span>
262
- <span class="cline-any cline-yes">1x</span>
263
- <span class="cline-any cline-yes">1x</span>
264
- <span class="cline-any cline-yes">1x</span>
265
- <span class="cline-any cline-yes">1x</span>
266
- <span class="cline-any cline-yes">1x</span>
267
- <span class="cline-any cline-yes">1x</span>
268
- <span class="cline-any cline-yes">19x</span>
269
- <span class="cline-any cline-yes">19x</span>
270
- <span class="cline-any cline-yes">19x</span>
271
- <span class="cline-any cline-yes">19x</span>
272
- <span class="cline-any cline-yes">19x</span>
273
- <span class="cline-any cline-yes">19x</span>
274
- <span class="cline-any cline-yes">19x</span>
275
- <span class="cline-any cline-yes">19x</span>
276
- <span class="cline-any cline-yes">19x</span>
277
- <span class="cline-any cline-yes">19x</span>
278
- <span class="cline-any cline-yes">19x</span>
279
- <span class="cline-any cline-yes">19x</span>
280
- <span class="cline-any cline-yes">19x</span>
281
- <span class="cline-any cline-yes">19x</span>
282
- <span class="cline-any cline-yes">19x</span>
283
- <span class="cline-any cline-yes">19x</span>
284
- <span class="cline-any cline-yes">19x</span>
285
- <span class="cline-any cline-yes">19x</span>
286
- <span class="cline-any cline-yes">19x</span>
287
- <span class="cline-any cline-yes">19x</span>
288
- <span class="cline-any cline-yes">19x</span>
289
- <span class="cline-any cline-yes">19x</span>
290
- <span class="cline-any cline-yes">19x</span>
291
- <span class="cline-any cline-yes">19x</span>
292
- <span class="cline-any cline-yes">19x</span>
293
- <span class="cline-any cline-yes">19x</span>
294
- <span class="cline-any cline-yes">19x</span>
295
- <span class="cline-any cline-yes">19x</span>
296
- <span class="cline-any cline-yes">19x</span>
297
- <span class="cline-any cline-yes">19x</span>
298
- <span class="cline-any cline-yes">19x</span>
299
- <span class="cline-any cline-yes">19x</span>
300
- <span class="cline-any cline-yes">19x</span>
301
- <span class="cline-any cline-yes">19x</span>
302
- <span class="cline-any cline-yes">1x</span>
303
- <span class="cline-any cline-yes">1x</span>
304
- <span class="cline-any cline-yes">1x</span>
305
- <span class="cline-any cline-yes">1x</span>
306
- <span class="cline-any cline-yes">1x</span>
307
- <span class="cline-any cline-yes">1x</span>
308
- <span class="cline-any cline-yes">1x</span>
309
- <span class="cline-any cline-yes">1x</span>
310
- <span class="cline-any cline-yes">1x</span>
311
- <span class="cline-any cline-yes">1x</span>
312
- <span class="cline-any cline-yes">19x</span>
313
- <span class="cline-any cline-yes">19x</span>
314
- <span class="cline-any cline-yes">19x</span>
315
- <span class="cline-any cline-yes">19x</span>
316
- <span class="cline-any cline-yes">19x</span>
317
- <span class="cline-any cline-yes">19x</span>
318
- <span class="cline-any cline-yes">19x</span>
319
- <span class="cline-any cline-yes">19x</span>
320
- <span class="cline-any cline-yes">19x</span>
321
- <span class="cline-any cline-yes">19x</span>
322
- <span class="cline-any cline-yes">19x</span>
323
- <span class="cline-any cline-yes">19x</span>
324
- <span class="cline-any cline-yes">19x</span>
325
- <span class="cline-any cline-yes">19x</span>
326
- <span class="cline-any cline-yes">19x</span>
327
- <span class="cline-any cline-yes">19x</span>
328
- <span class="cline-any cline-yes">19x</span>
329
- <span class="cline-any cline-yes">19x</span>
330
- <span class="cline-any cline-yes">19x</span>
331
- <span class="cline-any cline-yes">19x</span>
332
- <span class="cline-any cline-yes">19x</span>
333
- <span class="cline-any cline-yes">19x</span>
334
- <span class="cline-any cline-yes">19x</span>
335
- <span class="cline-any cline-yes">19x</span>
336
- <span class="cline-any cline-yes">19x</span>
337
- <span class="cline-any cline-yes">19x</span>
338
- <span class="cline-any cline-yes">19x</span>
339
- <span class="cline-any cline-yes">19x</span>
340
- <span class="cline-any cline-yes">19x</span>
341
- <span class="cline-any cline-yes">19x</span>
342
- <span class="cline-any cline-yes">19x</span>
343
- <span class="cline-any cline-yes">19x</span>
344
- <span class="cline-any cline-yes">19x</span>
345
- <span class="cline-any cline-yes">19x</span>
346
- <span class="cline-any cline-yes">19x</span>
347
- <span class="cline-any cline-yes">19x</span>
348
- <span class="cline-any cline-yes">19x</span>
349
- <span class="cline-any cline-yes">19x</span>
350
- <span class="cline-any cline-yes">19x</span>
351
- <span class="cline-any cline-yes">19x</span>
352
- <span class="cline-any cline-yes">19x</span>
353
- <span class="cline-any cline-yes">19x</span>
354
- <span class="cline-any cline-yes">19x</span>
355
- <span class="cline-any cline-yes">19x</span>
356
- <span class="cline-any cline-yes">19x</span>
357
- <span class="cline-any cline-yes">19x</span>
358
- <span class="cline-any cline-yes">19x</span>
359
- <span class="cline-any cline-yes">19x</span>
360
- <span class="cline-any cline-yes">19x</span>
361
- <span class="cline-any cline-yes">19x</span>
362
- <span class="cline-any cline-yes">19x</span>
363
- <span class="cline-any cline-yes">19x</span>
364
- <span class="cline-any cline-yes">19x</span>
365
- <span class="cline-any cline-yes">19x</span>
366
- <span class="cline-any cline-yes">19x</span>
367
- <span class="cline-any cline-yes">19x</span>
368
- <span class="cline-any cline-yes">19x</span>
369
- <span class="cline-any cline-yes">19x</span>
370
- <span class="cline-any cline-yes">19x</span>
371
- <span class="cline-any cline-yes">19x</span>
372
- <span class="cline-any cline-yes">19x</span>
373
- <span class="cline-any cline-yes">19x</span>
374
- <span class="cline-any cline-yes">19x</span>
375
- <span class="cline-any cline-yes">19x</span>
376
- <span class="cline-any cline-yes">19x</span>
377
- <span class="cline-any cline-yes">19x</span>
378
- <span class="cline-any cline-yes">19x</span>
379
- <span class="cline-any cline-yes">19x</span>
380
- <span class="cline-any cline-yes">19x</span>
381
- <span class="cline-any cline-yes">19x</span>
382
- <span class="cline-any cline-yes">19x</span>
383
- <span class="cline-any cline-yes">19x</span>
384
- <span class="cline-any cline-yes">19x</span>
385
- <span class="cline-any cline-yes">19x</span>
386
- <span class="cline-any cline-yes">19x</span>
387
- <span class="cline-any cline-yes">19x</span>
388
- <span class="cline-any cline-yes">19x</span>
389
- <span class="cline-any cline-yes">19x</span>
390
- <span class="cline-any cline-yes">19x</span>
391
- <span class="cline-any cline-yes">19x</span>
392
- <span class="cline-any cline-yes">19x</span>
393
- <span class="cline-any cline-yes">19x</span>
394
- <span class="cline-any cline-yes">19x</span>
395
- <span class="cline-any cline-yes">19x</span>
396
- <span class="cline-any cline-yes">19x</span>
397
- <span class="cline-any cline-yes">19x</span>
398
- <span class="cline-any cline-yes">19x</span>
399
- <span class="cline-any cline-yes">19x</span>
400
- <span class="cline-any cline-yes">19x</span>
401
- <span class="cline-any cline-yes">19x</span>
402
- <span class="cline-any cline-yes">19x</span>
403
- <span class="cline-any cline-yes">19x</span>
404
- <span class="cline-any cline-yes">19x</span>
405
- <span class="cline-any cline-yes">19x</span>
406
- <span class="cline-any cline-yes">19x</span>
407
- <span class="cline-any cline-yes">19x</span>
408
- <span class="cline-any cline-yes">19x</span>
409
- <span class="cline-any cline-yes">19x</span>
410
- <span class="cline-any cline-yes">19x</span>
411
- <span class="cline-any cline-yes">19x</span>
412
- <span class="cline-any cline-yes">19x</span>
413
- <span class="cline-any cline-yes">19x</span>
414
- <span class="cline-any cline-yes">19x</span>
415
- <span class="cline-any cline-yes">19x</span>
416
- <span class="cline-any cline-yes">19x</span>
417
- <span class="cline-any cline-yes">19x</span>
418
- <span class="cline-any cline-yes">19x</span>
419
- <span class="cline-any cline-yes">19x</span>
420
- <span class="cline-any cline-yes">19x</span>
421
- <span class="cline-any cline-yes">19x</span>
422
- <span class="cline-any cline-yes">19x</span>
423
- <span class="cline-any cline-yes">19x</span>
424
- <span class="cline-any cline-yes">19x</span>
425
- <span class="cline-any cline-yes">19x</span>
426
- <span class="cline-any cline-yes">19x</span>
427
- <span class="cline-any cline-yes">19x</span>
428
- <span class="cline-any cline-yes">19x</span>
429
- <span class="cline-any cline-yes">19x</span>
430
- <span class="cline-any cline-yes">19x</span>
431
- <span class="cline-any cline-yes">19x</span>
432
- <span class="cline-any cline-yes">19x</span>
433
- <span class="cline-any cline-yes">19x</span>
434
- <span class="cline-any cline-yes">19x</span>
435
- <span class="cline-any cline-yes">19x</span>
436
- <span class="cline-any cline-yes">19x</span>
437
- <span class="cline-any cline-yes">1x</span>
438
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { DyE2E_VQA_FeatureManifest_Interface } from '../_models/interfaces/feature-manifest.interface';
439
- import { DyE2E_VQA_FindingSeverity_Type } from '../_enums/finding-severity.enum';
440
- import { DyE2E_VQA_FindingStatus_Type } from '../_enums/finding-status.enum';
441
- &nbsp;
442
- /**
443
- * `DyE2E_VQA_AIAgentReadme_Template` — generálja a `review-bundles/&lt;id&gt;/&lt;run&gt;/README.md`-t,
444
- * ami az AI-agent (Claude Code vagy más LLM) számára a review-instrukció + a finding-/
445
- * backlog-entry-schema. **Spec §10 14 audit-kérdés + §11 13 feedback-típus + §12 finding +
446
- * §13 report-szempontok beágyazva.**
447
- *
448
- * **scope-LOCK**: a bedrock-tooling-tól ez az utolsó artifact — az AI agent EXTERNAL,
449
- * itt találja meg a review-rubric-ot, a schema-t, és az elvárt finding-formátumot.
450
- */
451
- export class DyE2E_VQA_AIAgentReadme_Template {
452
- &nbsp;
453
- static render(
454
- manifest: DyE2E_VQA_FeatureManifest_Interface,
455
- runId: string,
456
- bundleStats: {
457
- stateCount: number;
458
- viewportCount: number;
459
- screenshotCount: number;
460
- hasComparison: boolean;
461
- },
462
- ): string {
463
- return `# AI-agent review-instrukció — \`${manifest.featureName}\` (\`${manifest.featureId}\`)
464
- &nbsp;
465
- &gt; **Run-ID:** \`${runId}\`
466
- &gt; **Generator:** \`@futdevpro/dynamo-e2e\` — \`DyE2E_VQA_ReviewBundle_Generator\`
467
- &gt; **Bundle-stats:** ${bundleStats.stateCount} állapot × ${bundleStats.viewportCount} viewport
468
- &gt; = ${bundleStats.screenshotCount} screenshot; comparison: ${bundleStats.hasComparison ? '✓ van' : '✗ nincs'}
469
- &nbsp;
470
- ---
471
- &nbsp;
472
- ## Mit kell tenned (AI agent)
473
- &nbsp;
474
- 1. **Olvasd át a manifest-et** (\`manifest.json\`) — feature-cél, állapotok, viewportok, critical-element-ek.
475
- 2. **Tekintsd át a \`summary.md\`-t** — feature-state-viewport tábla a bundle szerkezetével.
476
- 3. **Per (állapot × viewport)** menj végig:
477
- - \`screenshots/&lt;stateId&gt;/&lt;viewport&gt;-full.png\` — full-page kép
478
- - \`screenshots/&lt;stateId&gt;/&lt;viewport&gt;-fold.png\` — above-fold (viewport-only)
479
- - \`crops/&lt;stateId&gt;/&lt;viewport&gt;/&lt;region&gt;.png\` — region-crop-ok (modal, primary-cta, form, error)
480
- - \`dom-snapshots/&lt;stateId&gt;/&lt;viewport&gt;.json\` — DOM-metrikák
481
- - \`evidence/&lt;stateId&gt;/&lt;viewport&gt;.json\` — 16 DOM-detektor strukturált bizonyíték
482
- - \`a11y/&lt;stateId&gt;/&lt;viewport&gt;.json\` — axe-core a11y scan
483
- 4. **QA-rubric szerint** értékeld a 14 audit-kérdést (lásd lent).
484
- 5. **Finding-eket írj** a \`findings.md\`-be a megadott schema szerint (lásd lent).
485
- 6. **Ne dönts pixelpontosan** — emberi QA-szemlélettel ítélj.
486
- &nbsp;
487
- ${bundleStats.hasComparison ? `
488
- &nbsp;
489
- ## Re-audit eset
490
- &nbsp;
491
- A \`comparison/\` mappa tartalmazza a before/after diff-eket. Olvasd a \`comparison/README.md\`-t,
492
- és minden \`finding-refs.json\`-ban felsorolt finding-re dönts:
493
- - **verified** — a probléma megszűnt
494
- - **reopened** — a probléma visszatért
495
- - **partial** — részlegesen javult (státusz: \`in-progress\`)
496
- &nbsp;
497
- Új problémát talál a re-audit során? Új finding-et írj (\`findingId\` = következő szabad).
498
- ` : ''}
499
- &nbsp;
500
- ---
501
- &nbsp;
502
- ## QA rubric — 14 audit-kérdés (spec §10)
503
- &nbsp;
504
- Minden (állapot × viewport) párra add választ:
505
- &nbsp;
506
- 1. **A felület használható ebben az állapotban?**
507
- 2. **Látható és érthető a fő művelet?**
508
- 3. **Egyértelmű, hogy a user mit tud most csinálni?**
509
- 4. **Hiba esetén világos, mi történt?**
510
- 5. **Hiba esetén világos, hogyan lehet javítani?**
511
- 6. **Nincs-e dupla vagy zavaró scroll?** (lásd \`nested-scroll\`, \`scrollbar-count\` evidence)
512
- 7. **Nincs-e levágott tartalom?** (lásd \`overflow-clipping\`, \`truncated-text\` evidence)
513
- 8. **Nincs-e takart gomb vagy input?** (lásd \`occluded-target\`, \`sticky-occludes\` evidence)
514
- 9. **Olvasható-e a szöveg?** (lásd \`unreadable-error\` evidence)
515
- 10. **Megfelelő-e a vizuális hierarchia?**
516
- 11. **Nem esett-e szét a layout?** (lásd \`form-field-break\` evidence)
517
- 12. **A modal vagy popup kezelhető-e kis képernyőn?** (lásd \`modal-viewport-fit\` evidence)
518
- 13. **A feedback elég konkrét-e?**
519
- 14. **A sikeres állapot tényleg sikeresnek érződik-e?** / **Az üres állapot ad-e következő lépést?**
520
- &nbsp;
521
- ---
522
- &nbsp;
523
- ## Feedback-típusok (spec §11)
524
- &nbsp;
525
- Nézz arra, hogy az állapot megfelelő visszajelzést ad-e:
526
- &nbsp;
527
- \`loading\` · \`fieldValidation\` · \`formValidation\` · \`backendError\` · \`networkError\` ·
528
- \`permissionError\` · \`emptyState\` · \`successState\` · \`warning\` · \`confirmation\` ·
529
- \`retryOption\` · \`destructiveConfirm\` · \`partialSuccess\`
530
- &nbsp;
531
- Akkor jelez problémát az audit, ha a user **nem tudná megérteni**: mi történt, mi a következő lépés,
532
- vagy mit kell javítania.
533
- &nbsp;
534
- ---
535
- &nbsp;
536
- ## DOM-evidence detektorok (spec §9)
537
- &nbsp;
538
- Az \`evidence/&lt;stateId&gt;/&lt;viewport&gt;.json\`-ban 16 detektor strukturált eredménye van. **A
539
- \`severityHint\` AJÁNLÁS — Te döntesz.** A \`suggestedRegions\` mutatja a fókusz-zónákat.
540
- &nbsp;
541
- | Detektor | Mit nézz |
542
- |---|---|
543
- | \`nested-scroll\` | body + modal egyidejű scroll? |
544
- | \`overflow-clipping\` | clip-path levágott tartalom? |
545
- | \`viewport-off-cta\` | primary CTA fold alatt? |
546
- | \`occluded-target\` | kattintható elem takarásban? |
547
- | \`sticky-occludes\` | sticky/fixed elem takar? |
548
- | \`small-touch-target\` | &lt; 44×44 px touch target? |
549
- | \`truncated-text\` | ellipsis-elment szöveg? |
550
- | \`table-overflow\` | táblázat túl széles? |
551
- | \`modal-viewport-fit\` | modal &gt; viewport? |
552
- | \`scrollbar-count\` | &gt; 1 scrollbar? |
553
- | \`focus-loss\` | fókusz body-ra esett? |
554
- | \`hidden-error\` | aria-invalid + nincs látható error? |
555
- | \`unreadable-error\` | error &lt; 12px / kontraszt? |
556
- | \`ambiguous-interactive\` | onclick cursor:pointer NÉLKÜL? |
557
- | \`form-field-break\` | input kilóg a formból? |
558
- | \`vertical-space-shortage\` | landscape + CTA tight? |
559
- &nbsp;
560
- ---
561
- &nbsp;
562
- ## Severity (spec §12)
563
- &nbsp;
564
- | Szint | Mikor |
565
- |---|---|
566
- | \`${DyE2E_VQA_FindingSeverity_Type.blocker}\` | A user NEM tudja befejezni a flow-t. |
567
- | \`${DyE2E_VQA_FindingSeverity_Type.high}\` | Fő CTA takarásban, modal használhatatlan, hibaüzenet nem látható. |
568
- | \`${DyE2E_VQA_FindingSeverity_Type.medium}\` | Layout zavaró, de a flow használható. |
569
- | \`${DyE2E_VQA_FindingSeverity_Type.low}\` | Kisebb vizuális inkonzisztencia. |
570
- | \`${DyE2E_VQA_FindingSeverity_Type.informational}\` | Fejlesztési javaslat / UX-észrevétel. |
571
- &nbsp;
572
- ---
573
- &nbsp;
574
- ## Finding írás — schema
575
- &nbsp;
576
- A finding-eket írd a \`findings.md\` (markdown) ÉS \`findings.json\` (validálható) fájlokba.
577
- **Validátor:** \`DyE2E_VQA_FindingValidator_Util\` ellenőrzi. Schema:
578
- &nbsp;
579
- \`\`\`jsonc
580
- {
581
- "findingId": "VQA-&lt;projekt-slug&gt;-${manifest.featureId}-NNN", // 001-tól, padding 3
582
- "featureId": "${manifest.featureId}",
583
- "stateId": "&lt;manifest-state-id&gt;",
584
- "viewport": "&lt;manifest-viewport-key&gt;",
585
- "orientation": "portrait" | "landscape", // opcionális
586
- "screenshotRef": "screenshots/&lt;stateId&gt;/&lt;viewport&gt;-full.png", // bundle-relative
587
- "domSnapshotRef": "dom-snapshots/&lt;stateId&gt;/&lt;viewport&gt;.json", // opcionális
588
- "additionalEvidenceRefs": [], // opcionális extra-utak
589
- "description": "&lt;észlelt probléma — Te írod&gt;",
590
- "expectedBehavior": "&lt;mit várnánk helyette — Te írod&gt;",
591
- "severity": "${DyE2E_VQA_FindingSeverity_Type.blocker}" | "high" | "medium" | "low" | "informational",
592
- "status": "${DyE2E_VQA_FindingStatus_Type.open}", // új finding kezdő-státusza
593
- "reproSteps": ["&lt;step1&gt;", "&lt;step2&gt;", ...], // legalább 1
594
- "suggestedFix": "&lt;opcionális javaslat&gt;",
595
- "aiConfidence": 0.0..1.0,
596
- "detectorEvidenceRefs": ["nested-scroll"], // opcionális detektor-link
597
- "createdInRunId": "${runId}",
598
- "createdAt": "&lt;ISO-8601 timestamp&gt;",
599
- "acceptanceCriteria": ["&lt;criterion1&gt;", ...], // opcionális
600
- "reAuditInstruction": "&lt;mit nézz re-audit-kor&gt;" // opcionális, blocker/high esetén kötelező
601
- }
602
- \`\`\`
603
- &nbsp;
604
- **Sorszámozás:** ha a bundle-en kívül van projekt-szintű BACKLOG.md, ott találod a meglévő ID-ket;
605
- különben \`001\`-től indulj.
606
- &nbsp;
607
- ---
608
- &nbsp;
609
- ## Nem célok (spec §20)
610
- &nbsp;
611
- - ❌ Pixelpontos design approval
612
- - ❌ Minden lehetséges állapotkombináció kimerítő futtatása
613
- - ❌ Általános ízlésalapú designkritika
614
- - ❌ Funkcionális üzleti logika teljes helyettesítése
615
- &nbsp;
616
- A cél **gyakorlati vizuális QA**: olyan problémák, amiket emberi tesztelő észrevenne.
617
- &nbsp;
618
- ---
619
- &nbsp;
620
- *Bundle generated by \`@futdevpro/dynamo-e2e/vqa\` \`DyE2E_VQA_ReviewBundle_Generator\`.*
621
- `;
622
- }
623
- }
624
- &nbsp;</pre></td></tr></table></pre>
625
-
626
- <div class='push'></div><!-- for sticky footer -->
627
- </div><!-- /wrapper -->
628
- <div class='footer quiet pad2 space-top1 center small'>
629
- Code coverage generated by
630
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
631
- at 2026-07-07T12:33:08.290Z
632
- </div>
633
- <script src="../../prettify.js"></script>
634
- <script>
635
- window.onload = function () {
636
- prettyPrint();
637
- };
638
- </script>
639
- <script src="../../sorter.js"></script>
640
- <script src="../../block-navigation.js"></script>
641
- </body>
642
- </html>
643
-