@elliemae/encw-leak-runner 1.0.13 → 1.0.15

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 (144) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +63 -0
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/bin/leak-runner.js +258 -29
  5. package/dist/cjs/browser/heapMemoryProfiler.js +182 -0
  6. package/dist/cjs/browser/iframeHeapProfiler.js +2 -2
  7. package/dist/cjs/index.js +2 -0
  8. package/dist/cjs/runner/scenarioRunner.js +9 -6
  9. package/dist/cjs/scenarios/index.js +7 -4
  10. package/dist/cjs/scenarios/one-admin/index.js +5 -1
  11. package/dist/cjs/scenarios/pipeline/index.js +31 -0
  12. package/dist/cjs/scenarios/pipeline/page-models/PipelinePageModel.js +52 -0
  13. package/dist/cjs/scenarios/pipeline/page-models/index.js +24 -0
  14. package/dist/cjs/scenarios/pipeline/pipeline-task-navigation.scenario.js +56 -0
  15. package/dist/esm/browser/heapMemoryProfiler.js +152 -0
  16. package/dist/esm/browser/iframeHeapProfiler.js +1 -1
  17. package/dist/esm/index.js +2 -0
  18. package/dist/esm/runner/scenarioRunner.js +9 -6
  19. package/dist/esm/scenarios/index.js +8 -5
  20. package/dist/esm/scenarios/one-admin/index.js +5 -1
  21. package/dist/esm/scenarios/pipeline/index.js +11 -0
  22. package/dist/esm/scenarios/pipeline/page-models/PipelinePageModel.js +32 -0
  23. package/dist/esm/scenarios/pipeline/page-models/index.js +4 -0
  24. package/dist/esm/scenarios/pipeline/pipeline-task-navigation.scenario.js +36 -0
  25. package/dist/types/lib/browser/heapMemoryProfiler.d.ts +149 -0
  26. package/dist/types/lib/browser/iframeHeapProfiler.d.ts +1 -1
  27. package/dist/types/lib/browser/tests/heapMemoryProfiler.test.d.ts +1 -0
  28. package/dist/types/lib/config/runnerConfigSchema.d.ts +6 -6
  29. package/dist/types/lib/index.d.ts +2 -0
  30. package/dist/types/lib/scenarios/one-admin/index.d.ts +2 -2
  31. package/dist/types/lib/scenarios/pipeline/index.d.ts +2 -0
  32. package/dist/types/lib/scenarios/pipeline/page-models/PipelinePageModel.d.ts +14 -0
  33. package/dist/types/lib/scenarios/pipeline/page-models/index.d.ts +1 -0
  34. package/dist/types/lib/scenarios/pipeline/pipeline-task-navigation.scenario.d.ts +2 -0
  35. package/leak-runner.config.json +1 -1
  36. package/lib/browser/heapMemoryProfiler.ts +284 -0
  37. package/lib/browser/iframeHeapProfiler.ts +1 -1
  38. package/lib/browser/tests/heapMemoryProfiler.test.ts +64 -0
  39. package/lib/browser/tests/iframeHeapProfiler.test.ts +1 -1
  40. package/lib/index.ts +2 -0
  41. package/lib/runner/scenarioRunner.ts +9 -6
  42. package/lib/scenarios/index.ts +8 -6
  43. package/lib/scenarios/one-admin/index.ts +7 -1
  44. package/lib/scenarios/pipeline/index.ts +12 -0
  45. package/lib/scenarios/pipeline/page-models/PipelinePageModel.ts +46 -0
  46. package/lib/scenarios/pipeline/page-models/index.ts +1 -0
  47. package/lib/scenarios/pipeline/pipeline-task-navigation.scenario.ts +42 -0
  48. package/package.json +5 -4
  49. package/reports/analysis/index.html +1 -1
  50. package/reports/analysis/thresholdEvaluator.ts.html +1 -1
  51. package/reports/browser/heapMemoryProfiler.ts.html +937 -0
  52. package/reports/browser/iframeHeapProfiler.ts.html +5 -5
  53. package/reports/browser/index.html +25 -10
  54. package/reports/cli/commands/index.html +1 -1
  55. package/reports/cli/commands/listCommand.ts.html +1 -1
  56. package/reports/cli/commands/runCommand.ts.html +1 -1
  57. package/reports/cli/index.html +1 -1
  58. package/reports/cli/index.ts.html +1 -1
  59. package/reports/config/index.html +1 -1
  60. package/reports/config/missingRequiredParamError.ts.html +1 -1
  61. package/reports/config/requiredEnvParams.ts.html +1 -1
  62. package/reports/config/runnerConfigLoader.ts.html +1 -1
  63. package/reports/config/runnerConfigSchema.ts.html +1 -1
  64. package/reports/config/sources/cliOverrideConfigSource.ts.html +1 -1
  65. package/reports/config/sources/configSource.ts.html +1 -1
  66. package/reports/config/sources/envVarConfigSource.ts.html +1 -1
  67. package/reports/config/sources/fileConfigSource.ts.html +1 -1
  68. package/reports/config/sources/index.html +1 -1
  69. package/reports/config/unknownEnvError.ts.html +1 -1
  70. package/reports/index.html +63 -33
  71. package/reports/lcov-report/analysis/index.html +1 -1
  72. package/reports/lcov-report/analysis/thresholdEvaluator.ts.html +1 -1
  73. package/reports/lcov-report/browser/heapMemoryProfiler.ts.html +937 -0
  74. package/reports/lcov-report/browser/iframeHeapProfiler.ts.html +5 -5
  75. package/reports/lcov-report/browser/index.html +25 -10
  76. package/reports/lcov-report/cli/commands/index.html +1 -1
  77. package/reports/lcov-report/cli/commands/listCommand.ts.html +1 -1
  78. package/reports/lcov-report/cli/commands/runCommand.ts.html +1 -1
  79. package/reports/lcov-report/cli/index.html +1 -1
  80. package/reports/lcov-report/cli/index.ts.html +1 -1
  81. package/reports/lcov-report/config/index.html +1 -1
  82. package/reports/lcov-report/config/missingRequiredParamError.ts.html +1 -1
  83. package/reports/lcov-report/config/requiredEnvParams.ts.html +1 -1
  84. package/reports/lcov-report/config/runnerConfigLoader.ts.html +1 -1
  85. package/reports/lcov-report/config/runnerConfigSchema.ts.html +1 -1
  86. package/reports/lcov-report/config/sources/cliOverrideConfigSource.ts.html +1 -1
  87. package/reports/lcov-report/config/sources/configSource.ts.html +1 -1
  88. package/reports/lcov-report/config/sources/envVarConfigSource.ts.html +1 -1
  89. package/reports/lcov-report/config/sources/fileConfigSource.ts.html +1 -1
  90. package/reports/lcov-report/config/sources/index.html +1 -1
  91. package/reports/lcov-report/config/unknownEnvError.ts.html +1 -1
  92. package/reports/lcov-report/index.html +63 -33
  93. package/reports/lcov-report/registry/index.html +1 -1
  94. package/reports/lcov-report/registry/scenarioRegistry.ts.html +1 -1
  95. package/reports/lcov-report/reporting/consoleReporter.ts.html +1 -1
  96. package/reports/lcov-report/reporting/index.html +1 -1
  97. package/reports/lcov-report/reporting/junitReporter.ts.html +1 -1
  98. package/reports/lcov-report/runner/aiEnhancementStep.ts.html +1 -1
  99. package/reports/lcov-report/runner/batchRunner.ts.html +1 -1
  100. package/reports/lcov-report/runner/index.html +15 -15
  101. package/reports/lcov-report/runner/scenarioRunner.ts.html +23 -14
  102. package/reports/lcov-report/scenarios/index.html +8 -8
  103. package/reports/lcov-report/scenarios/index.ts.html +20 -14
  104. package/reports/lcov-report/scenarios/one-admin/export-navigation.scenario.ts.html +1 -1
  105. package/reports/lcov-report/scenarios/one-admin/index.html +5 -5
  106. package/reports/lcov-report/scenarios/one-admin/index.ts.html +24 -6
  107. package/reports/lcov-report/scenarios/one-admin/page-models/AdminLandingPageModel.ts.html +1 -1
  108. package/reports/lcov-report/scenarios/one-admin/page-models/ExportPageModel.ts.html +1 -1
  109. package/reports/lcov-report/scenarios/one-admin/page-models/SelectSettingsPageModel.ts.html +1 -1
  110. package/reports/lcov-report/scenarios/one-admin/page-models/index.html +1 -1
  111. package/reports/lcov-report/scenarios/pipeline/index.html +131 -0
  112. package/reports/lcov-report/scenarios/pipeline/index.ts.html +121 -0
  113. package/reports/lcov-report/scenarios/pipeline/page-models/PipelinePageModel.ts.html +223 -0
  114. package/reports/lcov-report/scenarios/pipeline/page-models/index.html +116 -0
  115. package/reports/lcov-report/scenarios/pipeline/pipeline-task-navigation.scenario.ts.html +211 -0
  116. package/reports/lcov-report/types/config.ts.html +1 -1
  117. package/reports/lcov-report/types/index.html +1 -1
  118. package/reports/lcov.info +225 -40
  119. package/reports/registry/index.html +1 -1
  120. package/reports/registry/scenarioRegistry.ts.html +1 -1
  121. package/reports/reporting/consoleReporter.ts.html +1 -1
  122. package/reports/reporting/index.html +1 -1
  123. package/reports/reporting/junitReporter.ts.html +1 -1
  124. package/reports/runner/aiEnhancementStep.ts.html +1 -1
  125. package/reports/runner/batchRunner.ts.html +1 -1
  126. package/reports/runner/index.html +15 -15
  127. package/reports/runner/scenarioRunner.ts.html +23 -14
  128. package/reports/scenarios/index.html +8 -8
  129. package/reports/scenarios/index.ts.html +20 -14
  130. package/reports/scenarios/one-admin/export-navigation.scenario.ts.html +1 -1
  131. package/reports/scenarios/one-admin/index.html +5 -5
  132. package/reports/scenarios/one-admin/index.ts.html +24 -6
  133. package/reports/scenarios/one-admin/page-models/AdminLandingPageModel.ts.html +1 -1
  134. package/reports/scenarios/one-admin/page-models/ExportPageModel.ts.html +1 -1
  135. package/reports/scenarios/one-admin/page-models/SelectSettingsPageModel.ts.html +1 -1
  136. package/reports/scenarios/one-admin/page-models/index.html +1 -1
  137. package/reports/scenarios/pipeline/index.html +131 -0
  138. package/reports/scenarios/pipeline/index.ts.html +121 -0
  139. package/reports/scenarios/pipeline/page-models/PipelinePageModel.ts.html +223 -0
  140. package/reports/scenarios/pipeline/page-models/index.html +116 -0
  141. package/reports/scenarios/pipeline/pipeline-task-navigation.scenario.ts.html +211 -0
  142. package/reports/types/config.ts.html +1 -1
  143. package/reports/types/index.html +1 -1
  144. package/test-report.xml +57 -53
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">63.33% </span>
26
+ <span class="strong">62.8% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>76/120</span>
28
+ <span class='fraction'>76/121</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">40% </span>
33
+ <span class="strong">38.46% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>10/25</span>
35
+ <span class='fraction'>10/26</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">66.07% </span>
47
+ <span class="strong">65.48% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>74/112</span>
49
+ <span class='fraction'>74/113</span>
50
50
  </div>
51
51
 
52
52
 
@@ -110,17 +110,17 @@
110
110
 
111
111
  <tr>
112
112
  <td class="file low" data-value="scenarioRunner.ts"><a href="scenarioRunner.ts.html">scenarioRunner.ts</a></td>
113
- <td data-value="45" class="pic low">
114
- <div class="chart"><div class="cover-fill" style="width: 45%"></div><div class="cover-empty" style="width: 55%"></div></div>
113
+ <td data-value="44.44" class="pic low">
114
+ <div class="chart"><div class="cover-fill" style="width: 44%"></div><div class="cover-empty" style="width: 56%"></div></div>
115
115
  </td>
116
- <td data-value="45" class="pct low">45%</td>
117
- <td data-value="80" class="abs low">36/80</td>
118
- <td data-value="28.57" class="pct low">28.57%</td>
119
- <td data-value="21" class="abs low">6/21</td>
116
+ <td data-value="44.44" class="pct low">44.44%</td>
117
+ <td data-value="81" class="abs low">36/81</td>
118
+ <td data-value="27.27" class="pct low">27.27%</td>
119
+ <td data-value="22" class="abs low">6/22</td>
120
120
  <td data-value="54.54" class="pct medium">54.54%</td>
121
121
  <td data-value="11" class="abs medium">6/11</td>
122
- <td data-value="48.64" class="pct low">48.64%</td>
123
- <td data-value="74" class="abs low">36/74</td>
122
+ <td data-value="48" class="pct low">48%</td>
123
+ <td data-value="75" class="abs low">36/75</td>
124
124
  </tr>
125
125
 
126
126
  </tbody>
@@ -131,7 +131,7 @@
131
131
  <div class='footer quiet pad2 space-top1 center small'>
132
132
  Code coverage generated by
133
133
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
134
- at 2026-05-15T07:24:15.296Z
134
+ at 2026-05-21T15:52:17.110Z
135
135
  </div>
136
136
  <script src="../prettify.js"></script>
137
137
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">45% </span>
26
+ <span class="strong">44.44% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>36/80</span>
28
+ <span class='fraction'>36/81</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">28.57% </span>
33
+ <span class="strong">27.27% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>6/21</span>
35
+ <span class='fraction'>6/22</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">48.64% </span>
47
+ <span class="strong">48% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>36/74</span>
49
+ <span class='fraction'>36/75</span>
50
50
  </div>
51
51
 
52
52
 
@@ -260,7 +260,10 @@
260
260
  <a name='L195'></a><a href='#L195'>195</a>
261
261
  <a name='L196'></a><a href='#L196'>196</a>
262
262
  <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
264
267
  <span class="cline-any cline-yes">2x</span>
265
268
  <span class="cline-any cline-neutral">&nbsp;</span>
266
269
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -363,6 +366,7 @@
363
366
  <span class="cline-any cline-neutral">&nbsp;</span>
364
367
  <span class="cline-any cline-neutral">&nbsp;</span>
365
368
  <span class="cline-any cline-neutral">&nbsp;</span>
369
+ <span class="cline-any cline-neutral">&nbsp;</span>
366
370
  <span class="cline-any cline-no">&nbsp;</span>
367
371
  <span class="cline-any cline-no">&nbsp;</span>
368
372
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -386,6 +390,8 @@
386
390
  <span class="cline-any cline-no">&nbsp;</span>
387
391
  <span class="cline-any cline-no">&nbsp;</span>
388
392
  <span class="cline-any cline-neutral">&nbsp;</span>
393
+ <span class="cline-any cline-no">&nbsp;</span>
394
+ <span class="cline-any cline-neutral">&nbsp;</span>
389
395
  <span class="cline-any cline-neutral">&nbsp;</span>
390
396
  <span class="cline-any cline-neutral">&nbsp;</span>
391
397
  <span class="cline-any cline-no">&nbsp;</span>
@@ -555,11 +561,12 @@ export class ScenarioRunner {
555
561
  <span class="cstat-no" title="statement not covered" > await forceGarbageCollection(page);</span>
556
562
  <span class="cstat-no" title="statement not covered" > paths.after = await profiler.captureSnapshot('after');</span>
557
563
  &nbsp;
558
- const report = <span class="cstat-no" title="statement not covered" >await profiler.compare(</span>
559
- 'before',
560
- 'after',
561
- this.config.runner.topN,
562
- );
564
+ const report = <span class="cstat-no" title="statement not covered" >await profiler.compare({</span>
565
+ beforeLabel: 'before',
566
+ afterLabel: 'after',
567
+ topN: this.config.runner.topN,
568
+ originAllowList: [new URL(this.config.env.baseUrl).origin],
569
+ });
563
570
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (report) <span class="cstat-no" title="statement not covered" >await this.writeReport(report, scenario);</span></span>
564
571
  <span class="cstat-no" title="statement not covered" > return report;</span>
565
572
  }
@@ -580,7 +587,9 @@ export class ScenarioRunner {
580
587
  instanceId: this.config.env.instanceId,
581
588
  });
582
589
  <span class="cstat-no" title="statement not covered" > process.stderr.write(`[scenarioRunner] post-login URL = ${page.url()}\n`);</span>
583
- <span class="cstat-no" title="statement not covered" > await page.waitForURL(`**${scenario.url()}**`, { timeout: 30_000 });</span>
590
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!page.url().includes(scenario.url())) {</span>
591
+ <span class="cstat-no" title="statement not covered" > await page.goto(scenario.url(), { waitUntil: 'load', timeout: 30_000 });</span>
592
+ }
584
593
  <span class="cstat-no" title="statement not covered" > process.stderr.write(</span>
585
594
  `[scenarioRunner] settled URL before iframe = ${page.url()}\n`,
586
595
  );
@@ -661,7 +670,7 @@ export class ScenarioRunner {
661
670
  <div class='footer quiet pad2 space-top1 center small'>
662
671
  Code coverage generated by
663
672
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
664
- at 2026-05-15T07:24:15.296Z
673
+ at 2026-05-21T15:52:17.110Z
665
674
  </div>
666
675
  <script src="../prettify.js"></script>
667
676
  <script>
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/1</span>
28
+ <span class='fraction'>0/5</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/0</span>
42
+ <span class='fraction'>0/1</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/1</span>
49
+ <span class='fraction'>0/5</span>
50
50
  </div>
51
51
 
52
52
 
@@ -84,13 +84,13 @@
84
84
  <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
85
85
  </td>
86
86
  <td data-value="0" class="pct low">0%</td>
87
- <td data-value="1" class="abs low">0/1</td>
88
- <td data-value="100" class="pct high">100%</td>
89
- <td data-value="0" class="abs high">0/0</td>
87
+ <td data-value="5" class="abs low">0/5</td>
90
88
  <td data-value="100" class="pct high">100%</td>
91
89
  <td data-value="0" class="abs high">0/0</td>
92
90
  <td data-value="0" class="pct low">0%</td>
93
91
  <td data-value="1" class="abs low">0/1</td>
92
+ <td data-value="0" class="pct low">0%</td>
93
+ <td data-value="5" class="abs low">0/5</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-05-15T07:24:15.296Z
104
+ at 2026-05-21T15:52:17.110Z
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">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/1</span>
28
+ <span class='fraction'>0/5</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/0</span>
42
+ <span class='fraction'>0/1</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/1</span>
49
+ <span class='fraction'>0/5</span>
50
50
  </div>
51
51
 
52
52
 
@@ -71,22 +71,28 @@
71
71
  <a name='L6'></a><a href='#L6'>6</a>
72
72
  <a name='L7'></a><a href='#L7'>7</a>
73
73
  <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
75
77
  <span class="cline-any cline-neutral">&nbsp;</span>
76
78
  <span class="cline-any cline-neutral">&nbsp;</span>
77
79
  <span class="cline-any cline-neutral">&nbsp;</span>
78
80
  <span class="cline-any cline-no">&nbsp;</span>
79
- <span class="cline-any cline-neutral">&nbsp;</span>
80
- <span class="cline-any cline-neutral">&nbsp;</span>
81
+ <span class="cline-any cline-no">&nbsp;</span>
82
+ <span class="cline-any cline-no">&nbsp;</span>
83
+ <span class="cline-any cline-no">&nbsp;</span>
84
+ <span class="cline-any cline-no">&nbsp;</span>
81
85
  <span class="cline-any cline-neutral">&nbsp;</span>
82
86
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { ScenarioRegistry } from '../registry/scenarioRegistry.js';
83
- import { oneAdminScenarios } from './one-admin/index.js';
87
+ import { oneAdminScenarioGroup } from './one-admin/index.js';
88
+ import { pipelineScenarioGroup } from './pipeline/index.js';
84
89
  &nbsp;
85
- export const scenarioRegistry: ScenarioRegistry =
86
- <span class="cstat-no" title="statement not covered" > new ScenarioRegistry().register({</span>
87
- microapp: 'one-admin',
88
- scenarios: oneAdminScenarios,
89
- });
90
+ export const scenarioRegistry = <span class="cstat-no" title="statement not covered" >(<span class="fstat-no" title="function not covered" >(): ScenarioRegistry =&gt; {</span></span>
91
+ const registry = <span class="cstat-no" title="statement not covered" >new ScenarioRegistry();</span>
92
+ <span class="cstat-no" title="statement not covered" > registry.register(oneAdminScenarioGroup);</span>
93
+ <span class="cstat-no" title="statement not covered" > registry.register(pipelineScenarioGroup);</span>
94
+ <span class="cstat-no" title="statement not covered" > return registry;</span>
95
+ })();
90
96
  &nbsp;</pre></td></tr></table></pre>
91
97
 
92
98
  <div class='push'></div><!-- for sticky footer -->
@@ -94,7 +100,7 @@ export const scenarioRegistry: ScenarioRegistry =
94
100
  <div class='footer quiet pad2 space-top1 center small'>
95
101
  Code coverage generated by
96
102
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
97
- at 2026-05-15T07:24:15.296Z
103
+ at 2026-05-21T15:52:17.110Z
98
104
  </div>
99
105
  <script src="../prettify.js"></script>
100
106
  <script>
@@ -241,7 +241,7 @@ export const exportNavigationScenario: MicroappLeakScenario = <span class="cstat
241
241
  <div class='footer quiet pad2 space-top1 center small'>
242
242
  Code coverage generated by
243
243
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
244
- at 2026-05-15T07:24:15.296Z
244
+ at 2026-05-21T15:52:17.110Z
245
245
  </div>
246
246
  <script src="../../prettify.js"></script>
247
247
  <script>
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/19</span>
28
+ <span class='fraction'>0/20</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">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/19</span>
49
+ <span class='fraction'>0/20</span>
50
50
  </div>
51
51
 
52
52
 
@@ -99,13 +99,13 @@
99
99
  <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
100
100
  </td>
101
101
  <td data-value="0" class="pct low">0%</td>
102
- <td data-value="1" class="abs low">0/1</td>
102
+ <td data-value="2" class="abs low">0/2</td>
103
103
  <td data-value="100" class="pct high">100%</td>
104
104
  <td data-value="0" class="abs high">0/0</td>
105
105
  <td data-value="100" class="pct high">100%</td>
106
106
  <td data-value="0" class="abs high">0/0</td>
107
107
  <td data-value="0" class="pct low">0%</td>
108
- <td data-value="1" class="abs low">0/1</td>
108
+ <td data-value="2" class="abs low">0/2</td>
109
109
  </tr>
110
110
 
111
111
  </tbody>
@@ -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-05-15T07:24:15.296Z
119
+ at 2026-05-21T15:52:17.110Z
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
122
122
  <script>
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/1</span>
28
+ <span class='fraction'>0/2</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">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/1</span>
49
+ <span class='fraction'>0/2</span>
50
50
  </div>
51
51
 
52
52
 
@@ -69,18 +69,36 @@
69
69
  <a name='L4'></a><a href='#L4'>4</a>
70
70
  <a name='L5'></a><a href='#L5'>5</a>
71
71
  <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
79
+ <span class="cline-any cline-neutral">&nbsp;</span>
73
80
  <span class="cline-any cline-neutral">&nbsp;</span>
74
81
  <span class="cline-any cline-neutral">&nbsp;</span>
75
82
  <span class="cline-any cline-no">&nbsp;</span>
76
83
  <span class="cline-any cline-neutral">&nbsp;</span>
77
84
  <span class="cline-any cline-neutral">&nbsp;</span>
78
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { MicroappLeakScenario } from '../../types/scenario.js';
85
+ <span class="cline-any cline-neutral">&nbsp;</span>
86
+ <span class="cline-any cline-no">&nbsp;</span>
87
+ <span class="cline-any cline-neutral">&nbsp;</span>
88
+ <span class="cline-any cline-neutral">&nbsp;</span>
89
+ <span class="cline-any cline-neutral">&nbsp;</span>
90
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { ScenarioGroup } from '../../registry/scenarioRegistry.js';
91
+ import type { MicroappLeakScenario } from '../../types/scenario.js';
79
92
  import { exportNavigationScenario } from './export-navigation.scenario.js';
80
93
  &nbsp;
81
- export const oneAdminScenarios: readonly MicroappLeakScenario[] = <span class="cstat-no" title="statement not covered" >[</span>
94
+ const oneAdminScenarios: readonly MicroappLeakScenario[] = <span class="cstat-no" title="statement not covered" >[</span>
82
95
  exportNavigationScenario,
83
96
  ];
97
+ &nbsp;
98
+ export const oneAdminScenarioGroup: ScenarioGroup = <span class="cstat-no" title="statement not covered" >{</span>
99
+ microapp: 'one-admin',
100
+ scenarios: oneAdminScenarios,
101
+ };
84
102
  &nbsp;</pre></td></tr></table></pre>
85
103
 
86
104
  <div class='push'></div><!-- for sticky footer -->
@@ -88,7 +106,7 @@ export const oneAdminScenarios: readonly MicroappLeakScenario[] = <span class="c
88
106
  <div class='footer quiet pad2 space-top1 center small'>
89
107
  Code coverage generated by
90
108
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
91
- at 2026-05-15T07:24:15.296Z
109
+ at 2026-05-21T15:52:17.110Z
92
110
  </div>
93
111
  <script src="../../prettify.js"></script>
94
112
  <script>
@@ -142,7 +142,7 @@ export class AdminLandingPageModel {
142
142
  <div class='footer quiet pad2 space-top1 center small'>
143
143
  Code coverage generated by
144
144
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
145
- at 2026-05-15T07:24:15.296Z
145
+ at 2026-05-21T15:52:17.110Z
146
146
  </div>
147
147
  <script src="../../../prettify.js"></script>
148
148
  <script>
@@ -148,7 +148,7 @@ export class ExportPageModel {
148
148
  <div class='footer quiet pad2 space-top1 center small'>
149
149
  Code coverage generated by
150
150
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
151
- at 2026-05-15T07:24:15.296Z
151
+ at 2026-05-21T15:52:17.110Z
152
152
  </div>
153
153
  <script src="../../../prettify.js"></script>
154
154
  <script>
@@ -160,7 +160,7 @@ export class SelectSettingsPageModel {
160
160
  <div class='footer quiet pad2 space-top1 center small'>
161
161
  Code coverage generated by
162
162
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
163
- at 2026-05-15T07:24:15.296Z
163
+ at 2026-05-21T15:52:17.110Z
164
164
  </div>
165
165
  <script src="../../../prettify.js"></script>
166
166
  <script>
@@ -131,7 +131,7 @@
131
131
  <div class='footer quiet pad2 space-top1 center small'>
132
132
  Code coverage generated by
133
133
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
134
- at 2026-05-15T07:24:15.296Z
134
+ at 2026-05-21T15:52:17.110Z
135
135
  </div>
136
136
  <script src="../../../prettify.js"></script>
137
137
  <script>
@@ -0,0 +1,131 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for scenarios/pipeline</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> scenarios/pipeline</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">0% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>0/16</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">0% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/1</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">0% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/5</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">0% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>0/16</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 low'></div>
65
+ <div class="pad1">
66
+ <table class="coverage-summary">
67
+ <thead>
68
+ <tr>
69
+ <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
70
+ <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
71
+ <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
72
+ <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
73
+ <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
74
+ <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
75
+ <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
76
+ <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
77
+ <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
78
+ <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
79
+ </tr>
80
+ </thead>
81
+ <tbody><tr>
82
+ <td class="file low" data-value="index.ts"><a href="index.ts.html">index.ts</a></td>
83
+ <td data-value="0" class="pic low">
84
+ <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
85
+ </td>
86
+ <td data-value="0" class="pct low">0%</td>
87
+ <td data-value="2" class="abs low">0/2</td>
88
+ <td data-value="100" class="pct high">100%</td>
89
+ <td data-value="0" class="abs high">0/0</td>
90
+ <td data-value="100" class="pct high">100%</td>
91
+ <td data-value="0" class="abs high">0/0</td>
92
+ <td data-value="0" class="pct low">0%</td>
93
+ <td data-value="2" class="abs low">0/2</td>
94
+ </tr>
95
+
96
+ <tr>
97
+ <td class="file low" data-value="pipeline-task-navigation.scenario.ts"><a href="pipeline-task-navigation.scenario.ts.html">pipeline-task-navigation.scenario.ts</a></td>
98
+ <td data-value="0" class="pic low">
99
+ <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
100
+ </td>
101
+ <td data-value="0" class="pct low">0%</td>
102
+ <td data-value="14" class="abs low">0/14</td>
103
+ <td data-value="0" class="pct low">0%</td>
104
+ <td data-value="1" class="abs low">0/1</td>
105
+ <td data-value="0" class="pct low">0%</td>
106
+ <td data-value="5" class="abs low">0/5</td>
107
+ <td data-value="0" class="pct low">0%</td>
108
+ <td data-value="14" class="abs low">0/14</td>
109
+ </tr>
110
+
111
+ </tbody>
112
+ </table>
113
+ </div>
114
+ <div class='push'></div><!-- for sticky footer -->
115
+ </div><!-- /wrapper -->
116
+ <div class='footer quiet pad2 space-top1 center small'>
117
+ Code coverage generated by
118
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
+ at 2026-05-21T15:52:17.110Z
120
+ </div>
121
+ <script src="../../prettify.js"></script>
122
+ <script>
123
+ window.onload = function () {
124
+ prettyPrint();
125
+ };
126
+ </script>
127
+ <script src="../../sorter.js"></script>
128
+ <script src="../../block-navigation.js"></script>
129
+ </body>
130
+ </html>
131
+