@elliemae/encw-leak-runner 1.0.3 → 1.0.4
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.
- package/CHANGELOG.md +14 -0
- package/README.md +34 -17
- package/dist/.tsbuildinfo +1 -1
- package/dist/bin/leak-runner.js +80 -9
- package/dist/cjs/cli/commands/runCommand.js +7 -2
- package/dist/cjs/config/requiredEnvParams.js +14 -2
- package/dist/cjs/config/runnerConfigLoader.js +6 -3
- package/dist/cjs/config/runnerConfigSchema.js +5 -1
- package/dist/cjs/config/unknownEnvError.js +36 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/runner/scenarioRunner.js +9 -1
- package/dist/cjs/scenarios/one-admin/export-navigation.scenario.js +10 -1
- package/dist/cjs/scenarios/one-admin/page-models/AdminLandingPageModel.js +42 -0
- package/dist/cjs/scenarios/one-admin/page-models/index.js +2 -0
- package/dist/esm/cli/commands/runCommand.js +11 -3
- package/dist/esm/config/requiredEnvParams.js +14 -2
- package/dist/esm/config/runnerConfigLoader.js +6 -3
- package/dist/esm/config/runnerConfigSchema.js +5 -1
- package/dist/esm/config/unknownEnvError.js +16 -0
- package/dist/esm/index.js +3 -1
- package/dist/esm/runner/scenarioRunner.js +9 -1
- package/dist/esm/scenarios/one-admin/export-navigation.scenario.js +11 -1
- package/dist/esm/scenarios/one-admin/page-models/AdminLandingPageModel.js +22 -0
- package/dist/esm/scenarios/one-admin/page-models/index.js +2 -0
- package/dist/types/lib/config/requiredEnvParams.d.ts +4 -1
- package/dist/types/lib/config/runnerConfigLoader.d.ts +1 -0
- package/dist/types/lib/config/runnerConfigSchema.d.ts +7 -0
- package/dist/types/lib/config/unknownEnvError.d.ts +5 -0
- package/dist/types/lib/index.d.ts +1 -1
- package/dist/types/lib/runner/aiEnhancementStep.d.ts +4 -3
- package/dist/types/lib/scenarios/one-admin/page-models/AdminLandingPageModel.d.ts +8 -0
- package/dist/types/lib/scenarios/one-admin/page-models/index.d.ts +1 -0
- package/dist/types/lib/types/scenario.d.ts +1 -0
- package/leak-runner.config.json +18 -0
- package/leak-runner.schema.json +5 -0
- package/lib/cli/commands/runCommand.ts +15 -2
- package/lib/config/requiredEnvParams.ts +15 -2
- package/lib/config/runnerConfigLoader.ts +12 -5
- package/lib/config/runnerConfigSchema.ts +4 -0
- package/lib/config/tests/fileConfigSource.test.ts +26 -0
- package/lib/config/tests/requiredEnvParams.test.ts +90 -2
- package/lib/config/tests/runnerConfigLoader.test.ts +30 -0
- package/lib/config/unknownEnvError.ts +13 -0
- package/lib/index.ts +1 -0
- package/lib/runner/aiEnhancementStep.ts +4 -3
- package/lib/runner/scenarioRunner.ts +8 -1
- package/lib/scenarios/one-admin/export-navigation.scenario.ts +13 -1
- package/lib/scenarios/one-admin/page-models/AdminLandingPageModel.ts +24 -0
- package/lib/scenarios/one-admin/page-models/index.ts +1 -0
- package/lib/types/scenario.ts +1 -0
- package/package.json +3 -3
- package/reports/analysis/index.html +1 -1
- package/reports/analysis/thresholdEvaluator.ts.html +1 -1
- package/reports/browser/iframeHeapProfiler.ts.html +1 -1
- package/reports/browser/index.html +1 -1
- package/reports/cli/commands/index.html +3 -3
- package/reports/cli/commands/listCommand.ts.html +1 -1
- package/reports/cli/commands/runCommand.ts.html +44 -5
- package/reports/cli/index.html +1 -1
- package/reports/cli/index.ts.html +1 -1
- package/reports/config/index.html +36 -21
- package/reports/config/missingRequiredParamError.ts.html +4 -4
- package/reports/config/requiredEnvParams.ts.html +67 -28
- package/reports/config/runnerConfigLoader.ts.html +38 -17
- package/reports/config/runnerConfigSchema.ts.html +18 -6
- package/reports/config/sources/cliOverrideConfigSource.ts.html +1 -1
- package/reports/config/sources/configSource.ts.html +2 -2
- package/reports/config/sources/envVarConfigSource.ts.html +1 -1
- package/reports/config/sources/fileConfigSource.ts.html +13 -13
- package/reports/config/sources/index.html +1 -1
- package/reports/config/unknownEnvError.ts.html +124 -0
- package/reports/index.html +35 -35
- package/reports/lcov-report/analysis/index.html +1 -1
- package/reports/lcov-report/analysis/thresholdEvaluator.ts.html +1 -1
- package/reports/lcov-report/browser/iframeHeapProfiler.ts.html +1 -1
- package/reports/lcov-report/browser/index.html +1 -1
- package/reports/lcov-report/cli/commands/index.html +3 -3
- package/reports/lcov-report/cli/commands/listCommand.ts.html +1 -1
- package/reports/lcov-report/cli/commands/runCommand.ts.html +44 -5
- package/reports/lcov-report/cli/index.html +1 -1
- package/reports/lcov-report/cli/index.ts.html +1 -1
- package/reports/lcov-report/config/index.html +36 -21
- package/reports/lcov-report/config/missingRequiredParamError.ts.html +4 -4
- package/reports/lcov-report/config/requiredEnvParams.ts.html +67 -28
- package/reports/lcov-report/config/runnerConfigLoader.ts.html +38 -17
- package/reports/lcov-report/config/runnerConfigSchema.ts.html +18 -6
- package/reports/lcov-report/config/sources/cliOverrideConfigSource.ts.html +1 -1
- package/reports/lcov-report/config/sources/configSource.ts.html +2 -2
- package/reports/lcov-report/config/sources/envVarConfigSource.ts.html +1 -1
- package/reports/lcov-report/config/sources/fileConfigSource.ts.html +13 -13
- package/reports/lcov-report/config/sources/index.html +1 -1
- package/reports/lcov-report/config/unknownEnvError.ts.html +124 -0
- package/reports/lcov-report/index.html +35 -35
- package/reports/lcov-report/registry/index.html +1 -1
- package/reports/lcov-report/registry/scenarioRegistry.ts.html +1 -1
- package/reports/lcov-report/reporting/consoleReporter.ts.html +1 -1
- package/reports/lcov-report/reporting/index.html +1 -1
- package/reports/lcov-report/reporting/junitReporter.ts.html +1 -1
- package/reports/lcov-report/runner/aiEnhancementStep.ts.html +8 -5
- package/reports/lcov-report/runner/batchRunner.ts.html +1 -1
- package/reports/lcov-report/runner/index.html +15 -15
- package/reports/lcov-report/runner/scenarioRunner.ts.html +32 -11
- package/reports/lcov-report/scenarios/index.html +1 -1
- package/reports/lcov-report/scenarios/index.ts.html +1 -1
- package/reports/lcov-report/scenarios/one-admin/export-navigation.scenario.ts.html +44 -8
- package/reports/lcov-report/scenarios/one-admin/index.html +11 -11
- package/reports/lcov-report/scenarios/one-admin/index.ts.html +1 -1
- package/reports/lcov-report/scenarios/one-admin/page-models/AdminLandingPageModel.ts.html +157 -0
- package/reports/lcov-report/scenarios/one-admin/page-models/ExportPageModel.ts.html +1 -1
- package/reports/lcov-report/scenarios/one-admin/page-models/SelectSettingsPageModel.ts.html +1 -1
- package/reports/lcov-report/scenarios/one-admin/page-models/index.html +19 -4
- package/reports/lcov-report/types/config.ts.html +1 -1
- package/reports/lcov-report/types/index.html +1 -1
- package/reports/lcov.info +302 -230
- package/reports/registry/index.html +1 -1
- package/reports/registry/scenarioRegistry.ts.html +1 -1
- package/reports/reporting/consoleReporter.ts.html +1 -1
- package/reports/reporting/index.html +1 -1
- package/reports/reporting/junitReporter.ts.html +1 -1
- package/reports/runner/aiEnhancementStep.ts.html +8 -5
- package/reports/runner/batchRunner.ts.html +1 -1
- package/reports/runner/index.html +15 -15
- package/reports/runner/scenarioRunner.ts.html +32 -11
- package/reports/scenarios/index.html +1 -1
- package/reports/scenarios/index.ts.html +1 -1
- package/reports/scenarios/one-admin/export-navigation.scenario.ts.html +44 -8
- package/reports/scenarios/one-admin/index.html +11 -11
- package/reports/scenarios/one-admin/index.ts.html +1 -1
- package/reports/scenarios/one-admin/page-models/AdminLandingPageModel.ts.html +157 -0
- package/reports/scenarios/one-admin/page-models/ExportPageModel.ts.html +1 -1
- package/reports/scenarios/one-admin/page-models/SelectSettingsPageModel.ts.html +1 -1
- package/reports/scenarios/one-admin/page-models/index.html +19 -4
- package/reports/types/config.ts.html +1 -1
- package/reports/types/index.html +1 -1
- package/test-report.xml +67 -54
|
@@ -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-
|
|
119
|
+
at 2026-05-13T17:06:38.095Z
|
|
120
120
|
</div>
|
|
121
121
|
<script src="../prettify.js"></script>
|
|
122
122
|
<script>
|
|
@@ -256,7 +256,7 @@ export class JunitReporter implements Reporter {
|
|
|
256
256
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
257
257
|
Code coverage generated by
|
|
258
258
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
259
|
-
at 2026-05-
|
|
259
|
+
at 2026-05-13T17:06:38.095Z
|
|
260
260
|
</div>
|
|
261
261
|
<script src="../prettify.js"></script>
|
|
262
262
|
<script>
|
|
@@ -102,7 +102,8 @@
|
|
|
102
102
|
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
103
|
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
104
|
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
-
<a name='L40'></a><a href='#L40'>40</a
|
|
105
|
+
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
+
<a name='L41'></a><a href='#L41'>41</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
106
107
|
<span class="cline-any cline-neutral"> </span>
|
|
107
108
|
<span class="cline-any cline-neutral"> </span>
|
|
108
109
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -122,6 +123,7 @@
|
|
|
122
123
|
<span class="cline-any cline-neutral"> </span>
|
|
123
124
|
<span class="cline-any cline-neutral"> </span>
|
|
124
125
|
<span class="cline-any cline-neutral"> </span>
|
|
126
|
+
<span class="cline-any cline-neutral"> </span>
|
|
125
127
|
<span class="cline-any cline-yes">7x</span>
|
|
126
128
|
<span class="cline-any cline-neutral"> </span>
|
|
127
129
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -157,9 +159,10 @@ import type { RunnerConfig } from '../types/config.js';
|
|
|
157
159
|
*
|
|
158
160
|
* If the config carries no AI config, return the report's original markdown
|
|
159
161
|
* untouched (no AI module loaded).
|
|
160
|
-
* @param report
|
|
161
|
-
* @param config
|
|
162
|
-
* @param scenarioName
|
|
162
|
+
* @param {ComparisonReport} report - Heap-doctor comparison report to enhance.
|
|
163
|
+
* @param {RunnerConfig} config - Runner config; only `config.ai` is consulted.
|
|
164
|
+
* @param {string} scenarioName - Scenario name used in stderr warnings.
|
|
165
|
+
* @returns {Promise<string>} Markdown for the report, with or without AI section.
|
|
163
166
|
*/
|
|
164
167
|
export async function enhanceMarkdownIfConfigured(
|
|
165
168
|
report: ComparisonReport,
|
|
@@ -187,7 +190,7 @@ export async function enhanceMarkdownIfConfigured(
|
|
|
187
190
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
188
191
|
Code coverage generated by
|
|
189
192
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
190
|
-
at 2026-05-
|
|
193
|
+
at 2026-05-13T17:06:38.095Z
|
|
191
194
|
</div>
|
|
192
195
|
<script src="../prettify.js"></script>
|
|
193
196
|
<script>
|
|
@@ -283,7 +283,7 @@ export class BatchRunner {
|
|
|
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-05-
|
|
286
|
+
at 2026-05-13T17:06:38.095Z
|
|
287
287
|
</div>
|
|
288
288
|
<script src="../prettify.js"></script>
|
|
289
289
|
<script>
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">63.02% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>75/119</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">40% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>10/
|
|
35
|
+
<span class='fraction'>10/25</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">
|
|
47
|
+
<span class="strong">65.76% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>73/111</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="
|
|
114
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
113
|
+
<td data-value="44.3" 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="
|
|
117
|
-
<td data-value="
|
|
118
|
-
<td data-value="
|
|
119
|
-
<td data-value="
|
|
116
|
+
<td data-value="44.3" class="pct low">44.3%</td>
|
|
117
|
+
<td data-value="79" class="abs low">35/79</td>
|
|
118
|
+
<td data-value="28.57" class="pct low">28.57%</td>
|
|
119
|
+
<td data-value="21" class="abs low">6/21</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="
|
|
123
|
-
<td data-value="
|
|
122
|
+
<td data-value="47.94" class="pct low">47.94%</td>
|
|
123
|
+
<td data-value="73" class="abs low">35/73</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-
|
|
134
|
+
at 2026-05-13T17:06:38.095Z
|
|
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">
|
|
26
|
+
<span class="strong">44.3% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>35/79</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">28.57% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>6/
|
|
35
|
+
<span class='fraction'>6/21</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">
|
|
47
|
+
<span class="strong">47.94% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>35/73</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -252,7 +252,14 @@
|
|
|
252
252
|
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
253
|
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
254
|
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
-
<a name='L190'></a><a href='#L190'>190</a
|
|
255
|
+
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
+
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
+
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
+
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
+
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
+
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
+
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
+
<a name='L197'></a><a href='#L197'>197</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
|
|
256
263
|
<span class="cline-any cline-yes">2x</span>
|
|
257
264
|
<span class="cline-any cline-neutral"> </span>
|
|
258
265
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -343,6 +350,8 @@
|
|
|
343
350
|
<span class="cline-any cline-neutral"> </span>
|
|
344
351
|
<span class="cline-any cline-neutral"> </span>
|
|
345
352
|
<span class="cline-any cline-no"> </span>
|
|
353
|
+
<span class="cline-any cline-neutral"> </span>
|
|
354
|
+
<span class="cline-any cline-no"> </span>
|
|
346
355
|
<span class="cline-any cline-no"> </span>
|
|
347
356
|
<span class="cline-any cline-no"> </span>
|
|
348
357
|
<span class="cline-any cline-no"> </span>
|
|
@@ -366,11 +375,16 @@
|
|
|
366
375
|
<span class="cline-any cline-neutral"> </span>
|
|
367
376
|
<span class="cline-any cline-yes">2x</span>
|
|
368
377
|
<span class="cline-any cline-yes">2x</span>
|
|
378
|
+
<span class="cline-any cline-no"> </span>
|
|
369
379
|
<span class="cline-any cline-neutral"> </span>
|
|
370
380
|
<span class="cline-any cline-neutral"> </span>
|
|
371
381
|
<span class="cline-any cline-neutral"> </span>
|
|
372
382
|
<span class="cline-any cline-neutral"> </span>
|
|
373
|
-
<span class="cline-any cline-
|
|
383
|
+
<span class="cline-any cline-no"> </span>
|
|
384
|
+
<span class="cline-any cline-no"> </span>
|
|
385
|
+
<span class="cline-any cline-no"> </span>
|
|
386
|
+
<span class="cline-any cline-neutral"> </span>
|
|
387
|
+
<span class="cline-any cline-neutral"> </span>
|
|
374
388
|
<span class="cline-any cline-neutral"> </span>
|
|
375
389
|
<span class="cline-any cline-no"> </span>
|
|
376
390
|
<span class="cline-any cline-no"> </span>
|
|
@@ -531,6 +545,8 @@ export class ScenarioRunner {
|
|
|
531
545
|
snapshotsDir,
|
|
532
546
|
);
|
|
533
547
|
|
|
548
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (scenario.setup) <span class="cstat-no" title="statement not covered" >await scenario.setup(page, frame);</span></span>
|
|
549
|
+
|
|
534
550
|
<span class="cstat-no" title="statement not covered" > paths.before = await profiler.captureSnapshot('before');</span>
|
|
535
551
|
<span class="cstat-no" title="statement not covered" > await this.repeatScenarioActions(scenario, page, frame);</span>
|
|
536
552
|
<span class="cstat-no" title="statement not covered" > await forceGarbageCollection(page);</span>
|
|
@@ -554,12 +570,17 @@ export class ScenarioRunner {
|
|
|
554
570
|
const pageSetup = new PageSetup();
|
|
555
571
|
|
|
556
572
|
await pageSetup.apply(page);
|
|
557
|
-
await
|
|
573
|
+
await page.unroute(PageSetup.BLOCKED_PATTERN);
|
|
574
|
+
<span class="cstat-no" title="statement not covered" > await auth.login(page, {</span>
|
|
558
575
|
username: this.config.env.userId,
|
|
559
576
|
password: this.config.env.password,
|
|
560
577
|
instanceId: this.config.env.instanceId,
|
|
561
578
|
});
|
|
562
|
-
|
|
579
|
+
<span class="cstat-no" title="statement not covered" > process.stderr.write(`[scenarioRunner] post-login URL = ${page.url()}\n`);</span>
|
|
580
|
+
<span class="cstat-no" title="statement not covered" > await page.waitForURL(`**${scenario.url()}**`, { timeout: 30_000 });</span>
|
|
581
|
+
<span class="cstat-no" title="statement not covered" > process.stderr.write(</span>
|
|
582
|
+
`[scenarioRunner] settled URL before iframe = ${page.url()}\n`,
|
|
583
|
+
);
|
|
563
584
|
|
|
564
585
|
const frame = <span class="cstat-no" title="statement not covered" >await resolveIframe(page, scenario.microappSelector);</span>
|
|
565
586
|
<span class="cstat-no" title="statement not covered" > fs.mkdirSync(snapshotsDir, { recursive: true });</span>
|
|
@@ -637,7 +658,7 @@ export class ScenarioRunner {
|
|
|
637
658
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
638
659
|
Code coverage generated by
|
|
639
660
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
640
|
-
at 2026-05-
|
|
661
|
+
at 2026-05-13T17:06:38.095Z
|
|
641
662
|
</div>
|
|
642
663
|
<script src="../prettify.js"></script>
|
|
643
664
|
<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-05-
|
|
104
|
+
at 2026-05-13T17:06:38.095Z
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../prettify.js"></script>
|
|
107
107
|
<script>
|
|
@@ -94,7 +94,7 @@ export const scenarioRegistry: ScenarioRegistry =
|
|
|
94
94
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
95
95
|
Code coverage generated by
|
|
96
96
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
97
|
-
at 2026-05-
|
|
97
|
+
at 2026-05-13T17:06:38.095Z
|
|
98
98
|
</div>
|
|
99
99
|
<script src="../prettify.js"></script>
|
|
100
100
|
<script>
|
|
@@ -25,28 +25,28 @@
|
|
|
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/
|
|
28
|
+
<span class='fraction'>0/18</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">0% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>0/
|
|
35
|
+
<span class='fraction'>0/1</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">0% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>0/
|
|
42
|
+
<span class='fraction'>0/5</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/
|
|
49
|
+
<span class='fraction'>0/18</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -101,7 +101,20 @@
|
|
|
101
101
|
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
102
|
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
103
|
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
-
<a name='L39'></a><a href='#L39'>39</a
|
|
104
|
+
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
+
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
+
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
+
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
+
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
+
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
+
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
+
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
+
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
+
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
+
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
+
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
+
<a name='L51'></a><a href='#L51'>51</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
117
|
+
<span class="cline-any cline-neutral"> </span>
|
|
105
118
|
<span class="cline-any cline-neutral"> </span>
|
|
106
119
|
<span class="cline-any cline-neutral"> </span>
|
|
107
120
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -118,6 +131,17 @@
|
|
|
118
131
|
<span class="cline-any cline-neutral"> </span>
|
|
119
132
|
<span class="cline-any cline-neutral"> </span>
|
|
120
133
|
<span class="cline-any cline-no"> </span>
|
|
134
|
+
<span class="cline-any cline-neutral"> </span>
|
|
135
|
+
<span class="cline-any cline-neutral"> </span>
|
|
136
|
+
<span class="cline-any cline-neutral"> </span>
|
|
137
|
+
<span class="cline-any cline-no"> </span>
|
|
138
|
+
<span class="cline-any cline-no"> </span>
|
|
139
|
+
<span class="cline-any cline-no"> </span>
|
|
140
|
+
<span class="cline-any cline-no"> </span>
|
|
141
|
+
<span class="cline-any cline-no"> </span>
|
|
142
|
+
<span class="cline-any cline-neutral"> </span>
|
|
143
|
+
<span class="cline-any cline-neutral"> </span>
|
|
144
|
+
<span class="cline-any cline-no"> </span>
|
|
121
145
|
<span class="cline-any cline-no"> </span>
|
|
122
146
|
<span class="cline-any cline-no"> </span>
|
|
123
147
|
<span class="cline-any cline-no"> </span>
|
|
@@ -141,6 +165,7 @@
|
|
|
141
165
|
<span class="cline-any cline-neutral"> </span>
|
|
142
166
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type { MicroappLeakScenario } from '../../types/scenario.js';
|
|
143
167
|
import {
|
|
168
|
+
AdminLandingPageModel,
|
|
144
169
|
SelectSettingsPageModel,
|
|
145
170
|
ExportPageModel,
|
|
146
171
|
} from './page-models/index.js';
|
|
@@ -152,9 +177,20 @@ export const exportNavigationScenario: MicroappLeakScenario = <span class="cstat
|
|
|
152
177
|
tags: ['critical'],
|
|
153
178
|
microappSelector: 'iframe#pui-iframe-container-emAdminUI',
|
|
154
179
|
|
|
155
|
-
url: <span class="fstat-no" title="function not covered" >() => <span class="cstat-no" title="statement not covered" >'</span>/admin
|
|
180
|
+
url: <span class="fstat-no" title="function not covered" >() => <span class="cstat-no" title="statement not covered" >'</span>/admin',</span>
|
|
181
|
+
|
|
182
|
+
<span class="fstat-no" title="function not covered" > async s</span>etup(page) {
|
|
183
|
+
<span class="cstat-no" title="statement not covered" > await AdminLandingPageModel.acceptCookiesIfShown(page);</span>
|
|
184
|
+
},
|
|
156
185
|
|
|
157
186
|
<span class="fstat-no" title="function not covered" > async a</span>ction(page, frame) {
|
|
187
|
+
const path = <span class="cstat-no" title="statement not covered" >new URL(page.url()).pathname.replace(/\/$/, '');</span>
|
|
188
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (path === '/admin') {</span>
|
|
189
|
+
const adminLanding = <span class="cstat-no" title="statement not covered" >new AdminLandingPageModel(frame);</span>
|
|
190
|
+
<span class="cstat-no" title="statement not covered" > await adminLanding.oneAdminConsoleOption.waitFor({ state: 'visible' });</span>
|
|
191
|
+
<span class="cstat-no" title="statement not covered" > await adminLanding.clickOneAdminConsole();</span>
|
|
192
|
+
}
|
|
193
|
+
|
|
158
194
|
const settings = <span class="cstat-no" title="statement not covered" >new SelectSettingsPageModel(frame);</span>
|
|
159
195
|
<span class="cstat-no" title="statement not covered" > await settings.container.waitFor({ state: 'visible' });</span>
|
|
160
196
|
<span class="cstat-no" title="statement not covered" > await settings.expandTreeItem('eFolder');</span>
|
|
@@ -184,7 +220,7 @@ export const exportNavigationScenario: MicroappLeakScenario = <span class="cstat
|
|
|
184
220
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
185
221
|
Code coverage generated by
|
|
186
222
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
187
|
-
at 2026-05-
|
|
223
|
+
at 2026-05-13T17:06:38.095Z
|
|
188
224
|
</div>
|
|
189
225
|
<script src="../../prettify.js"></script>
|
|
190
226
|
<script>
|
|
@@ -25,28 +25,28 @@
|
|
|
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/
|
|
28
|
+
<span class='fraction'>0/19</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">0% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>0/
|
|
35
|
+
<span class='fraction'>0/1</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">0% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>0/
|
|
42
|
+
<span class='fraction'>0/5</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/
|
|
49
|
+
<span class='fraction'>0/19</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="
|
|
88
|
-
<td data-value="
|
|
89
|
-
<td data-value="
|
|
87
|
+
<td data-value="18" class="abs low">0/18</td>
|
|
88
|
+
<td data-value="0" class="pct low">0%</td>
|
|
89
|
+
<td data-value="1" class="abs low">0/1</td>
|
|
90
90
|
<td data-value="0" class="pct low">0%</td>
|
|
91
|
-
<td data-value="
|
|
91
|
+
<td data-value="5" class="abs low">0/5</td>
|
|
92
92
|
<td data-value="0" class="pct low">0%</td>
|
|
93
|
-
<td data-value="
|
|
93
|
+
<td data-value="18" class="abs low">0/18</td>
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
96
|
<tr>
|
|
@@ -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-
|
|
119
|
+
at 2026-05-13T17:06:38.095Z
|
|
120
120
|
</div>
|
|
121
121
|
<script src="../../prettify.js"></script>
|
|
122
122
|
<script>
|
|
@@ -88,7 +88,7 @@ export const oneAdminScenarios: readonly MicroappLeakScenario[] = <span class="c
|
|
|
88
88
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
89
89
|
Code coverage generated by
|
|
90
90
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
91
|
-
at 2026-05-
|
|
91
|
+
at 2026-05-13T17:06:38.095Z
|
|
92
92
|
</div>
|
|
93
93
|
<script src="../../prettify.js"></script>
|
|
94
94
|
<script>
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for scenarios/one-admin/page-models/AdminLandingPageModel.ts</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="../../../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../../../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../../../index.html">All files</a> / <a href="index.html">scenarios/one-admin/page-models</a> AdminLandingPageModel.ts</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/6</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">100% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>0/0</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/4</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/6</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
|
+
<pre><table class="coverage">
|
|
66
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
+
<a name='L25'></a><a href='#L25'>25</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
91
|
+
<span class="cline-any cline-neutral"> </span>
|
|
92
|
+
<span class="cline-any cline-neutral"> </span>
|
|
93
|
+
<span class="cline-any cline-no"> </span>
|
|
94
|
+
<span class="cline-any cline-neutral"> </span>
|
|
95
|
+
<span class="cline-any cline-neutral"> </span>
|
|
96
|
+
<span class="cline-any cline-no"> </span>
|
|
97
|
+
<span class="cline-any cline-neutral"> </span>
|
|
98
|
+
<span class="cline-any cline-neutral"> </span>
|
|
99
|
+
<span class="cline-any cline-neutral"> </span>
|
|
100
|
+
<span class="cline-any cline-no"> </span>
|
|
101
|
+
<span class="cline-any cline-neutral"> </span>
|
|
102
|
+
<span class="cline-any cline-neutral"> </span>
|
|
103
|
+
<span class="cline-any cline-neutral"> </span>
|
|
104
|
+
<span class="cline-any cline-no"> </span>
|
|
105
|
+
<span class="cline-any cline-no"> </span>
|
|
106
|
+
<span class="cline-any cline-neutral"> </span>
|
|
107
|
+
<span class="cline-any cline-neutral"> </span>
|
|
108
|
+
<span class="cline-any cline-no"> </span>
|
|
109
|
+
<span class="cline-any cline-neutral"> </span>
|
|
110
|
+
<span class="cline-any cline-neutral"> </span>
|
|
111
|
+
<span class="cline-any cline-neutral"> </span>
|
|
112
|
+
<span class="cline-any cline-neutral"> </span>
|
|
113
|
+
<span class="cline-any cline-neutral"> </span>
|
|
114
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type { Frame, Locator, Page } from '@playwright/test';
|
|
115
|
+
|
|
116
|
+
export class AdminLandingPageModel {
|
|
117
|
+
<span class="fstat-no" title="function not covered" > constructor(p</span>rivate readonly <span class="cstat-no" title="statement not covered" >frame: Frame)</span> {}
|
|
118
|
+
|
|
119
|
+
<span class="fstat-no" title="function not covered" > get o</span>neAdminConsoleOption(): Locator {
|
|
120
|
+
<span class="cstat-no" title="statement not covered" > return this.frame.getByText('ONE ADMIN CONSOLE');</span>
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
<span class="fstat-no" title="function not covered" > async c</span>lickOneAdminConsole(): Promise<void> {
|
|
124
|
+
<span class="cstat-no" title="statement not covered" > await this.oneAdminConsoleOption.click();</span>
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
<span class="fstat-no" title="function not covered" > static async a</span>cceptCookiesIfShown(page: Page): Promise<void> {
|
|
128
|
+
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
129
|
+
<span class="cstat-no" title="statement not covered" > await page</span>
|
|
130
|
+
.locator('#onetrust-group-container')
|
|
131
|
+
.waitFor({ state: 'visible', timeout: 5_000 });
|
|
132
|
+
<span class="cstat-no" title="statement not covered" > await page.locator('button', { hasText: 'Accept All Cookies' }).click();</span>
|
|
133
|
+
} catch {
|
|
134
|
+
// OneTrust banner not shown — proceed
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
</pre></td></tr></table></pre>
|
|
139
|
+
|
|
140
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
141
|
+
</div><!-- /wrapper -->
|
|
142
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
143
|
+
Code coverage generated by
|
|
144
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
145
|
+
at 2026-05-13T17:06:38.095Z
|
|
146
|
+
</div>
|
|
147
|
+
<script src="../../../prettify.js"></script>
|
|
148
|
+
<script>
|
|
149
|
+
window.onload = function () {
|
|
150
|
+
prettyPrint();
|
|
151
|
+
};
|
|
152
|
+
</script>
|
|
153
|
+
<script src="../../../sorter.js"></script>
|
|
154
|
+
<script src="../../../block-navigation.js"></script>
|
|
155
|
+
</body>
|
|
156
|
+
</html>
|
|
157
|
+
|
|
@@ -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-
|
|
151
|
+
at 2026-05-13T17:06:38.095Z
|
|
152
152
|
</div>
|
|
153
153
|
<script src="../../../prettify.js"></script>
|
|
154
154
|
<script>
|