@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
@@ -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-15T12:20:07.032Z
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
-