@futdevpro/dynamo-e2e 1.6.0 → 1.8.0

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 (137) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +2 -2
  3. package/build/_modules/contracts/_collections/test-case-sets/field-type-registry.const.d.ts.map +1 -1
  4. package/build/_modules/contracts/_collections/test-case-sets/field-type-registry.const.js +7 -0
  5. package/build/_modules/contracts/_collections/test-case-sets/field-type-registry.const.js.map +1 -1
  6. package/build/_modules/cwv/_collections/inp-interaction-script.const.d.ts +32 -0
  7. package/build/_modules/cwv/_collections/inp-interaction-script.const.d.ts.map +1 -0
  8. package/build/_modules/cwv/_collections/inp-interaction-script.const.js +59 -0
  9. package/build/_modules/cwv/_collections/inp-interaction-script.const.js.map +1 -0
  10. package/build/_modules/cwv/index.d.ts +1 -0
  11. package/build/_modules/cwv/index.d.ts.map +1 -1
  12. package/build/_modules/cwv/index.js +1 -0
  13. package/build/_modules/cwv/index.js.map +1 -1
  14. package/build/_modules/cwv/inp-script.spec.d.ts +2 -0
  15. package/build/_modules/cwv/inp-script.spec.d.ts.map +1 -0
  16. package/build/_modules/cwv/inp-script.spec.js +35 -0
  17. package/build/_modules/cwv/inp-script.spec.js.map +1 -0
  18. package/build/_modules/generators/_collections/field-emission.util.d.ts.map +1 -1
  19. package/build/_modules/generators/_collections/field-emission.util.js +37 -0
  20. package/build/_modules/generators/_collections/field-emission.util.js.map +1 -1
  21. package/build/_modules/generators/form-suite.generator.spec.js +1 -1
  22. package/build/_modules/generators/form-suite.generator.spec.js.map +1 -1
  23. package/build/_modules/generators/wave-2b-emission.spec.d.ts +2 -0
  24. package/build/_modules/generators/wave-2b-emission.spec.d.ts.map +1 -0
  25. package/build/_modules/generators/wave-2b-emission.spec.js +115 -0
  26. package/build/_modules/generators/wave-2b-emission.spec.js.map +1 -0
  27. package/build/_modules/runtime/_services/wave-2b-page-objects.d.ts +51 -0
  28. package/build/_modules/runtime/_services/wave-2b-page-objects.d.ts.map +1 -0
  29. package/build/_modules/runtime/_services/wave-2b-page-objects.js +106 -0
  30. package/build/_modules/runtime/_services/wave-2b-page-objects.js.map +1 -0
  31. package/build/_modules/runtime/index.d.ts +1 -0
  32. package/build/_modules/runtime/index.d.ts.map +1 -1
  33. package/build/_modules/runtime/index.js +1 -0
  34. package/build/_modules/runtime/index.js.map +1 -1
  35. package/build/_modules/runtime/wave-2b-page-objects.spec.d.ts +2 -0
  36. package/build/_modules/runtime/wave-2b-page-objects.spec.d.ts.map +1 -0
  37. package/build/_modules/runtime/wave-2b-page-objects.spec.js +130 -0
  38. package/build/_modules/runtime/wave-2b-page-objects.spec.js.map +1 -0
  39. package/coverage/contracts/_collections/index.html +1 -1
  40. package/coverage/contracts/_collections/index.ts.html +1 -1
  41. package/coverage/contracts/_collections/utils/index.html +1 -1
  42. package/coverage/contracts/_collections/utils/test-id.util.ts.html +10 -10
  43. package/coverage/contracts/_enums/cwv-metric-type.enum.ts.html +1 -1
  44. package/coverage/contracts/_enums/field-test-case-type.enum.ts.html +1 -1
  45. package/coverage/contracts/_enums/index.html +1 -1
  46. package/coverage/contracts/_enums/index.ts.html +1 -1
  47. package/coverage/contracts/_enums/standard-viewport.enum.ts.html +1 -1
  48. package/coverage/contracts/_enums/test-expectation-type.enum.ts.html +1 -1
  49. package/coverage/contracts/_enums/test-run-mode-type.enum.ts.html +1 -1
  50. package/coverage/contracts/index.html +1 -1
  51. package/coverage/contracts/index.ts.html +1 -1
  52. package/coverage/cwv/_collections/cwv-aggregator.util.ts.html +1 -1
  53. package/coverage/cwv/_collections/cwv-emission.util.ts.html +1 -1
  54. package/coverage/cwv/_collections/index.html +20 -5
  55. package/coverage/cwv/_collections/inp-interaction-script.const.ts.html +304 -0
  56. package/coverage/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
  57. package/coverage/cwv/cwv-suite.generator.ts.html +1 -1
  58. package/coverage/cwv/index.html +1 -1
  59. package/coverage/generators/_collections/cli-runner.util.ts.html +1 -1
  60. package/coverage/generators/_collections/field-emission.util.ts.html +183 -57
  61. package/coverage/generators/_collections/form-level-emission.util.ts.html +27 -27
  62. package/coverage/generators/_collections/index.html +11 -11
  63. package/coverage/generators/_collections/spec-emission.util.ts.html +35 -35
  64. package/coverage/generators/_collections/test-case-filter.util.ts.html +39 -39
  65. package/coverage/generators/_collections/viewport-emission.util.ts.html +1 -1
  66. package/coverage/generators/form-suite.generator.ts.html +72 -72
  67. package/coverage/generators/index.html +1 -1
  68. package/coverage/generators/viewport-suite.generator.ts.html +1 -1
  69. package/coverage/index.html +32 -32
  70. package/coverage/lcov-report/contracts/_collections/index.html +1 -1
  71. package/coverage/lcov-report/contracts/_collections/index.ts.html +1 -1
  72. package/coverage/lcov-report/contracts/_collections/utils/index.html +1 -1
  73. package/coverage/lcov-report/contracts/_collections/utils/test-id.util.ts.html +10 -10
  74. package/coverage/lcov-report/contracts/_enums/cwv-metric-type.enum.ts.html +1 -1
  75. package/coverage/lcov-report/contracts/_enums/field-test-case-type.enum.ts.html +1 -1
  76. package/coverage/lcov-report/contracts/_enums/index.html +1 -1
  77. package/coverage/lcov-report/contracts/_enums/index.ts.html +1 -1
  78. package/coverage/lcov-report/contracts/_enums/standard-viewport.enum.ts.html +1 -1
  79. package/coverage/lcov-report/contracts/_enums/test-expectation-type.enum.ts.html +1 -1
  80. package/coverage/lcov-report/contracts/_enums/test-run-mode-type.enum.ts.html +1 -1
  81. package/coverage/lcov-report/contracts/index.html +1 -1
  82. package/coverage/lcov-report/contracts/index.ts.html +1 -1
  83. package/coverage/lcov-report/cwv/_collections/cwv-aggregator.util.ts.html +1 -1
  84. package/coverage/lcov-report/cwv/_collections/cwv-emission.util.ts.html +1 -1
  85. package/coverage/lcov-report/cwv/_collections/index.html +20 -5
  86. package/coverage/lcov-report/cwv/_collections/inp-interaction-script.const.ts.html +304 -0
  87. package/coverage/lcov-report/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
  88. package/coverage/lcov-report/cwv/cwv-suite.generator.ts.html +1 -1
  89. package/coverage/lcov-report/cwv/index.html +1 -1
  90. package/coverage/lcov-report/generators/_collections/cli-runner.util.ts.html +1 -1
  91. package/coverage/lcov-report/generators/_collections/field-emission.util.ts.html +183 -57
  92. package/coverage/lcov-report/generators/_collections/form-level-emission.util.ts.html +27 -27
  93. package/coverage/lcov-report/generators/_collections/index.html +11 -11
  94. package/coverage/lcov-report/generators/_collections/spec-emission.util.ts.html +35 -35
  95. package/coverage/lcov-report/generators/_collections/test-case-filter.util.ts.html +39 -39
  96. package/coverage/lcov-report/generators/_collections/viewport-emission.util.ts.html +1 -1
  97. package/coverage/lcov-report/generators/form-suite.generator.ts.html +72 -72
  98. package/coverage/lcov-report/generators/index.html +1 -1
  99. package/coverage/lcov-report/generators/viewport-suite.generator.ts.html +1 -1
  100. package/coverage/lcov-report/index.html +32 -32
  101. package/coverage/lcov-report/runtime/_collections/assertion-helpers.util.ts.html +1 -1
  102. package/coverage/lcov-report/runtime/_collections/index.html +1 -1
  103. package/coverage/lcov-report/runtime/_collections/unique-generator.util.ts.html +1 -1
  104. package/coverage/lcov-report/runtime/_collections/wait-helpers.util.ts.html +5 -5
  105. package/coverage/lcov-report/runtime/_services/dialog-page-object.ts.html +1 -1
  106. package/coverage/lcov-report/runtime/_services/field-page-object.ts.html +1 -1
  107. package/coverage/lcov-report/runtime/_services/form-page-object.ts.html +1 -1
  108. package/coverage/lcov-report/runtime/_services/index.html +24 -9
  109. package/coverage/lcov-report/runtime/_services/loader-page-object.ts.html +1 -1
  110. package/coverage/lcov-report/runtime/_services/logger.service.ts.html +1 -1
  111. package/coverage/lcov-report/runtime/_services/login-flow-helper.base.ts.html +1 -1
  112. package/coverage/lcov-report/runtime/_services/nav-page-object.ts.html +1 -1
  113. package/coverage/lcov-report/runtime/_services/toast-page-object.ts.html +1 -1
  114. package/coverage/lcov-report/runtime/_services/wave-2b-page-objects.ts.html +397 -0
  115. package/coverage/lcov-report/runtime/index.html +5 -5
  116. package/coverage/lcov-report/runtime/index.ts.html +7 -4
  117. package/coverage/lcov.info +665 -340
  118. package/coverage/runtime/_collections/assertion-helpers.util.ts.html +1 -1
  119. package/coverage/runtime/_collections/index.html +1 -1
  120. package/coverage/runtime/_collections/unique-generator.util.ts.html +1 -1
  121. package/coverage/runtime/_collections/wait-helpers.util.ts.html +5 -5
  122. package/coverage/runtime/_services/dialog-page-object.ts.html +1 -1
  123. package/coverage/runtime/_services/field-page-object.ts.html +1 -1
  124. package/coverage/runtime/_services/form-page-object.ts.html +1 -1
  125. package/coverage/runtime/_services/index.html +24 -9
  126. package/coverage/runtime/_services/loader-page-object.ts.html +1 -1
  127. package/coverage/runtime/_services/logger.service.ts.html +1 -1
  128. package/coverage/runtime/_services/login-flow-helper.base.ts.html +1 -1
  129. package/coverage/runtime/_services/nav-page-object.ts.html +1 -1
  130. package/coverage/runtime/_services/toast-page-object.ts.html +1 -1
  131. package/coverage/runtime/_services/wave-2b-page-objects.ts.html +397 -0
  132. package/coverage/runtime/index.html +5 -5
  133. package/coverage/runtime/index.ts.html +7 -4
  134. package/coverage/tmp/{coverage-215876-1781064798541-0.json → coverage-212504-1781069698881-0.json} +1 -1
  135. package/coverage/tmp/coverage-78800-1781069699908-0.json +1 -0
  136. package/package.json +1 -1
  137. package/coverage/tmp/coverage-223792-1781064800382-0.json +0 -1
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">99.42% </span>
26
+ <span class="strong">99.33% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>347/349</span>
28
+ <span class='fraction'>450/453</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">91.22% </span>
33
+ <span class="strong">89.02% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>52/57</span>
35
+ <span class='fraction'>73/82</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">95.83% </span>
40
+ <span class="strong">97.05% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>46/48</span>
42
+ <span class='fraction'>66/68</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">99.42% </span>
47
+ <span class="strong">99.33% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>347/349</span>
49
+ <span class='fraction'>450/453</span>
50
50
  </div>
51
51
 
52
52
 
@@ -198,6 +198,21 @@
198
198
  <td data-value="15" class="abs high">15/15</td>
199
199
  </tr>
200
200
 
201
+ <tr>
202
+ <td class="file high" data-value="wave-2b-page-objects.ts"><a href="wave-2b-page-objects.ts.html">wave-2b-page-objects.ts</a></td>
203
+ <td data-value="99.03" class="pic high">
204
+ <div class="chart"><div class="cover-fill" style="width: 99%"></div><div class="cover-empty" style="width: 1%"></div></div>
205
+ </td>
206
+ <td data-value="99.03" class="pct high">99.03%</td>
207
+ <td data-value="104" class="abs high">103/104</td>
208
+ <td data-value="84" class="pct high">84%</td>
209
+ <td data-value="25" class="abs high">21/25</td>
210
+ <td data-value="100" class="pct high">100%</td>
211
+ <td data-value="20" class="abs high">20/20</td>
212
+ <td data-value="99.03" class="pct high">99.03%</td>
213
+ <td data-value="104" class="abs high">103/104</td>
214
+ </tr>
215
+
201
216
  </tbody>
202
217
  </table>
203
218
  </div>
@@ -206,7 +221,7 @@
206
221
  <div class='footer quiet pad2 space-top1 center small'>
207
222
  Code coverage generated by
208
223
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
209
- at 2026-06-10T04:13:20.773Z
224
+ at 2026-06-10T05:35:00.225Z
210
225
  </div>
211
226
  <script src="../../prettify.js"></script>
212
227
  <script>
@@ -127,7 +127,7 @@ export class DyE2E_LoaderPageObject {
127
127
  <div class='footer quiet pad2 space-top1 center small'>
128
128
  Code coverage generated by
129
129
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
130
- at 2026-06-10T04:13:20.773Z
130
+ at 2026-06-10T05:35:00.225Z
131
131
  </div>
132
132
  <script src="../../prettify.js"></script>
133
133
  <script>
@@ -370,7 +370,7 @@ export class DyE2E_LoggerService {
370
370
  <div class='footer quiet pad2 space-top1 center small'>
371
371
  Code coverage generated by
372
372
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
373
- at 2026-06-10T04:13:20.773Z
373
+ at 2026-06-10T05:35:00.225Z
374
374
  </div>
375
375
  <script src="../../prettify.js"></script>
376
376
  <script>
@@ -316,7 +316,7 @@ export abstract class DyE2E_LoginFlowHelper_Base {
316
316
  <div class='footer quiet pad2 space-top1 center small'>
317
317
  Code coverage generated by
318
318
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
319
- at 2026-06-10T04:13:20.773Z
319
+ at 2026-06-10T05:35:00.225Z
320
320
  </div>
321
321
  <script src="../../prettify.js"></script>
322
322
  <script>
@@ -130,7 +130,7 @@ export class DyE2E_NavPageObject {
130
130
  <div class='footer quiet pad2 space-top1 center small'>
131
131
  Code coverage generated by
132
132
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
133
- at 2026-06-10T04:13:20.773Z
133
+ at 2026-06-10T05:35:00.225Z
134
134
  </div>
135
135
  <script src="../../prettify.js"></script>
136
136
  <script>
@@ -115,7 +115,7 @@ export class DyE2E_ToastPageObject {
115
115
  <div class='footer quiet pad2 space-top1 center small'>
116
116
  Code coverage generated by
117
117
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
118
- at 2026-06-10T04:13:20.773Z
118
+ at 2026-06-10T05:35:00.225Z
119
119
  </div>
120
120
  <script src="../../prettify.js"></script>
121
121
  <script>
@@ -0,0 +1,397 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for runtime/_services/wave-2b-page-objects.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">runtime/_services</a> wave-2b-page-objects.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">99.03% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>103/104</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">84% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>21/25</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'>20/20</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">99.03% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>103/104</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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
171
+ <span class="cline-any cline-yes">1x</span>
172
+ <span class="cline-any cline-yes">1x</span>
173
+ <span class="cline-any cline-yes">1x</span>
174
+ <span class="cline-any cline-yes">1x</span>
175
+ <span class="cline-any cline-yes">1x</span>
176
+ <span class="cline-any cline-yes">1x</span>
177
+ <span class="cline-any cline-yes">1x</span>
178
+ <span class="cline-any cline-yes">1x</span>
179
+ <span class="cline-any cline-yes">4x</span>
180
+ <span class="cline-any cline-yes">4x</span>
181
+ <span class="cline-any cline-yes">4x</span>
182
+ <span class="cline-any cline-yes">4x</span>
183
+ <span class="cline-any cline-yes">4x</span>
184
+ <span class="cline-any cline-yes">4x</span>
185
+ <span class="cline-any cline-yes">4x</span>
186
+ <span class="cline-any cline-yes">1x</span>
187
+ <span class="cline-any cline-yes">1x</span>
188
+ <span class="cline-any cline-yes">1x</span>
189
+ <span class="cline-any cline-yes">4x</span>
190
+ <span class="cline-any cline-yes">4x</span>
191
+ <span class="cline-any cline-yes">4x</span>
192
+ <span class="cline-any cline-yes">3x</span>
193
+ <span class="cline-any cline-yes">3x</span>
194
+ <span class="cline-any cline-yes">3x</span>
195
+ <span class="cline-any cline-yes">3x</span>
196
+ <span class="cline-any cline-yes">3x</span>
197
+ <span class="cline-any cline-yes">4x</span>
198
+ <span class="cline-any cline-yes">1x</span>
199
+ <span class="cline-any cline-yes">1x</span>
200
+ <span class="cline-any cline-yes">2x</span>
201
+ <span class="cline-any cline-yes">2x</span>
202
+ <span class="cline-any cline-yes">2x</span>
203
+ <span class="cline-any cline-yes">2x</span>
204
+ <span class="cline-any cline-yes">2x</span>
205
+ <span class="cline-any cline-yes">2x</span>
206
+ <span class="cline-any cline-yes">2x</span>
207
+ <span class="cline-any cline-yes">1x</span>
208
+ <span class="cline-any cline-yes">1x</span>
209
+ <span class="cline-any cline-yes">1x</span>
210
+ <span class="cline-any cline-yes">1x</span>
211
+ <span class="cline-any cline-yes">1x</span>
212
+ <span class="cline-any cline-no">&nbsp;</span>
213
+ <span class="cline-any cline-yes">1x</span>
214
+ <span class="cline-any cline-yes">1x</span>
215
+ <span class="cline-any cline-yes">2x</span>
216
+ <span class="cline-any cline-yes">2x</span>
217
+ <span class="cline-any cline-yes">2x</span>
218
+ <span class="cline-any cline-yes">1x</span>
219
+ <span class="cline-any cline-yes">1x</span>
220
+ <span class="cline-any cline-yes">1x</span>
221
+ <span class="cline-any cline-yes">2x</span>
222
+ <span class="cline-any cline-yes">1x</span>
223
+ <span class="cline-any cline-yes">1x</span>
224
+ <span class="cline-any cline-yes">2x</span>
225
+ <span class="cline-any cline-yes">2x</span>
226
+ <span class="cline-any cline-yes">2x</span>
227
+ <span class="cline-any cline-yes">2x</span>
228
+ <span class="cline-any cline-yes">2x</span>
229
+ <span class="cline-any cline-yes">2x</span>
230
+ <span class="cline-any cline-yes">2x</span>
231
+ <span class="cline-any cline-yes">1x</span>
232
+ <span class="cline-any cline-yes">1x</span>
233
+ <span class="cline-any cline-yes">2x</span>
234
+ <span class="cline-any cline-yes">2x</span>
235
+ <span class="cline-any cline-yes">1x</span>
236
+ <span class="cline-any cline-yes">1x</span>
237
+ <span class="cline-any cline-yes">2x</span>
238
+ <span class="cline-any cline-yes">1x</span>
239
+ <span class="cline-any cline-yes">1x</span>
240
+ <span class="cline-any cline-yes">3x</span>
241
+ <span class="cline-any cline-yes">3x</span>
242
+ <span class="cline-any cline-yes">3x</span>
243
+ <span class="cline-any cline-yes">3x</span>
244
+ <span class="cline-any cline-yes">3x</span>
245
+ <span class="cline-any cline-yes">3x</span>
246
+ <span class="cline-any cline-yes">3x</span>
247
+ <span class="cline-any cline-yes">2x</span>
248
+ <span class="cline-any cline-yes">2x</span>
249
+ <span class="cline-any cline-yes">3x</span>
250
+ <span class="cline-any cline-yes">3x</span>
251
+ <span class="cline-any cline-yes">3x</span>
252
+ <span class="cline-any cline-yes">1x</span>
253
+ <span class="cline-any cline-yes">1x</span>
254
+ <span class="cline-any cline-yes">3x</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">2x</span>
258
+ <span class="cline-any cline-yes">2x</span>
259
+ <span class="cline-any cline-yes">2x</span>
260
+ <span class="cline-any cline-yes">2x</span>
261
+ <span class="cline-any cline-yes">2x</span>
262
+ <span class="cline-any cline-yes">2x</span>
263
+ <span class="cline-any cline-yes">2x</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">2x</span>
268
+ <span class="cline-any cline-yes">2x</span>
269
+ <span class="cline-any cline-yes">2x</span>
270
+ <span class="cline-any cline-yes">1x</span>
271
+ <span class="cline-any cline-yes">1x</span>
272
+ <span class="cline-any cline-yes">1x</span>
273
+ <span class="cline-any cline-yes">2x</span>
274
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { Locator, Page } from '@playwright/test';
275
+ &nbsp;
276
+ /**
277
+ * Wave-2b page-objects — a generator emission-mintázatát ember-olvasható
278
+ * page-object API-vá emelik. Consumer-projekt használhatja direktül vagy
279
+ * a `dye2eTest` fixture-en át.
280
+ */
281
+ &nbsp;
282
+ export class DyE2E_ChipSelectPageObject {
283
+ constructor(
284
+ private readonly page: Page,
285
+ private readonly fieldTestId: string,
286
+ ) {}
287
+ &nbsp;
288
+ /** Egy chip click-re — option-value-szuffixel a testId-n. */
289
+ async clickChip(optionValue: string | number): Promise&lt;void&gt; {
290
+ const selector: string = `[data-testid="${this.fieldTestId}-${optionValue}"]`;
291
+ await this.page.locator(selector).first().click();
292
+ }
293
+ &nbsp;
294
+ /** Megnézi, hogy egy chip aktív-e (`.selected` vagy `[aria-selected="true"]`). */
295
+ async isSelected(optionValue: string | number): Promise&lt;boolean&gt; {
296
+ const locator: Locator = this.page.locator(`[data-testid="${this.fieldTestId}-${optionValue}"]`).first();
297
+ const cls: string = (await locator.getAttribute('class'))<span class="branch-0 cbranch-no" title="branch not covered" > ?? '';</span>
298
+ const aria: string = (await locator.getAttribute('aria-selected'))<span class="branch-0 cbranch-no" title="branch not covered" > ?? '';</span>
299
+ return cls.includes('selected') || aria === 'true';
300
+ }
301
+ }
302
+ &nbsp;
303
+ export class DyE2E_AutocompletePageObject {
304
+ constructor(
305
+ private readonly page: Page,
306
+ private readonly fieldTestId: string,
307
+ ) {}
308
+ &nbsp;
309
+ /** Input fill + suggestion-list várás. */
310
+ async fillAndSuggest(value: string, suggestionsTimeoutMs: number = 2_000): Promise&lt;void&gt; {
311
+ await this.page.getByTestId(this.fieldTestId).fill(value);
312
+ // A suggestion-list selector consumer-szintű override-igényes
313
+ // (default: a fieldTestId + '-suggestions'); Wave-3 page-object spec.
314
+ const suggestions: Locator = this.page.locator(`[data-testid="${this.fieldTestId}-suggestions"]`).first();
315
+ await suggestions.waitFor({ state: 'visible', timeout: suggestionsTimeoutMs }).catch((): void =&gt; {
316
+ <span class="cstat-no" title="statement not covered" > /* nincs suggestion-list — empty input vagy non-matching */</span>
317
+ });
318
+ }
319
+ &nbsp;
320
+ /** Egy suggestion click-re — index-szel. */
321
+ async selectSuggestion(index: number): Promise&lt;void&gt; {
322
+ const selector: string = `[data-testid="${this.fieldTestId}-suggestion-${index}"]`;
323
+ await this.page.locator(selector).first().click();
324
+ }
325
+ }
326
+ &nbsp;
327
+ export class DyE2E_ColorPickerPageObject {
328
+ constructor(
329
+ private readonly page: Page,
330
+ private readonly fieldTestId: string,
331
+ ) {}
332
+ &nbsp;
333
+ /** Hex-value fill (pl. '#ff00aa'). */
334
+ async setColor(hexValue: string): Promise&lt;void&gt; {
335
+ await this.page.getByTestId(this.fieldTestId).fill(hexValue);
336
+ }
337
+ &nbsp;
338
+ async getCurrentColor(): Promise&lt;string&gt; {
339
+ return (await this.page.getByTestId(this.fieldTestId).inputValue())<span class="branch-0 cbranch-no" title="branch not covered" > ?? '';</span>
340
+ }
341
+ }
342
+ &nbsp;
343
+ export class DyE2E_FilePageObject {
344
+ constructor(
345
+ private readonly page: Page,
346
+ private readonly fieldTestId: string,
347
+ ) {}
348
+ &nbsp;
349
+ /** Egy vagy több fájl upload Playwright `setInputFiles`-szel. */
350
+ async upload(filePaths: string | string[]): Promise&lt;void&gt; {
351
+ await this.page.getByTestId(this.fieldTestId).setInputFiles(filePaths);
352
+ }
353
+ &nbsp;
354
+ /** Egy file-input clear (üres fájl-array). */
355
+ async clear(): Promise&lt;void&gt; {
356
+ await this.page.getByTestId(this.fieldTestId).setInputFiles([]);
357
+ }
358
+ }
359
+ &nbsp;
360
+ export class DyE2E_RichTextPageObject {
361
+ constructor(
362
+ private readonly page: Page,
363
+ private readonly fieldTestId: string,
364
+ ) {}
365
+ &nbsp;
366
+ /** Contenteditable scope-on belüli fill (Wave-2 base). */
367
+ async fill(text: string): Promise&lt;void&gt; {
368
+ const editor: Locator = this.page.locator(`[data-testid="${this.fieldTestId}"] [contenteditable="true"]`).first();
369
+ await editor.fill(text);
370
+ }
371
+ &nbsp;
372
+ /** Pure-text content read. */
373
+ async textContent(): Promise&lt;string&gt; {
374
+ const editor: Locator = this.page.locator(`[data-testid="${this.fieldTestId}"] [contenteditable="true"]`).first();
375
+ return (await editor.textContent())<span class="branch-0 cbranch-no" title="branch not covered" > ?? '';</span>
376
+ }
377
+ }
378
+ &nbsp;</pre></td></tr></table></pre>
379
+
380
+ <div class='push'></div><!-- for sticky footer -->
381
+ </div><!-- /wrapper -->
382
+ <div class='footer quiet pad2 space-top1 center small'>
383
+ Code coverage generated by
384
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
385
+ at 2026-06-10T05:35:00.225Z
386
+ </div>
387
+ <script src="../../prettify.js"></script>
388
+ <script>
389
+ window.onload = function () {
390
+ prettyPrint();
391
+ };
392
+ </script>
393
+ <script src="../../sorter.js"></script>
394
+ <script src="../../block-navigation.js"></script>
395
+ </body>
396
+ </html>
397
+
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>30/30</span>
28
+ <span class='fraction'>31/31</span>
29
29
  </div>
30
30
 
31
31
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>30/30</span>
49
+ <span class='fraction'>31/31</span>
50
50
  </div>
51
51
 
52
52
 
@@ -84,13 +84,13 @@
84
84
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
85
85
  </td>
86
86
  <td data-value="100" class="pct high">100%</td>
87
- <td data-value="30" class="abs high">30/30</td>
87
+ <td data-value="31" class="abs high">31/31</td>
88
88
  <td data-value="100" class="pct high">100%</td>
89
89
  <td data-value="0" class="abs high">0/0</td>
90
90
  <td data-value="100" class="pct high">100%</td>
91
91
  <td data-value="0" class="abs high">0/0</td>
92
92
  <td data-value="100" class="pct high">100%</td>
93
- <td data-value="30" class="abs high">30/30</td>
93
+ <td data-value="31" class="abs high">31/31</td>
94
94
  </tr>
95
95
 
96
96
  </tbody>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2026-06-10T04:13:20.773Z
104
+ at 2026-06-10T05:35:00.225Z
105
105
  </div>
106
106
  <script src="../prettify.js"></script>
107
107
  <script>
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>30/30</span>
28
+ <span class='fraction'>31/31</span>
29
29
  </div>
30
30
 
31
31
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>30/30</span>
49
+ <span class='fraction'>31/31</span>
50
50
  </div>
51
51
 
52
52
 
@@ -93,7 +93,9 @@
93
93
  <a name='L28'></a><a href='#L28'>28</a>
94
94
  <a name='L29'></a><a href='#L29'>29</a>
95
95
  <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
98
+ <span class="cline-any cline-yes">1x</span>
97
99
  <span class="cline-any cline-yes">1x</span>
98
100
  <span class="cline-any cline-yes">1x</span>
99
101
  <span class="cline-any cline-yes">1x</span>
@@ -150,6 +152,7 @@ export * from './_services/logger.service';
150
152
  export * from './_services/login-flow-helper.base';
151
153
  export * from './_services/nav-page-object';
152
154
  export * from './_services/toast-page-object';
155
+ export * from './_services/wave-2b-page-objects';
153
156
  export * from './fixtures';
154
157
  &nbsp;
155
158
  export const DYE2E_RUNTIME_VERSION: string = 'wave-5-lifted';
@@ -160,7 +163,7 @@ export const DYE2E_RUNTIME_VERSION: string = 'wave-5-lifted';
160
163
  <div class='footer quiet pad2 space-top1 center small'>
161
164
  Code coverage generated by
162
165
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
163
- at 2026-06-10T04:13:20.773Z
166
+ at 2026-06-10T05:35:00.225Z
164
167
  </div>
165
168
  <script src="../prettify.js"></script>
166
169
  <script>