@futdevpro/dynamo-e2e 1.9.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 (124) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +2 -2
  3. package/bin/dye2e.js +21 -0
  4. package/build/_modules/cwv/_collections/cwv-diagnose.util.d.ts +37 -0
  5. package/build/_modules/cwv/_collections/cwv-diagnose.util.d.ts.map +1 -0
  6. package/build/_modules/cwv/_collections/cwv-diagnose.util.js +108 -0
  7. package/build/_modules/cwv/_collections/cwv-diagnose.util.js.map +1 -0
  8. package/build/_modules/cwv/cwv-diagnose.spec.d.ts +2 -0
  9. package/build/_modules/cwv/cwv-diagnose.spec.d.ts.map +1 -0
  10. package/build/_modules/cwv/cwv-diagnose.spec.js +78 -0
  11. package/build/_modules/cwv/cwv-diagnose.spec.js.map +1 -0
  12. package/build/_modules/cwv/index.d.ts +1 -0
  13. package/build/_modules/cwv/index.d.ts.map +1 -1
  14. package/build/_modules/cwv/index.js +1 -0
  15. package/build/_modules/cwv/index.js.map +1 -1
  16. package/build/_modules/generators/_collections/cli-runner.util.d.ts +23 -0
  17. package/build/_modules/generators/_collections/cli-runner.util.d.ts.map +1 -1
  18. package/build/_modules/generators/_collections/cli-runner.util.js +57 -0
  19. package/build/_modules/generators/_collections/cli-runner.util.js.map +1 -1
  20. package/build/_modules/generators/doctor.spec.d.ts +2 -0
  21. package/build/_modules/generators/doctor.spec.d.ts.map +1 -0
  22. package/build/_modules/generators/doctor.spec.js +68 -0
  23. package/build/_modules/generators/doctor.spec.js.map +1 -0
  24. package/coverage/contracts/_collections/index.html +1 -1
  25. package/coverage/contracts/_collections/index.ts.html +1 -1
  26. package/coverage/contracts/_collections/utils/index.html +1 -1
  27. package/coverage/contracts/_collections/utils/test-id.util.ts.html +1 -1
  28. package/coverage/contracts/_enums/cwv-metric-type.enum.ts.html +1 -1
  29. package/coverage/contracts/_enums/field-test-case-type.enum.ts.html +1 -1
  30. package/coverage/contracts/_enums/index.html +1 -1
  31. package/coverage/contracts/_enums/index.ts.html +1 -1
  32. package/coverage/contracts/_enums/standard-viewport.enum.ts.html +1 -1
  33. package/coverage/contracts/_enums/test-expectation-type.enum.ts.html +1 -1
  34. package/coverage/contracts/_enums/test-run-mode-type.enum.ts.html +1 -1
  35. package/coverage/contracts/index.html +1 -1
  36. package/coverage/contracts/index.ts.html +1 -1
  37. package/coverage/cwv/_collections/cwv-aggregator.util.ts.html +1 -1
  38. package/coverage/cwv/_collections/cwv-diagnose.util.ts.html +553 -0
  39. package/coverage/cwv/_collections/cwv-emission.util.ts.html +1 -1
  40. package/coverage/cwv/_collections/index.html +23 -8
  41. package/coverage/cwv/_collections/inp-interaction-script.const.ts.html +1 -1
  42. package/coverage/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
  43. package/coverage/cwv/cwv-suite.generator.ts.html +1 -1
  44. package/coverage/cwv/index.html +1 -1
  45. package/coverage/generators/_collections/cli-runner.util.ts.html +219 -21
  46. package/coverage/generators/_collections/field-emission.util.ts.html +1 -1
  47. package/coverage/generators/_collections/form-level-emission.util.ts.html +1 -1
  48. package/coverage/generators/_collections/index.html +13 -13
  49. package/coverage/generators/_collections/spec-emission.util.ts.html +1 -1
  50. package/coverage/generators/_collections/test-case-filter.util.ts.html +1 -1
  51. package/coverage/generators/_collections/viewport-emission.util.ts.html +1 -1
  52. package/coverage/generators/form-suite.generator.ts.html +1 -1
  53. package/coverage/generators/index.html +1 -1
  54. package/coverage/generators/viewport-suite.generator.ts.html +1 -1
  55. package/coverage/index.html +26 -26
  56. package/coverage/lcov-report/contracts/_collections/index.html +1 -1
  57. package/coverage/lcov-report/contracts/_collections/index.ts.html +1 -1
  58. package/coverage/lcov-report/contracts/_collections/utils/index.html +1 -1
  59. package/coverage/lcov-report/contracts/_collections/utils/test-id.util.ts.html +1 -1
  60. package/coverage/lcov-report/contracts/_enums/cwv-metric-type.enum.ts.html +1 -1
  61. package/coverage/lcov-report/contracts/_enums/field-test-case-type.enum.ts.html +1 -1
  62. package/coverage/lcov-report/contracts/_enums/index.html +1 -1
  63. package/coverage/lcov-report/contracts/_enums/index.ts.html +1 -1
  64. package/coverage/lcov-report/contracts/_enums/standard-viewport.enum.ts.html +1 -1
  65. package/coverage/lcov-report/contracts/_enums/test-expectation-type.enum.ts.html +1 -1
  66. package/coverage/lcov-report/contracts/_enums/test-run-mode-type.enum.ts.html +1 -1
  67. package/coverage/lcov-report/contracts/index.html +1 -1
  68. package/coverage/lcov-report/contracts/index.ts.html +1 -1
  69. package/coverage/lcov-report/cwv/_collections/cwv-aggregator.util.ts.html +1 -1
  70. package/coverage/lcov-report/cwv/_collections/cwv-diagnose.util.ts.html +553 -0
  71. package/coverage/lcov-report/cwv/_collections/cwv-emission.util.ts.html +1 -1
  72. package/coverage/lcov-report/cwv/_collections/index.html +23 -8
  73. package/coverage/lcov-report/cwv/_collections/inp-interaction-script.const.ts.html +1 -1
  74. package/coverage/lcov-report/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
  75. package/coverage/lcov-report/cwv/cwv-suite.generator.ts.html +1 -1
  76. package/coverage/lcov-report/cwv/index.html +1 -1
  77. package/coverage/lcov-report/generators/_collections/cli-runner.util.ts.html +219 -21
  78. package/coverage/lcov-report/generators/_collections/field-emission.util.ts.html +1 -1
  79. package/coverage/lcov-report/generators/_collections/form-level-emission.util.ts.html +1 -1
  80. package/coverage/lcov-report/generators/_collections/index.html +13 -13
  81. package/coverage/lcov-report/generators/_collections/spec-emission.util.ts.html +1 -1
  82. package/coverage/lcov-report/generators/_collections/test-case-filter.util.ts.html +1 -1
  83. package/coverage/lcov-report/generators/_collections/viewport-emission.util.ts.html +1 -1
  84. package/coverage/lcov-report/generators/form-suite.generator.ts.html +1 -1
  85. package/coverage/lcov-report/generators/index.html +1 -1
  86. package/coverage/lcov-report/generators/viewport-suite.generator.ts.html +1 -1
  87. package/coverage/lcov-report/index.html +26 -26
  88. package/coverage/lcov-report/runtime/_collections/assertion-helpers.util.ts.html +1 -1
  89. package/coverage/lcov-report/runtime/_collections/index.html +1 -1
  90. package/coverage/lcov-report/runtime/_collections/unique-generator.util.ts.html +1 -1
  91. package/coverage/lcov-report/runtime/_collections/wait-helpers.util.ts.html +1 -1
  92. package/coverage/lcov-report/runtime/_services/dialog-page-object.ts.html +1 -1
  93. package/coverage/lcov-report/runtime/_services/field-page-object.ts.html +1 -1
  94. package/coverage/lcov-report/runtime/_services/form-page-object.ts.html +1 -1
  95. package/coverage/lcov-report/runtime/_services/index.html +1 -1
  96. package/coverage/lcov-report/runtime/_services/loader-page-object.ts.html +1 -1
  97. package/coverage/lcov-report/runtime/_services/logger.service.ts.html +1 -1
  98. package/coverage/lcov-report/runtime/_services/login-flow-helper.base.ts.html +1 -1
  99. package/coverage/lcov-report/runtime/_services/nav-page-object.ts.html +1 -1
  100. package/coverage/lcov-report/runtime/_services/toast-page-object.ts.html +1 -1
  101. package/coverage/lcov-report/runtime/_services/wave-2b-page-objects.ts.html +1 -1
  102. package/coverage/lcov-report/runtime/index.html +1 -1
  103. package/coverage/lcov-report/runtime/index.ts.html +1 -1
  104. package/coverage/lcov.info +374 -63
  105. package/coverage/runtime/_collections/assertion-helpers.util.ts.html +1 -1
  106. package/coverage/runtime/_collections/index.html +1 -1
  107. package/coverage/runtime/_collections/unique-generator.util.ts.html +1 -1
  108. package/coverage/runtime/_collections/wait-helpers.util.ts.html +1 -1
  109. package/coverage/runtime/_services/dialog-page-object.ts.html +1 -1
  110. package/coverage/runtime/_services/field-page-object.ts.html +1 -1
  111. package/coverage/runtime/_services/form-page-object.ts.html +1 -1
  112. package/coverage/runtime/_services/index.html +1 -1
  113. package/coverage/runtime/_services/loader-page-object.ts.html +1 -1
  114. package/coverage/runtime/_services/logger.service.ts.html +1 -1
  115. package/coverage/runtime/_services/login-flow-helper.base.ts.html +1 -1
  116. package/coverage/runtime/_services/nav-page-object.ts.html +1 -1
  117. package/coverage/runtime/_services/toast-page-object.ts.html +1 -1
  118. package/coverage/runtime/_services/wave-2b-page-objects.ts.html +1 -1
  119. package/coverage/runtime/index.html +1 -1
  120. package/coverage/runtime/index.ts.html +1 -1
  121. package/coverage/tmp/{coverage-225712-1781070050591-0.json → coverage-224932-1781071393426-0.json} +1 -1
  122. package/coverage/tmp/coverage-226960-1781071394780-0.json +1 -0
  123. package/package.json +1 -1
  124. package/coverage/tmp/coverage-222216-1781070051665-0.json +0 -1
@@ -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:40:51.967Z
319
+ at 2026-06-10T06:03:15.190Z
320
320
  </div>
321
321
  <script src="../../prettify.js"></script>
322
322
  <script>
@@ -244,7 +244,7 @@ ${DyE2E_SpecEmission_Util.indent(routeBlocks.join('\n\n'), 1)}
244
244
  <div class='footer quiet pad2 space-top1 center small'>
245
245
  Code coverage generated by
246
246
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
247
- at 2026-06-10T05:40:51.967Z
247
+ at 2026-06-10T06:03:15.190Z
248
248
  </div>
249
249
  <script src="../prettify.js"></script>
250
250
  <script>
@@ -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:40:51.967Z
104
+ at 2026-06-10T06:03:15.190Z
105
105
  </div>
106
106
  <script src="../prettify.js"></script>
107
107
  <script>
@@ -25,28 +25,28 @@
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'>92/92</span>
28
+ <span class='fraction'>158/158</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">96.29% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>15/15</span>
35
+ <span class='fraction'>26/27</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'>4/4</span>
42
+ <span class='fraction'>5/5</span>
43
43
  </div>
44
44
 
45
45
 
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'>92/92</span>
49
+ <span class='fraction'>158/158</span>
50
50
  </div>
51
51
 
52
52
 
@@ -155,7 +155,73 @@
155
155
  <a name='L90'></a><a href='#L90'>90</a>
156
156
  <a name='L91'></a><a href='#L91'>91</a>
157
157
  <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
159
225
  <span class="cline-any cline-yes">1x</span>
160
226
  <span class="cline-any cline-yes">1x</span>
161
227
  <span class="cline-any cline-yes">1x</span>
@@ -193,6 +259,38 @@
193
259
  <span class="cline-any cline-yes">3x</span>
194
260
  <span class="cline-any cline-yes">1x</span>
195
261
  <span class="cline-any cline-yes">1x</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">2x</span>
265
+ <span class="cline-any cline-yes">2x</span>
266
+ <span class="cline-any cline-yes">2x</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">2x</span>
271
+ <span class="cline-any cline-yes">2x</span>
272
+ <span class="cline-any cline-yes">2x</span>
273
+ <span class="cline-any cline-yes">2x</span>
274
+ <span class="cline-any cline-yes">2x</span>
275
+ <span class="cline-any cline-yes">2x</span>
276
+ <span class="cline-any cline-yes">2x</span>
277
+ <span class="cline-any cline-yes">2x</span>
278
+ <span class="cline-any cline-yes">2x</span>
279
+ <span class="cline-any cline-yes">2x</span>
280
+ <span class="cline-any cline-yes">2x</span>
281
+ <span class="cline-any cline-yes">2x</span>
282
+ <span class="cline-any cline-yes">2x</span>
283
+ <span class="cline-any cline-yes">2x</span>
284
+ <span class="cline-any cline-yes">2x</span>
285
+ <span class="cline-any cline-yes">2x</span>
286
+ <span class="cline-any cline-yes">2x</span>
287
+ <span class="cline-any cline-yes">2x</span>
288
+ <span class="cline-any cline-yes">2x</span>
289
+ <span class="cline-any cline-yes">2x</span>
290
+ <span class="cline-any cline-yes">2x</span>
291
+ <span class="cline-any cline-yes">2x</span>
292
+ <span class="cline-any cline-yes">2x</span>
293
+ <span class="cline-any cline-yes">2x</span>
196
294
  <span class="cline-any cline-yes">1x</span>
197
295
  <span class="cline-any cline-yes">1x</span>
198
296
  <span class="cline-any cline-yes">1x</span>
@@ -207,20 +305,54 @@
207
305
  <span class="cline-any cline-yes">1x</span>
208
306
  <span class="cline-any cline-yes">1x</span>
209
307
  <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-yes">1x</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">1x</span>
216
- <span class="cline-any cline-yes">1x</span>
217
- <span class="cline-any cline-yes">1x</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">1x</span>
222
- <span class="cline-any cline-yes">1x</span>
223
- <span class="cline-any cline-yes">1x</span>
308
+ <span class="cline-any cline-yes">7x</span>
309
+ <span class="cline-any cline-yes">7x</span>
310
+ <span class="cline-any cline-yes">7x</span>
311
+ <span class="cline-any cline-yes">7x</span>
312
+ <span class="cline-any cline-yes">7x</span>
313
+ <span class="cline-any cline-yes">7x</span>
314
+ <span class="cline-any cline-yes">7x</span>
315
+ <span class="cline-any cline-yes">7x</span>
316
+ <span class="cline-any cline-yes">7x</span>
317
+ <span class="cline-any cline-yes">7x</span>
318
+ <span class="cline-any cline-yes">7x</span>
319
+ <span class="cline-any cline-yes">3x</span>
320
+ <span class="cline-any cline-yes">3x</span>
321
+ <span class="cline-any cline-yes">3x</span>
322
+ <span class="cline-any cline-yes">3x</span>
323
+ <span class="cline-any cline-yes">3x</span>
324
+ <span class="cline-any cline-yes">3x</span>
325
+ <span class="cline-any cline-yes">3x</span>
326
+ <span class="cline-any cline-yes">7x</span>
327
+ <span class="cline-any cline-yes">7x</span>
328
+ <span class="cline-any cline-yes">7x</span>
329
+ <span class="cline-any cline-yes">7x</span>
330
+ <span class="cline-any cline-yes">7x</span>
331
+ <span class="cline-any cline-yes">7x</span>
332
+ <span class="cline-any cline-yes">5x</span>
333
+ <span class="cline-any cline-yes">5x</span>
334
+ <span class="cline-any cline-yes">7x</span>
335
+ <span class="cline-any cline-yes">5x</span>
336
+ <span class="cline-any cline-yes">5x</span>
337
+ <span class="cline-any cline-yes">7x</span>
338
+ <span class="cline-any cline-yes">5x</span>
339
+ <span class="cline-any cline-yes">5x</span>
340
+ <span class="cline-any cline-yes">7x</span>
341
+ <span class="cline-any cline-yes">5x</span>
342
+ <span class="cline-any cline-yes">5x</span>
343
+ <span class="cline-any cline-yes">7x</span>
344
+ <span class="cline-any cline-yes">5x</span>
345
+ <span class="cline-any cline-yes">5x</span>
346
+ <span class="cline-any cline-yes">7x</span>
347
+ <span class="cline-any cline-yes">7x</span>
348
+ <span class="cline-any cline-yes">7x</span>
349
+ <span class="cline-any cline-yes">7x</span>
350
+ <span class="cline-any cline-yes">7x</span>
351
+ <span class="cline-any cline-yes">7x</span>
352
+ <span class="cline-any cline-yes">7x</span>
353
+ <span class="cline-any cline-yes">7x</span>
354
+ <span class="cline-any cline-yes">7x</span>
355
+ <span class="cline-any cline-yes">7x</span>
224
356
  <span class="cline-any cline-yes">1x</span>
225
357
  <span class="cline-any cline-yes">1x</span>
226
358
  <span class="cline-any cline-yes">1x</span>
@@ -294,6 +426,7 @@ Commands:
294
426
  generate-form-suite Settings POJO → Playwright form-coverage spec.ts
295
427
  generate-viewport-audit Route-list → 7 viewport × theme spec.ts
296
428
  generate-cwv-diag Route-list → CWV synthetic measurement spec.ts
429
+ doctor Diagnose project config (config-files, deps, conventions)
297
430
  version Print package version
298
431
  help This message
299
432
  &nbsp;
@@ -311,8 +444,73 @@ Flags (generate-cwv-diag):
311
444
  --config &lt;path&gt; Path to JSON config (routes, thresholds, ...)
312
445
  --out &lt;path&gt; Output spec.ts path
313
446
  --stdout Print to stdout
447
+ &nbsp;
448
+ Flags (doctor):
449
+ --pwd &lt;path&gt; Project root (default: cwd)
314
450
  `;
315
451
  }
452
+ &nbsp;
453
+ /**
454
+ * Doctor parancs — projekt-config-validáció.
455
+ *
456
+ * Megnézi:
457
+ * - van-e `@futdevpro/dynamo-e2e` a package.json deps-jében
458
+ * - van-e `@playwright/test`
459
+ * - létezik-e `playwright.config.ts` vagy `playwright.config.js`
460
+ * - létezik-e `e2e/` vagy `tests/` mappa
461
+ * - létezik-e `.dynamo/pipeline.cicd.config.json` (FDP-project esetén)
462
+ *
463
+ * Bemenet: cwd → kimenet JSON-szerű object.
464
+ */
465
+ static doctorReport(cwd: string, fs: { existsSync: (p: string) =&gt; boolean; readFileSync: (p: string, enc: string) =&gt; string }): {
466
+ hasDynamoE2E: boolean;
467
+ hasPlaywrightTest: boolean;
468
+ hasPlaywrightConfig: boolean;
469
+ hasE2EDir: boolean;
470
+ hasCicdConfig: boolean;
471
+ suggestions: string[];
472
+ } {
473
+ const pkgJsonPath: string = `${cwd}/package.json`;
474
+ let hasDynamoE2E: boolean = false;
475
+ let hasPlaywrightTest: boolean = false;
476
+ if (fs.existsSync(pkgJsonPath)) {
477
+ try {
478
+ const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf-8'));
479
+ const allDeps: Record&lt;string, string&gt; = { ...(pkg.dependencies || {}), ...(pkg.devDependencies<span class="branch-0 cbranch-no" title="branch not covered" > || {})</span> };
480
+ hasDynamoE2E = '@futdevpro/dynamo-e2e' in allDeps;
481
+ hasPlaywrightTest = '@playwright/test' in allDeps;
482
+ } catch (e: unknown) { /* swallow */ }
483
+ }
484
+ const hasPlaywrightConfig: boolean = fs.existsSync(`${cwd}/playwright.config.ts`) || fs.existsSync(`${cwd}/playwright.config.js`);
485
+ const hasE2EDir: boolean = fs.existsSync(`${cwd}/e2e`) || fs.existsSync(`${cwd}/tests`);
486
+ const hasCicdConfig: boolean = fs.existsSync(`${cwd}/.dynamo/pipeline.cicd.config.json`);
487
+ &nbsp;
488
+ const suggestions: string[] = [];
489
+ if (!hasDynamoE2E) {
490
+ suggestions.push('Install: pnpm add -D @futdevpro/dynamo-e2e');
491
+ }
492
+ if (!hasPlaywrightTest) {
493
+ suggestions.push('Install: pnpm add -D @playwright/test');
494
+ }
495
+ if (!hasPlaywrightConfig) {
496
+ suggestions.push('Create: playwright.config.ts — lásd getting-started.md');
497
+ }
498
+ if (!hasE2EDir) {
499
+ suggestions.push('Create: e2e/ folder a generated spec-eknek');
500
+ }
501
+ if (!hasCicdConfig) {
502
+ suggestions.push('Optional: .dynamo/pipeline.cicd.config.json — Overseer CICD step (lásd overseer-step-template.md)');
503
+ }
504
+ &nbsp;
505
+ return {
506
+ hasDynamoE2E,
507
+ hasPlaywrightTest,
508
+ hasPlaywrightConfig,
509
+ hasE2EDir,
510
+ hasCicdConfig,
511
+ suggestions,
512
+ };
513
+ }
316
514
  &nbsp;
317
515
  static versionText(version: string): string {
318
516
  return `@futdevpro/dynamo-e2e ${version}`;
@@ -346,7 +544,7 @@ Flags (generate-cwv-diag):
346
544
  <div class='footer quiet pad2 space-top1 center small'>
347
545
  Code coverage generated by
348
546
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
349
- at 2026-06-10T05:40:51.967Z
547
+ at 2026-06-10T06:03:15.190Z
350
548
  </div>
351
549
  <script src="../../prettify.js"></script>
352
550
  <script>
@@ -589,7 +589,7 @@ expect(true).toBe(true);`;
589
589
  <div class='footer quiet pad2 space-top1 center small'>
590
590
  Code coverage generated by
591
591
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
592
- at 2026-06-10T05:40:51.967Z
592
+ at 2026-06-10T06:03:15.190Z
593
593
  </div>
594
594
  <script src="../../prettify.js"></script>
595
595
  <script>
@@ -205,7 +205,7 @@ ${requiredFieldCount &gt; 0
205
205
  <div class='footer quiet pad2 space-top1 center small'>
206
206
  Code coverage generated by
207
207
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
208
- at 2026-06-10T05:40:51.967Z
208
+ at 2026-06-10T06:03:15.190Z
209
209
  </div>
210
210
  <script src="../../prettify.js"></script>
211
211
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">98.83% </span>
26
+ <span class="strong">98.95% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>596/603</span>
28
+ <span class='fraction'>662/669</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">82.31% </span>
33
+ <span class="strong">82.95% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>135/164</span>
35
+ <span class='fraction'>146/176</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'>19/19</span>
42
+ <span class='fraction'>20/20</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">98.83% </span>
47
+ <span class="strong">98.95% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>596/603</span>
49
+ <span class='fraction'>662/669</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="92" class="abs high">92/92</td>
87
+ <td data-value="158" class="abs high">158/158</td>
88
+ <td data-value="96.29" class="pct high">96.29%</td>
89
+ <td data-value="27" class="abs high">26/27</td>
88
90
  <td data-value="100" class="pct high">100%</td>
89
- <td data-value="15" class="abs high">15/15</td>
91
+ <td data-value="5" class="abs high">5/5</td>
90
92
  <td data-value="100" class="pct high">100%</td>
91
- <td data-value="4" class="abs high">4/4</td>
92
- <td data-value="100" class="pct high">100%</td>
93
- <td data-value="92" class="abs high">92/92</td>
93
+ <td data-value="158" class="abs high">158/158</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
@@ -176,7 +176,7 @@
176
176
  <div class='footer quiet pad2 space-top1 center small'>
177
177
  Code coverage generated by
178
178
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
179
- at 2026-06-10T05:40:51.967Z
179
+ at 2026-06-10T06:03:15.190Z
180
180
  </div>
181
181
  <script src="../../prettify.js"></script>
182
182
  <script>
@@ -283,7 +283,7 @@ export class DyE2E_SpecEmission_Util {
283
283
  <div class='footer quiet pad2 space-top1 center small'>
284
284
  Code coverage generated by
285
285
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
286
- at 2026-06-10T05:40:51.967Z
286
+ at 2026-06-10T06:03:15.190Z
287
287
  </div>
288
288
  <script src="../../prettify.js"></script>
289
289
  <script>
@@ -508,7 +508,7 @@ export class DyE2E_TestCaseFilter_Util {
508
508
  <div class='footer quiet pad2 space-top1 center small'>
509
509
  Code coverage generated by
510
510
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
511
- at 2026-06-10T05:40:51.967Z
511
+ at 2026-06-10T06:03:15.190Z
512
512
  </div>
513
513
  <script src="../../prettify.js"></script>
514
514
  <script>
@@ -298,7 +298,7 @@ ${DyE2E_SpecEmission_Util.indent(body, 1)}
298
298
  <div class='footer quiet pad2 space-top1 center small'>
299
299
  Code coverage generated by
300
300
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
301
- at 2026-06-10T05:40:51.967Z
301
+ at 2026-06-10T06:03:15.190Z
302
302
  </div>
303
303
  <script src="../../prettify.js"></script>
304
304
  <script>
@@ -391,7 +391,7 @@ ${fieldBlocks.join('\n\n')}${formLevelBlock}
391
391
  <div class='footer quiet pad2 space-top1 center small'>
392
392
  Code coverage generated by
393
393
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
394
- at 2026-06-10T05:40:51.967Z
394
+ at 2026-06-10T06:03:15.190Z
395
395
  </div>
396
396
  <script src="../prettify.js"></script>
397
397
  <script>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at 2026-06-10T05:40:51.967Z
119
+ at 2026-06-10T06:03:15.190Z
120
120
  </div>
121
121
  <script src="../prettify.js"></script>
122
122
  <script>
@@ -292,7 +292,7 @@ ${blocks.join('\n\n')}
292
292
  <div class='footer quiet pad2 space-top1 center small'>
293
293
  Code coverage generated by
294
294
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
295
- at 2026-06-10T05:40:51.967Z
295
+ at 2026-06-10T06:03:15.190Z
296
296
  </div>
297
297
  <script src="../prettify.js"></script>
298
298
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">98.3% </span>
26
+ <span class="strong">98.2% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>1973/2007</span>
28
+ <span class='fraction'>2189/2229</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">86.28% </span>
33
+ <span class="strong">86.43% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>283/328</span>
35
+ <span class='fraction'>344/398</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">97.24% </span>
40
+ <span class="strong">97.36% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>106/109</span>
42
+ <span class='fraction'>111/114</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">98.3% </span>
47
+ <span class="strong">98.2% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>1973/2007</span>
49
+ <span class='fraction'>2189/2229</span>
50
50
  </div>
51
51
 
52
52
 
@@ -155,17 +155,17 @@
155
155
 
156
156
  <tr>
157
157
  <td class="file high" data-value="cwv/_collections"><a href="cwv/_collections/index.html">cwv/_collections</a></td>
158
- <td data-value="99.36" class="pic high">
159
- <div class="chart"><div class="cover-fill" style="width: 99%"></div><div class="cover-empty" style="width: 1%"></div></div>
158
+ <td data-value="98.3" class="pic high">
159
+ <div class="chart"><div class="cover-fill" style="width: 98%"></div><div class="cover-empty" style="width: 2%"></div></div>
160
160
  </td>
161
- <td data-value="99.36" class="pct high">99.36%</td>
162
- <td data-value="315" class="abs high">313/315</td>
163
- <td data-value="82.35" class="pct high">82.35%</td>
164
- <td data-value="17" class="abs high">14/17</td>
161
+ <td data-value="98.3" class="pct high">98.3%</td>
162
+ <td data-value="471" class="abs high">463/471</td>
163
+ <td data-value="85.33" class="pct high">85.33%</td>
164
+ <td data-value="75" class="abs high">64/75</td>
165
165
  <td data-value="100" class="pct high">100%</td>
166
- <td data-value="3" class="abs high">3/3</td>
167
- <td data-value="99.36" class="pct high">99.36%</td>
168
- <td data-value="315" class="abs high">313/315</td>
166
+ <td data-value="7" class="abs high">7/7</td>
167
+ <td data-value="98.3" class="pct high">98.3%</td>
168
+ <td data-value="471" class="abs high">463/471</td>
169
169
  </tr>
170
170
 
171
171
  <tr>
@@ -185,17 +185,17 @@
185
185
 
186
186
  <tr>
187
187
  <td class="file high" data-value="generators/_collections"><a href="generators/_collections/index.html">generators/_collections</a></td>
188
- <td data-value="98.83" class="pic high">
188
+ <td data-value="98.95" class="pic high">
189
189
  <div class="chart"><div class="cover-fill" style="width: 98%"></div><div class="cover-empty" style="width: 2%"></div></div>
190
190
  </td>
191
- <td data-value="98.83" class="pct high">98.83%</td>
192
- <td data-value="603" class="abs high">596/603</td>
193
- <td data-value="82.31" class="pct high">82.31%</td>
194
- <td data-value="164" class="abs high">135/164</td>
191
+ <td data-value="98.95" class="pct high">98.95%</td>
192
+ <td data-value="669" class="abs high">662/669</td>
193
+ <td data-value="82.95" class="pct high">82.95%</td>
194
+ <td data-value="176" class="abs high">146/176</td>
195
195
  <td data-value="100" class="pct high">100%</td>
196
- <td data-value="19" class="abs high">19/19</td>
197
- <td data-value="98.83" class="pct high">98.83%</td>
198
- <td data-value="603" class="abs high">596/603</td>
196
+ <td data-value="20" class="abs high">20/20</td>
197
+ <td data-value="98.95" class="pct high">98.95%</td>
198
+ <td data-value="669" class="abs high">662/669</td>
199
199
  </tr>
200
200
 
201
201
  <tr>
@@ -251,7 +251,7 @@
251
251
  <div class='footer quiet pad2 space-top1 center small'>
252
252
  Code coverage generated by
253
253
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
254
- at 2026-06-10T05:40:51.967Z
254
+ at 2026-06-10T06:03:15.190Z
255
255
  </div>
256
256
  <script src="prettify.js"></script>
257
257
  <script>
@@ -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:40:52.028Z
104
+ at 2026-06-10T06:03:15.288Z
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <script>
@@ -82,7 +82,7 @@ export * from './test-case-sets/field-type-registry.const';
82
82
  <div class='footer quiet pad2 space-top1 center small'>
83
83
  Code coverage generated by
84
84
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
85
- at 2026-06-10T05:40:52.028Z
85
+ at 2026-06-10T06:03:15.288Z
86
86
  </div>
87
87
  <script src="../../prettify.js"></script>
88
88
  <script>
@@ -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:40:52.028Z
104
+ at 2026-06-10T06:03:15.288Z
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>