@futdevpro/dynamo-e2e 1.8.0 → 1.10.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 (139) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/CONTRIBUTING.md +90 -0
  3. package/README.md +2 -2
  4. package/bin/dye2e.js +21 -0
  5. package/build/_modules/cwv/_collections/cwv-diagnose.util.d.ts +37 -0
  6. package/build/_modules/cwv/_collections/cwv-diagnose.util.d.ts.map +1 -0
  7. package/build/_modules/cwv/_collections/cwv-diagnose.util.js +108 -0
  8. package/build/_modules/cwv/_collections/cwv-diagnose.util.js.map +1 -0
  9. package/build/_modules/cwv/_collections/cwv-emission.util.d.ts.map +1 -1
  10. package/build/_modules/cwv/_collections/cwv-emission.util.js +6 -1
  11. package/build/_modules/cwv/_collections/cwv-emission.util.js.map +1 -1
  12. package/build/_modules/cwv/cwv-diagnose.spec.d.ts +2 -0
  13. package/build/_modules/cwv/cwv-diagnose.spec.d.ts.map +1 -0
  14. package/build/_modules/cwv/cwv-diagnose.spec.js +78 -0
  15. package/build/_modules/cwv/cwv-diagnose.spec.js.map +1 -0
  16. package/build/_modules/cwv/cwv-suite.generator.d.ts.map +1 -1
  17. package/build/_modules/cwv/cwv-suite.generator.js +9 -1
  18. package/build/_modules/cwv/cwv-suite.generator.js.map +1 -1
  19. package/build/_modules/cwv/index.d.ts +1 -0
  20. package/build/_modules/cwv/index.d.ts.map +1 -1
  21. package/build/_modules/cwv/index.js +1 -0
  22. package/build/_modules/cwv/index.js.map +1 -1
  23. package/build/_modules/cwv/inp-emit-integration.spec.d.ts +2 -0
  24. package/build/_modules/cwv/inp-emit-integration.spec.d.ts.map +1 -0
  25. package/build/_modules/cwv/inp-emit-integration.spec.js +43 -0
  26. package/build/_modules/cwv/inp-emit-integration.spec.js.map +1 -0
  27. package/build/_modules/generators/_collections/cli-runner.util.d.ts +23 -0
  28. package/build/_modules/generators/_collections/cli-runner.util.d.ts.map +1 -1
  29. package/build/_modules/generators/_collections/cli-runner.util.js +57 -0
  30. package/build/_modules/generators/_collections/cli-runner.util.js.map +1 -1
  31. package/build/_modules/generators/doctor.spec.d.ts +2 -0
  32. package/build/_modules/generators/doctor.spec.d.ts.map +1 -0
  33. package/build/_modules/generators/doctor.spec.js +68 -0
  34. package/build/_modules/generators/doctor.spec.js.map +1 -0
  35. package/build/_modules/runtime/fixtures.d.ts +12 -0
  36. package/build/_modules/runtime/fixtures.d.ts.map +1 -1
  37. package/build/_modules/runtime/fixtures.js +16 -0
  38. package/build/_modules/runtime/fixtures.js.map +1 -1
  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 +1 -1
  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-diagnose.util.ts.html +553 -0
  54. package/coverage/cwv/_collections/cwv-emission.util.ts.html +103 -88
  55. package/coverage/cwv/_collections/index.html +25 -10
  56. package/coverage/cwv/_collections/inp-interaction-script.const.ts.html +1 -1
  57. package/coverage/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
  58. package/coverage/cwv/cwv-suite.generator.ts.html +61 -34
  59. package/coverage/cwv/index.html +7 -7
  60. package/coverage/generators/_collections/cli-runner.util.ts.html +219 -21
  61. package/coverage/generators/_collections/field-emission.util.ts.html +1 -1
  62. package/coverage/generators/_collections/form-level-emission.util.ts.html +1 -1
  63. package/coverage/generators/_collections/index.html +13 -13
  64. package/coverage/generators/_collections/spec-emission.util.ts.html +33 -33
  65. package/coverage/generators/_collections/test-case-filter.util.ts.html +1 -1
  66. package/coverage/generators/_collections/viewport-emission.util.ts.html +1 -1
  67. package/coverage/generators/form-suite.generator.ts.html +1 -1
  68. package/coverage/generators/index.html +1 -1
  69. package/coverage/generators/viewport-suite.generator.ts.html +1 -1
  70. package/coverage/index.html +29 -29
  71. package/coverage/lcov-report/contracts/_collections/index.html +1 -1
  72. package/coverage/lcov-report/contracts/_collections/index.ts.html +1 -1
  73. package/coverage/lcov-report/contracts/_collections/utils/index.html +1 -1
  74. package/coverage/lcov-report/contracts/_collections/utils/test-id.util.ts.html +1 -1
  75. package/coverage/lcov-report/contracts/_enums/cwv-metric-type.enum.ts.html +1 -1
  76. package/coverage/lcov-report/contracts/_enums/field-test-case-type.enum.ts.html +1 -1
  77. package/coverage/lcov-report/contracts/_enums/index.html +1 -1
  78. package/coverage/lcov-report/contracts/_enums/index.ts.html +1 -1
  79. package/coverage/lcov-report/contracts/_enums/standard-viewport.enum.ts.html +1 -1
  80. package/coverage/lcov-report/contracts/_enums/test-expectation-type.enum.ts.html +1 -1
  81. package/coverage/lcov-report/contracts/_enums/test-run-mode-type.enum.ts.html +1 -1
  82. package/coverage/lcov-report/contracts/index.html +1 -1
  83. package/coverage/lcov-report/contracts/index.ts.html +1 -1
  84. package/coverage/lcov-report/cwv/_collections/cwv-aggregator.util.ts.html +1 -1
  85. package/coverage/lcov-report/cwv/_collections/cwv-diagnose.util.ts.html +553 -0
  86. package/coverage/lcov-report/cwv/_collections/cwv-emission.util.ts.html +103 -88
  87. package/coverage/lcov-report/cwv/_collections/index.html +25 -10
  88. package/coverage/lcov-report/cwv/_collections/inp-interaction-script.const.ts.html +1 -1
  89. package/coverage/lcov-report/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
  90. package/coverage/lcov-report/cwv/cwv-suite.generator.ts.html +61 -34
  91. package/coverage/lcov-report/cwv/index.html +7 -7
  92. package/coverage/lcov-report/generators/_collections/cli-runner.util.ts.html +219 -21
  93. package/coverage/lcov-report/generators/_collections/field-emission.util.ts.html +1 -1
  94. package/coverage/lcov-report/generators/_collections/form-level-emission.util.ts.html +1 -1
  95. package/coverage/lcov-report/generators/_collections/index.html +13 -13
  96. package/coverage/lcov-report/generators/_collections/spec-emission.util.ts.html +33 -33
  97. package/coverage/lcov-report/generators/_collections/test-case-filter.util.ts.html +1 -1
  98. package/coverage/lcov-report/generators/_collections/viewport-emission.util.ts.html +1 -1
  99. package/coverage/lcov-report/generators/form-suite.generator.ts.html +1 -1
  100. package/coverage/lcov-report/generators/index.html +1 -1
  101. package/coverage/lcov-report/generators/viewport-suite.generator.ts.html +1 -1
  102. package/coverage/lcov-report/index.html +29 -29
  103. package/coverage/lcov-report/runtime/_collections/assertion-helpers.util.ts.html +1 -1
  104. package/coverage/lcov-report/runtime/_collections/index.html +1 -1
  105. package/coverage/lcov-report/runtime/_collections/unique-generator.util.ts.html +1 -1
  106. package/coverage/lcov-report/runtime/_collections/wait-helpers.util.ts.html +1 -1
  107. package/coverage/lcov-report/runtime/_services/dialog-page-object.ts.html +1 -1
  108. package/coverage/lcov-report/runtime/_services/field-page-object.ts.html +1 -1
  109. package/coverage/lcov-report/runtime/_services/form-page-object.ts.html +1 -1
  110. package/coverage/lcov-report/runtime/_services/index.html +1 -1
  111. package/coverage/lcov-report/runtime/_services/loader-page-object.ts.html +1 -1
  112. package/coverage/lcov-report/runtime/_services/logger.service.ts.html +1 -1
  113. package/coverage/lcov-report/runtime/_services/login-flow-helper.base.ts.html +1 -1
  114. package/coverage/lcov-report/runtime/_services/nav-page-object.ts.html +1 -1
  115. package/coverage/lcov-report/runtime/_services/toast-page-object.ts.html +1 -1
  116. package/coverage/lcov-report/runtime/_services/wave-2b-page-objects.ts.html +1 -1
  117. package/coverage/lcov-report/runtime/index.html +1 -1
  118. package/coverage/lcov-report/runtime/index.ts.html +1 -1
  119. package/coverage/lcov.info +566 -239
  120. package/coverage/runtime/_collections/assertion-helpers.util.ts.html +1 -1
  121. package/coverage/runtime/_collections/index.html +1 -1
  122. package/coverage/runtime/_collections/unique-generator.util.ts.html +1 -1
  123. package/coverage/runtime/_collections/wait-helpers.util.ts.html +1 -1
  124. package/coverage/runtime/_services/dialog-page-object.ts.html +1 -1
  125. package/coverage/runtime/_services/field-page-object.ts.html +1 -1
  126. package/coverage/runtime/_services/form-page-object.ts.html +1 -1
  127. package/coverage/runtime/_services/index.html +1 -1
  128. package/coverage/runtime/_services/loader-page-object.ts.html +1 -1
  129. package/coverage/runtime/_services/logger.service.ts.html +1 -1
  130. package/coverage/runtime/_services/login-flow-helper.base.ts.html +1 -1
  131. package/coverage/runtime/_services/nav-page-object.ts.html +1 -1
  132. package/coverage/runtime/_services/toast-page-object.ts.html +1 -1
  133. package/coverage/runtime/_services/wave-2b-page-objects.ts.html +1 -1
  134. package/coverage/runtime/index.html +1 -1
  135. package/coverage/runtime/index.ts.html +1 -1
  136. package/coverage/tmp/{coverage-212504-1781069698881-0.json → coverage-224932-1781071393426-0.json} +1 -1
  137. package/coverage/tmp/coverage-226960-1781071394780-0.json +1 -0
  138. package/package.json +1 -1
  139. package/coverage/tmp/coverage-78800-1781069699908-0.json +0 -1
@@ -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'>103/103</span>
28
+ <span class='fraction'>108/108</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'>103/103</span>
49
+ <span class='fraction'>108/108</span>
50
50
  </div>
51
51
 
52
52
 
@@ -166,7 +166,12 @@
166
166
  <a name='L101'></a><a href='#L101'>101</a>
167
167
  <a name='L102'></a><a href='#L102'>102</a>
168
168
  <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
170
175
  <span class="cline-any cline-yes">1x</span>
171
176
  <span class="cline-any cline-yes">1x</span>
172
177
  <span class="cline-any cline-yes">1x</span>
@@ -185,89 +190,94 @@
185
190
  <span class="cline-any cline-yes">1x</span>
186
191
  <span class="cline-any cline-yes">1x</span>
187
192
  <span class="cline-any cline-yes">1x</span>
188
- <span class="cline-any cline-yes">7x</span>
189
- <span class="cline-any cline-yes">7x</span>
190
- <span class="cline-any cline-yes">7x</span>
191
- <span class="cline-any cline-yes">7x</span>
192
- <span class="cline-any cline-yes">7x</span>
193
- <span class="cline-any cline-yes">7x</span>
194
- <span class="cline-any cline-yes">7x</span>
195
- <span class="cline-any cline-yes">7x</span>
196
- <span class="cline-any cline-yes">7x</span>
197
- <span class="cline-any cline-yes">7x</span>
198
- <span class="cline-any cline-yes">7x</span>
199
- <span class="cline-any cline-yes">7x</span>
200
- <span class="cline-any cline-yes">7x</span>
201
- <span class="cline-any cline-yes">7x</span>
202
- <span class="cline-any cline-yes">7x</span>
203
- <span class="cline-any cline-yes">7x</span>
204
- <span class="cline-any cline-yes">7x</span>
205
- <span class="cline-any cline-yes">7x</span>
206
- <span class="cline-any cline-yes">7x</span>
207
- <span class="cline-any cline-yes">7x</span>
208
- <span class="cline-any cline-yes">7x</span>
209
- <span class="cline-any cline-yes">7x</span>
210
- <span class="cline-any cline-yes">7x</span>
211
- <span class="cline-any cline-yes">7x</span>
212
- <span class="cline-any cline-yes">7x</span>
213
- <span class="cline-any cline-yes">7x</span>
214
- <span class="cline-any cline-yes">7x</span>
215
- <span class="cline-any cline-yes">7x</span>
216
- <span class="cline-any cline-yes">7x</span>
217
- <span class="cline-any cline-yes">7x</span>
218
- <span class="cline-any cline-yes">7x</span>
219
- <span class="cline-any cline-yes">7x</span>
220
- <span class="cline-any cline-yes">7x</span>
221
- <span class="cline-any cline-yes">7x</span>
222
- <span class="cline-any cline-yes">7x</span>
223
- <span class="cline-any cline-yes">7x</span>
224
- <span class="cline-any cline-yes">7x</span>
225
- <span class="cline-any cline-yes">7x</span>
226
- <span class="cline-any cline-yes">7x</span>
227
- <span class="cline-any cline-yes">7x</span>
228
- <span class="cline-any cline-yes">7x</span>
229
- <span class="cline-any cline-yes">7x</span>
230
- <span class="cline-any cline-yes">7x</span>
231
- <span class="cline-any cline-yes">7x</span>
232
- <span class="cline-any cline-yes">7x</span>
233
- <span class="cline-any cline-yes">7x</span>
234
- <span class="cline-any cline-yes">7x</span>
235
- <span class="cline-any cline-yes">7x</span>
236
- <span class="cline-any cline-yes">7x</span>
237
- <span class="cline-any cline-yes">7x</span>
238
- <span class="cline-any cline-yes">7x</span>
239
- <span class="cline-any cline-yes">7x</span>
240
- <span class="cline-any cline-yes">7x</span>
241
- <span class="cline-any cline-yes">7x</span>
242
- <span class="cline-any cline-yes">7x</span>
243
- <span class="cline-any cline-yes">7x</span>
244
- <span class="cline-any cline-yes">7x</span>
245
- <span class="cline-any cline-yes">7x</span>
246
- <span class="cline-any cline-yes">7x</span>
247
- <span class="cline-any cline-yes">7x</span>
248
- <span class="cline-any cline-yes">7x</span>
249
- <span class="cline-any cline-yes">7x</span>
250
- <span class="cline-any cline-yes">7x</span>
251
- <span class="cline-any cline-yes">7x</span>
252
- <span class="cline-any cline-yes">7x</span>
253
- <span class="cline-any cline-yes">7x</span>
254
- <span class="cline-any cline-yes">7x</span>
255
- <span class="cline-any cline-yes">7x</span>
256
- <span class="cline-any cline-yes">7x</span>
257
- <span class="cline-any cline-yes">7x</span>
258
- <span class="cline-any cline-yes">7x</span>
259
- <span class="cline-any cline-yes">7x</span>
260
- <span class="cline-any cline-yes">7x</span>
261
- <span class="cline-any cline-yes">7x</span>
262
- <span class="cline-any cline-yes">7x</span>
263
- <span class="cline-any cline-yes">7x</span>
264
- <span class="cline-any cline-yes">7x</span>
265
- <span class="cline-any cline-yes">7x</span>
266
- <span class="cline-any cline-yes">7x</span>
267
- <span class="cline-any cline-yes">7x</span>
268
- <span class="cline-any cline-yes">7x</span>
269
- <span class="cline-any cline-yes">7x</span>
270
- <span class="cline-any cline-yes">7x</span>
193
+ <span class="cline-any cline-yes">12x</span>
194
+ <span class="cline-any cline-yes">12x</span>
195
+ <span class="cline-any cline-yes">12x</span>
196
+ <span class="cline-any cline-yes">12x</span>
197
+ <span class="cline-any cline-yes">12x</span>
198
+ <span class="cline-any cline-yes">12x</span>
199
+ <span class="cline-any cline-yes">12x</span>
200
+ <span class="cline-any cline-yes">12x</span>
201
+ <span class="cline-any cline-yes">12x</span>
202
+ <span class="cline-any cline-yes">12x</span>
203
+ <span class="cline-any cline-yes">12x</span>
204
+ <span class="cline-any cline-yes">12x</span>
205
+ <span class="cline-any cline-yes">12x</span>
206
+ <span class="cline-any cline-yes">12x</span>
207
+ <span class="cline-any cline-yes">12x</span>
208
+ <span class="cline-any cline-yes">12x</span>
209
+ <span class="cline-any cline-yes">12x</span>
210
+ <span class="cline-any cline-yes">12x</span>
211
+ <span class="cline-any cline-yes">12x</span>
212
+ <span class="cline-any cline-yes">12x</span>
213
+ <span class="cline-any cline-yes">12x</span>
214
+ <span class="cline-any cline-yes">12x</span>
215
+ <span class="cline-any cline-yes">12x</span>
216
+ <span class="cline-any cline-yes">12x</span>
217
+ <span class="cline-any cline-yes">12x</span>
218
+ <span class="cline-any cline-yes">12x</span>
219
+ <span class="cline-any cline-yes">12x</span>
220
+ <span class="cline-any cline-yes">12x</span>
221
+ <span class="cline-any cline-yes">12x</span>
222
+ <span class="cline-any cline-yes">12x</span>
223
+ <span class="cline-any cline-yes">12x</span>
224
+ <span class="cline-any cline-yes">12x</span>
225
+ <span class="cline-any cline-yes">12x</span>
226
+ <span class="cline-any cline-yes">12x</span>
227
+ <span class="cline-any cline-yes">12x</span>
228
+ <span class="cline-any cline-yes">12x</span>
229
+ <span class="cline-any cline-yes">12x</span>
230
+ <span class="cline-any cline-yes">12x</span>
231
+ <span class="cline-any cline-yes">12x</span>
232
+ <span class="cline-any cline-yes">12x</span>
233
+ <span class="cline-any cline-yes">12x</span>
234
+ <span class="cline-any cline-yes">12x</span>
235
+ <span class="cline-any cline-yes">12x</span>
236
+ <span class="cline-any cline-yes">12x</span>
237
+ <span class="cline-any cline-yes">12x</span>
238
+ <span class="cline-any cline-yes">12x</span>
239
+ <span class="cline-any cline-yes">12x</span>
240
+ <span class="cline-any cline-yes">12x</span>
241
+ <span class="cline-any cline-yes">12x</span>
242
+ <span class="cline-any cline-yes">12x</span>
243
+ <span class="cline-any cline-yes">12x</span>
244
+ <span class="cline-any cline-yes">12x</span>
245
+ <span class="cline-any cline-yes">12x</span>
246
+ <span class="cline-any cline-yes">12x</span>
247
+ <span class="cline-any cline-yes">12x</span>
248
+ <span class="cline-any cline-yes">12x</span>
249
+ <span class="cline-any cline-yes">12x</span>
250
+ <span class="cline-any cline-yes">12x</span>
251
+ <span class="cline-any cline-yes">12x</span>
252
+ <span class="cline-any cline-yes">12x</span>
253
+ <span class="cline-any cline-yes">12x</span>
254
+ <span class="cline-any cline-yes">12x</span>
255
+ <span class="cline-any cline-yes">12x</span>
256
+ <span class="cline-any cline-yes">12x</span>
257
+ <span class="cline-any cline-yes">12x</span>
258
+ <span class="cline-any cline-yes">12x</span>
259
+ <span class="cline-any cline-yes">12x</span>
260
+ <span class="cline-any cline-yes">12x</span>
261
+ <span class="cline-any cline-yes">12x</span>
262
+ <span class="cline-any cline-yes">12x</span>
263
+ <span class="cline-any cline-yes">12x</span>
264
+ <span class="cline-any cline-yes">12x</span>
265
+ <span class="cline-any cline-yes">12x</span>
266
+ <span class="cline-any cline-yes">12x</span>
267
+ <span class="cline-any cline-yes">12x</span>
268
+ <span class="cline-any cline-yes">12x</span>
269
+ <span class="cline-any cline-yes">12x</span>
270
+ <span class="cline-any cline-yes">12x</span>
271
+ <span class="cline-any cline-yes">12x</span>
272
+ <span class="cline-any cline-yes">12x</span>
273
+ <span class="cline-any cline-yes">12x</span>
274
+ <span class="cline-any cline-yes">12x</span>
275
+ <span class="cline-any cline-yes">12x</span>
276
+ <span class="cline-any cline-yes">12x</span>
277
+ <span class="cline-any cline-yes">12x</span>
278
+ <span class="cline-any cline-yes">12x</span>
279
+ <span class="cline-any cline-yes">12x</span>
280
+ <span class="cline-any cline-yes">12x</span>
271
281
  <span class="cline-any cline-yes">1x</span>
272
282
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { DyE2E_CWVThresholds_Interface } from '../../contracts/_models/interfaces/cwv-thresholds.interface';
273
283
  import { DyE2E_RouteDescriptor_Interface } from '../../generators/_models/route-descriptor.interface';
@@ -301,6 +311,7 @@ export class DyE2E_CWVEmission_Util {
301
311
  const assertions: string = [
302
312
  ['lcp', thresholds.lcp_p75_ms, 'ms'],
303
313
  ['cls', thresholds.cls_p75, ''],
314
+ ['inp', thresholds.inp_p75_ms, 'ms'],
304
315
  ['fcp', thresholds.fcp_p75_ms, 'ms'],
305
316
  ['ttfb', thresholds.ttfb_p75_ms, 'ms'],
306
317
  ]
@@ -315,13 +326,17 @@ export class DyE2E_CWVEmission_Util {
315
326
  &nbsp;
316
327
  for (let iter: number = 0; iter &lt; ${iterations}; iter++) {
317
328
  await page.addInitScript({ content: DYE2E_WEB_VITALS_PAGE_SCRIPT });
329
+ if (typeof DYE2E_INP_PAGE_SCRIPT !== 'undefined') {
330
+ await page.addInitScript({ content: DYE2E_INP_PAGE_SCRIPT });
331
+ }
318
332
  const response = await page.goto(${DyE2E_SpecEmission_Util.valueLiteral(fullPath)});
319
333
  expect(response?.ok()).toBeTruthy();
320
334
  ${readyWait}
321
- // Force snapshot — trigger pagehide via page.evaluate
335
+ // Force snapshot — trigger pagehide via page.evaluate (LCP/CLS + opcionálisan INP)
322
336
  await page.evaluate((): void =&gt; {
323
337
  const w = window as any;
324
338
  if (typeof w.__dye2e_cwv_snapshot__ === 'function') { w.__dye2e_cwv_snapshot__(); }
339
+ if (typeof w.__dye2e_inp_snapshot__ === 'function') { w.__dye2e_inp_snapshot__(); }
325
340
  });
326
341
  const events: any[] = await page.evaluate(() =&gt; (window as any).__dye2e_cwv_events__ || []);
327
342
  for (const ev of events) {
@@ -379,7 +394,7 @@ export class DyE2E_CWVEmission_Util {
379
394
  <div class='footer quiet pad2 space-top1 center small'>
380
395
  Code coverage generated by
381
396
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
382
- at 2026-06-10T05:35:00.162Z
397
+ at 2026-06-10T06:03:15.190Z
383
398
  </div>
384
399
  <script src="../../prettify.js"></script>
385
400
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">99.35% </span>
26
+ <span class="strong">98.3% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>308/310</span>
28
+ <span class='fraction'>463/471</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">82.35% </span>
33
+ <span class="strong">85.33% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>14/17</span>
35
+ <span class='fraction'>64/75</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>3/3</span>
42
+ <span class='fraction'>7/7</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">99.35% </span>
47
+ <span class="strong">98.3% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>308/310</span>
49
+ <span class='fraction'>463/471</span>
50
50
  </div>
51
51
 
52
52
 
@@ -93,19 +93,34 @@
93
93
  <td data-value="52" class="abs high">50/52</td>
94
94
  </tr>
95
95
 
96
+ <tr>
97
+ <td class="file high" data-value="cwv-diagnose.util.ts"><a href="cwv-diagnose.util.ts.html">cwv-diagnose.util.ts</a></td>
98
+ <td data-value="96.15" class="pic high">
99
+ <div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div>
100
+ </td>
101
+ <td data-value="96.15" class="pct high">96.15%</td>
102
+ <td data-value="156" class="abs high">150/156</td>
103
+ <td data-value="86.2" class="pct high">86.2%</td>
104
+ <td data-value="58" class="abs high">50/58</td>
105
+ <td data-value="100" class="pct high">100%</td>
106
+ <td data-value="4" class="abs high">4/4</td>
107
+ <td data-value="96.15" class="pct high">96.15%</td>
108
+ <td data-value="156" class="abs high">150/156</td>
109
+ </tr>
110
+
96
111
  <tr>
97
112
  <td class="file high" data-value="cwv-emission.util.ts"><a href="cwv-emission.util.ts.html">cwv-emission.util.ts</a></td>
98
113
  <td data-value="100" class="pic high">
99
114
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
100
115
  </td>
101
116
  <td data-value="100" class="pct high">100%</td>
102
- <td data-value="103" class="abs high">103/103</td>
117
+ <td data-value="108" class="abs high">108/108</td>
103
118
  <td data-value="60" class="pct medium">60%</td>
104
119
  <td data-value="5" class="abs medium">3/5</td>
105
120
  <td data-value="100" class="pct high">100%</td>
106
121
  <td data-value="1" class="abs high">1/1</td>
107
122
  <td data-value="100" class="pct high">100%</td>
108
- <td data-value="103" class="abs high">103/103</td>
123
+ <td data-value="108" class="abs high">108/108</td>
109
124
  </tr>
110
125
 
111
126
  <tr>
@@ -146,7 +161,7 @@
146
161
  <div class='footer quiet pad2 space-top1 center small'>
147
162
  Code coverage generated by
148
163
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
149
- at 2026-06-10T05:35:00.162Z
164
+ at 2026-06-10T06:03:15.190Z
150
165
  </div>
151
166
  <script src="../../prettify.js"></script>
152
167
  <script>
@@ -289,7 +289,7 @@ export interface DyE2E_INPInteraction_Shape {
289
289
  <div class='footer quiet pad2 space-top1 center small'>
290
290
  Code coverage generated by
291
291
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
292
- at 2026-06-10T05:35:00.162Z
292
+ at 2026-06-10T06:03:15.190Z
293
293
  </div>
294
294
  <script src="../../prettify.js"></script>
295
295
  <script>
@@ -316,7 +316,7 @@ export const DYE2E_WEB_VITALS_PAGE_SCRIPT: string = `
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-10T05:35:00.162Z
319
+ at 2026-06-10T06:03:15.190Z
320
320
  </div>
321
321
  <script src="../../prettify.js"></script>
322
322
  <script>
@@ -25,14 +25,14 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>49/49</span>
28
+ <span class='fraction'>58/58</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>5/5</span>
35
+ <span class='fraction'>7/7</span>
36
36
  </div>
37
37
 
38
38
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>49/49</span>
49
+ <span class='fraction'>58/58</span>
50
50
  </div>
51
51
 
52
52
 
@@ -112,7 +112,16 @@
112
112
  <a name='L47'></a><a href='#L47'>47</a>
113
113
  <a name='L48'></a><a href='#L48'>48</a>
114
114
  <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
116
125
  <span class="cline-any cline-yes">1x</span>
117
126
  <span class="cline-any cline-yes">1x</span>
118
127
  <span class="cline-any cline-yes">1x</span>
@@ -132,40 +141,50 @@
132
141
  <span class="cline-any cline-yes">1x</span>
133
142
  <span class="cline-any cline-yes">1x</span>
134
143
  <span class="cline-any cline-yes">1x</span>
135
- <span class="cline-any cline-yes">8x</span>
136
- <span class="cline-any cline-yes">8x</span>
137
- <span class="cline-any cline-yes">8x</span>
138
- <span class="cline-any cline-yes">8x</span>
139
- <span class="cline-any cline-yes">8x</span>
140
- <span class="cline-any cline-yes">8x</span>
141
- <span class="cline-any cline-yes">8x</span>
142
- <span class="cline-any cline-yes">8x</span>
143
- <span class="cline-any cline-yes">8x</span>
144
- <span class="cline-any cline-yes">8x</span>
145
- <span class="cline-any cline-yes">8x</span>
146
- <span class="cline-any cline-yes">8x</span>
147
- <span class="cline-any cline-yes">8x</span>
148
- <span class="cline-any cline-yes">8x</span>
149
- <span class="cline-any cline-yes">8x</span>
150
- <span class="cline-any cline-yes">8x</span>
151
- <span class="cline-any cline-yes">8x</span>
152
- <span class="cline-any cline-yes">8x</span>
153
- <span class="cline-any cline-yes">8x</span>
154
- <span class="cline-any cline-yes">8x</span>
155
- <span class="cline-any cline-yes">8x</span>
156
- <span class="cline-any cline-yes">8x</span>
157
- <span class="cline-any cline-yes">8x</span>
158
- <span class="cline-any cline-yes">8x</span>
159
- <span class="cline-any cline-yes">8x</span>
160
- <span class="cline-any cline-yes">8x</span>
161
- <span class="cline-any cline-yes">8x</span>
162
- <span class="cline-any cline-yes">8x</span>
144
+ <span class="cline-any cline-yes">1x</span>
145
+ <span class="cline-any cline-yes">13x</span>
146
+ <span class="cline-any cline-yes">13x</span>
147
+ <span class="cline-any cline-yes">13x</span>
148
+ <span class="cline-any cline-yes">13x</span>
149
+ <span class="cline-any cline-yes">13x</span>
150
+ <span class="cline-any cline-yes">13x</span>
151
+ <span class="cline-any cline-yes">13x</span>
152
+ <span class="cline-any cline-yes">13x</span>
153
+ <span class="cline-any cline-yes">13x</span>
154
+ <span class="cline-any cline-yes">13x</span>
155
+ <span class="cline-any cline-yes">13x</span>
156
+ <span class="cline-any cline-yes">13x</span>
157
+ <span class="cline-any cline-yes">13x</span>
158
+ <span class="cline-any cline-yes">13x</span>
159
+ <span class="cline-any cline-yes">13x</span>
160
+ <span class="cline-any cline-yes">13x</span>
161
+ <span class="cline-any cline-yes">13x</span>
162
+ <span class="cline-any cline-yes">13x</span>
163
+ <span class="cline-any cline-yes">13x</span>
164
+ <span class="cline-any cline-yes">13x</span>
165
+ <span class="cline-any cline-yes">13x</span>
166
+ <span class="cline-any cline-yes">13x</span>
167
+ <span class="cline-any cline-yes">13x</span>
168
+ <span class="cline-any cline-yes">13x</span>
169
+ <span class="cline-any cline-yes">13x</span>
170
+ <span class="cline-any cline-yes">13x</span>
171
+ <span class="cline-any cline-yes">13x</span>
172
+ <span class="cline-any cline-yes">13x</span>
173
+ <span class="cline-any cline-yes">13x</span>
174
+ <span class="cline-any cline-yes">13x</span>
175
+ <span class="cline-any cline-yes">13x</span>
176
+ <span class="cline-any cline-yes">13x</span>
177
+ <span class="cline-any cline-yes">13x</span>
178
+ <span class="cline-any cline-yes">13x</span>
179
+ <span class="cline-any cline-yes">13x</span>
180
+ <span class="cline-any cline-yes">13x</span>
163
181
  <span class="cline-any cline-yes">1x</span>
164
182
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { CWV_GOOD_THRESHOLDS } from '../contracts/_collections/constants/cwv-default-thresholds.const';
165
183
  import { DyE2E_CWVThresholds_Interface } from '../contracts/_models/interfaces/cwv-thresholds.interface';
166
184
  import { DyE2E_RouteDescriptor_Interface } from '../generators/_models/route-descriptor.interface';
167
185
  import { DyE2E_SpecEmission_Util } from '../generators/_collections/spec-emission.util';
168
186
  import { DyE2E_CWVEmission_Util } from './_collections/cwv-emission.util';
187
+ import { DYE2E_INP_PAGE_SCRIPT } from './_collections/inp-interaction-script.const';
169
188
  import { DYE2E_WEB_VITALS_PAGE_SCRIPT } from './_collections/web-vitals-page-script.const';
170
189
  import { DyE2E_CWVSuiteGenerate_Options } from './_models/cwv-suite-generate-options.interface';
171
190
  &nbsp;
@@ -196,11 +215,19 @@ export class DyE2E_CWVSuite_Generator {
196
215
  const routeBlocks: string[] = options.routes.map(
197
216
  (r: DyE2E_RouteDescriptor_Interface): string =&gt; DyE2E_CWVEmission_Util.emitRouteBlock(r, iterations, thresholds, reportDir),
198
217
  );
218
+ &nbsp;
219
+ // Wave-3 — ha LCP/CLS/FCP/TTFB MELLETT INP-t is mérünk, mindkét page-scriptet
220
+ // kell injektálni. A `DyE2E_CWVSuiteGenerate_Options.thresholds.inp_p75_ms`
221
+ // jelenléte signalizálja az INP-mérés-szándékot.
222
+ const wantsInp: boolean = typeof thresholds.inp_p75_ms === 'number';
223
+ const inpScriptDecl: string = wantsInp
224
+ ? `\nconst DYE2E_INP_PAGE_SCRIPT: string = ${JSON.stringify(DYE2E_INP_PAGE_SCRIPT)};`
225
+ : '';
199
226
  &nbsp;
200
227
  return `${header}
201
228
  import { test, expect } from '@playwright/test';
202
229
  &nbsp;
203
- const DYE2E_WEB_VITALS_PAGE_SCRIPT: string = ${JSON.stringify(DYE2E_WEB_VITALS_PAGE_SCRIPT)};
230
+ const DYE2E_WEB_VITALS_PAGE_SCRIPT: string = ${JSON.stringify(DYE2E_WEB_VITALS_PAGE_SCRIPT)};${inpScriptDecl}
204
231
  &nbsp;
205
232
  test.describe('${DyE2E_SpecEmission_Util.escapeString(describePrefix)}', (): void =&gt; {
206
233
  &nbsp;
@@ -217,7 +244,7 @@ ${DyE2E_SpecEmission_Util.indent(routeBlocks.join('\n\n'), 1)}
217
244
  <div class='footer quiet pad2 space-top1 center small'>
218
245
  Code coverage generated by
219
246
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
220
- at 2026-06-10T05:35:00.162Z
247
+ at 2026-06-10T06:03:15.190Z
221
248
  </div>
222
249
  <script src="../prettify.js"></script>
223
250
  <script>
@@ -25,14 +25,14 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>49/49</span>
28
+ <span class='fraction'>58/58</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>5/5</span>
35
+ <span class='fraction'>7/7</span>
36
36
  </div>
37
37
 
38
38
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>49/49</span>
49
+ <span class='fraction'>58/58</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="49" class="abs high">49/49</td>
87
+ <td data-value="58" class="abs high">58/58</td>
88
88
  <td data-value="100" class="pct high">100%</td>
89
- <td data-value="5" class="abs high">5/5</td>
89
+ <td data-value="7" class="abs high">7/7</td>
90
90
  <td data-value="100" class="pct high">100%</td>
91
91
  <td data-value="1" class="abs high">1/1</td>
92
92
  <td data-value="100" class="pct high">100%</td>
93
- <td data-value="49" class="abs high">49/49</td>
93
+ <td data-value="58" class="abs high">58/58</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-10T05:35:00.162Z
104
+ at 2026-06-10T06:03:15.190Z
105
105
  </div>
106
106
  <script src="../prettify.js"></script>
107
107
  <script>