@reportforge/playwright-pdf 0.24.0 → 0.25.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.
- package/README.md +3 -3
- package/ci-templates/azure-devops/azure-pipelines.yml +58 -58
- package/ci-templates/github-actions/basic-workflow.yml +44 -44
- package/ci-templates/gitlab-ci/.gitlab-ci.yml +42 -42
- package/ci-templates/jenkins/Jenkinsfile +54 -54
- package/dist/cli/index.js +0 -0
- package/dist/index.js +230 -9
- package/dist/index.mjs +230 -9
- package/dist/templates/layouts/detailed.hbs +41 -41
- package/dist/templates/layouts/executive.hbs +41 -41
- package/dist/templates/layouts/minimal.hbs +41 -41
- package/dist/templates/partials/analysis-oneliner.hbs +3 -3
- package/dist/templates/partials/chart-summary-grid.hbs +40 -40
- package/dist/templates/partials/chart-trend-card.hbs +16 -16
- package/dist/templates/partials/charts.hbs +433 -433
- package/dist/templates/partials/ci-environment.hbs +56 -56
- package/dist/templates/partials/cover-page.hbs +48 -48
- package/dist/templates/partials/defect-log.hbs +79 -79
- package/dist/templates/partials/executive-hero-summary.hbs +66 -66
- package/dist/templates/partials/executive-summary.hbs +78 -78
- package/dist/templates/partials/failure-card.hbs +35 -35
- package/dist/templates/partials/head.hbs +17 -17
- package/dist/templates/partials/release-gate.hbs +84 -84
- package/dist/templates/partials/requirements-matrix.hbs +51 -51
- package/dist/templates/partials/suite-breakdown.hbs +89 -89
- package/dist/templates/partials/watermark.hbs +42 -42
- package/package.json +1 -2
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
{{> head}}
|
|
2
|
-
|
|
3
|
-
{{> watermark}}
|
|
4
|
-
|
|
5
|
-
{{#if sections.coverPage}}{{> cover-page}}{{/if}}
|
|
6
|
-
|
|
7
|
-
<div class="report-header">
|
|
8
|
-
{{#if meta.branding.logoBase64}}
|
|
9
|
-
<img class="report-header__logo" src="{{meta.branding.logoBase64}}" alt="Logo">
|
|
10
|
-
{{/if}}
|
|
11
|
-
<div>
|
|
12
|
-
<div class="report-header__title">{{meta.title}}</div>
|
|
13
|
-
<div class="report-header__meta">{{meta.projectName}} · {{formatDate meta.generatedAt}}</div>
|
|
14
|
-
</div>
|
|
15
|
-
</div>
|
|
16
|
-
|
|
17
|
-
{{#if sections.analysisOneliner}}{{> analysis-oneliner}}{{/if}}
|
|
18
|
-
|
|
19
|
-
{{#if sections.releaseGate}}{{> release-gate}}{{/if}}
|
|
20
|
-
|
|
21
|
-
{{#if sections.briefBand}}{{> brief-band}}{{/if}}
|
|
22
|
-
|
|
23
|
-
{{#if sections.summary}}{{> executive-summary options=(obj showPassRate=sections.passRate releaseGateShown=sections.releaseGate) }}{{/if}}
|
|
24
|
-
|
|
25
|
-
{{#if sections.charts}}{{> charts options=(obj showCharts=true showTrend=sections.trend) }}{{/if}}
|
|
26
|
-
|
|
27
|
-
{{#if sections.requirementsMatrix}}{{> requirements-matrix }}{{/if}}
|
|
28
|
-
|
|
29
|
-
{{#if sections.ciEnvironment}}{{> ci-environment options=(obj showFullEnvironment=sections.fullEnvironment) }}{{/if}}
|
|
30
|
-
|
|
31
|
-
{{#if sections.suiteBreakdown}}{{> suite-breakdown options=(obj showRetries=sections.retries showFullFailures=sections.fullFailures showStackTraces=sections.stackTraces) }}{{/if}}
|
|
32
|
-
|
|
33
|
-
{{#if sections.defectLog}}{{> defect-log }}{{/if}}
|
|
34
|
-
|
|
35
|
-
<div class="report-footer">
|
|
36
|
-
<span>{{meta.projectName}} · Playwright Test Report</span>
|
|
37
|
-
<span>Generated by ReportForge · {{formatDate meta.generatedAt}}</span>
|
|
38
|
-
</div>
|
|
39
|
-
|
|
40
|
-
</body>
|
|
41
|
-
</html>
|
|
1
|
+
{{> head}}
|
|
2
|
+
|
|
3
|
+
{{> watermark}}
|
|
4
|
+
|
|
5
|
+
{{#if sections.coverPage}}{{> cover-page}}{{/if}}
|
|
6
|
+
|
|
7
|
+
<div class="report-header">
|
|
8
|
+
{{#if meta.branding.logoBase64}}
|
|
9
|
+
<img class="report-header__logo" src="{{meta.branding.logoBase64}}" alt="Logo">
|
|
10
|
+
{{/if}}
|
|
11
|
+
<div>
|
|
12
|
+
<div class="report-header__title">{{meta.title}}</div>
|
|
13
|
+
<div class="report-header__meta">{{meta.projectName}} · {{formatDate meta.generatedAt}}</div>
|
|
14
|
+
</div>
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
{{#if sections.analysisOneliner}}{{> analysis-oneliner}}{{/if}}
|
|
18
|
+
|
|
19
|
+
{{#if sections.releaseGate}}{{> release-gate}}{{/if}}
|
|
20
|
+
|
|
21
|
+
{{#if sections.briefBand}}{{> brief-band}}{{/if}}
|
|
22
|
+
|
|
23
|
+
{{#if sections.summary}}{{> executive-summary options=(obj showPassRate=sections.passRate releaseGateShown=sections.releaseGate) }}{{/if}}
|
|
24
|
+
|
|
25
|
+
{{#if sections.charts}}{{> charts options=(obj showCharts=true showTrend=sections.trend) }}{{/if}}
|
|
26
|
+
|
|
27
|
+
{{#if sections.requirementsMatrix}}{{> requirements-matrix }}{{/if}}
|
|
28
|
+
|
|
29
|
+
{{#if sections.ciEnvironment}}{{> ci-environment options=(obj showFullEnvironment=sections.fullEnvironment) }}{{/if}}
|
|
30
|
+
|
|
31
|
+
{{#if sections.suiteBreakdown}}{{> suite-breakdown options=(obj showRetries=sections.retries showFullFailures=sections.fullFailures showStackTraces=sections.stackTraces) }}{{/if}}
|
|
32
|
+
|
|
33
|
+
{{#if sections.defectLog}}{{> defect-log }}{{/if}}
|
|
34
|
+
|
|
35
|
+
<div class="report-footer">
|
|
36
|
+
<span>{{meta.projectName}} · Playwright Test Report</span>
|
|
37
|
+
<span>Generated by ReportForge · {{formatDate meta.generatedAt}}</span>
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
</body>
|
|
41
|
+
</html>
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
{{> head}}
|
|
2
|
-
|
|
3
|
-
{{> watermark}}
|
|
4
|
-
|
|
5
|
-
{{#if sections.coverPage}}{{> cover-page}}{{/if}}
|
|
6
|
-
|
|
7
|
-
<div class="report-header">
|
|
8
|
-
<div class="report-header__left">
|
|
9
|
-
{{#if meta.branding.logoBase64}}
|
|
10
|
-
<img class="report-header__logo" src="{{meta.branding.logoBase64}}" alt="Logo">
|
|
11
|
-
{{/if}}
|
|
12
|
-
<div class="report-header__title">{{meta.title}}</div>
|
|
13
|
-
</div>
|
|
14
|
-
<div class="report-header__date">{{formatDate meta.generatedAt}}</div>
|
|
15
|
-
</div>
|
|
16
|
-
|
|
17
|
-
{{#if sections.analysisOneliner}}{{> analysis-oneliner}}{{/if}}
|
|
18
|
-
|
|
19
|
-
{{#if sections.releaseGate}}{{> release-gate}}{{/if}}
|
|
20
|
-
|
|
21
|
-
{{#if sections.briefBand}}{{> brief-band}}{{/if}}
|
|
22
|
-
|
|
23
|
-
{{#if sections.summary}}{{> executive-hero-summary options=(obj showPassRate=sections.passRate releaseGateShown=sections.releaseGate) }}{{/if}}
|
|
24
|
-
|
|
25
|
-
{{#if sections.charts}}{{> charts options=(obj showCharts=true showTrend=sections.trend heroTrend=true) }}{{/if}}
|
|
26
|
-
|
|
27
|
-
{{#if sections.requirementsMatrix}}{{> requirements-matrix }}{{/if}}
|
|
28
|
-
|
|
29
|
-
{{#if sections.defectLog}}{{> defect-log }}{{/if}}
|
|
30
|
-
|
|
31
|
-
{{#if sections.ciEnvironment}}{{> ci-environment options=(obj showFullEnvironment=sections.fullEnvironment) }}{{/if}}
|
|
32
|
-
|
|
33
|
-
{{#if sections.suiteBreakdown}}{{> suite-breakdown options=(obj showRetries=sections.retries showFullFailures=sections.fullFailures showStackTraces=sections.stackTraces) }}{{/if}}
|
|
34
|
-
|
|
35
|
-
<div class="report-footer">
|
|
36
|
-
<span>{{meta.projectName}} · Playwright Test Report</span>
|
|
37
|
-
<span>Generated by ReportForge · {{formatDate meta.generatedAt}}</span>
|
|
38
|
-
</div>
|
|
39
|
-
|
|
40
|
-
</body>
|
|
41
|
-
</html>
|
|
1
|
+
{{> head}}
|
|
2
|
+
|
|
3
|
+
{{> watermark}}
|
|
4
|
+
|
|
5
|
+
{{#if sections.coverPage}}{{> cover-page}}{{/if}}
|
|
6
|
+
|
|
7
|
+
<div class="report-header">
|
|
8
|
+
<div class="report-header__left">
|
|
9
|
+
{{#if meta.branding.logoBase64}}
|
|
10
|
+
<img class="report-header__logo" src="{{meta.branding.logoBase64}}" alt="Logo">
|
|
11
|
+
{{/if}}
|
|
12
|
+
<div class="report-header__title">{{meta.title}}</div>
|
|
13
|
+
</div>
|
|
14
|
+
<div class="report-header__date">{{formatDate meta.generatedAt}}</div>
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
{{#if sections.analysisOneliner}}{{> analysis-oneliner}}{{/if}}
|
|
18
|
+
|
|
19
|
+
{{#if sections.releaseGate}}{{> release-gate}}{{/if}}
|
|
20
|
+
|
|
21
|
+
{{#if sections.briefBand}}{{> brief-band}}{{/if}}
|
|
22
|
+
|
|
23
|
+
{{#if sections.summary}}{{> executive-hero-summary options=(obj showPassRate=sections.passRate releaseGateShown=sections.releaseGate) }}{{/if}}
|
|
24
|
+
|
|
25
|
+
{{#if sections.charts}}{{> charts options=(obj showCharts=true showTrend=sections.trend heroTrend=true) }}{{/if}}
|
|
26
|
+
|
|
27
|
+
{{#if sections.requirementsMatrix}}{{> requirements-matrix }}{{/if}}
|
|
28
|
+
|
|
29
|
+
{{#if sections.defectLog}}{{> defect-log }}{{/if}}
|
|
30
|
+
|
|
31
|
+
{{#if sections.ciEnvironment}}{{> ci-environment options=(obj showFullEnvironment=sections.fullEnvironment) }}{{/if}}
|
|
32
|
+
|
|
33
|
+
{{#if sections.suiteBreakdown}}{{> suite-breakdown options=(obj showRetries=sections.retries showFullFailures=sections.fullFailures showStackTraces=sections.stackTraces) }}{{/if}}
|
|
34
|
+
|
|
35
|
+
<div class="report-footer">
|
|
36
|
+
<span>{{meta.projectName}} · Playwright Test Report</span>
|
|
37
|
+
<span>Generated by ReportForge · {{formatDate meta.generatedAt}}</span>
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
</body>
|
|
41
|
+
</html>
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
{{> head}}
|
|
2
|
-
|
|
3
|
-
{{> watermark}}
|
|
4
|
-
|
|
5
|
-
{{#if sections.coverPage}}{{> cover-page}}{{/if}}
|
|
6
|
-
|
|
7
|
-
<div class="report-header">
|
|
8
|
-
{{#if meta.branding.logoBase64}}
|
|
9
|
-
<img class="report-header__logo" src="{{meta.branding.logoBase64}}" alt="Logo">
|
|
10
|
-
{{/if}}
|
|
11
|
-
<div>
|
|
12
|
-
<div class="report-header__title">{{meta.title}}</div>
|
|
13
|
-
<div class="report-header__meta">{{meta.projectName}} · {{formatDate meta.generatedAt}}</div>
|
|
14
|
-
</div>
|
|
15
|
-
</div>
|
|
16
|
-
|
|
17
|
-
{{#if sections.analysisOneliner}}{{> analysis-oneliner}}{{/if}}
|
|
18
|
-
|
|
19
|
-
{{#if sections.releaseGate}}{{> release-gate}}{{/if}}
|
|
20
|
-
|
|
21
|
-
{{#if sections.briefBand}}{{> brief-band}}{{/if}}
|
|
22
|
-
|
|
23
|
-
{{#if sections.summary}}{{> executive-summary options=(obj showPassRate=sections.passRate releaseGateShown=sections.releaseGate) }}{{/if}}
|
|
24
|
-
|
|
25
|
-
{{#if sections.charts}}{{> charts options=(obj showCharts=true showTrend=sections.trend) }}{{/if}}
|
|
26
|
-
|
|
27
|
-
{{#if sections.requirementsMatrix}}{{> requirements-matrix }}{{/if}}
|
|
28
|
-
|
|
29
|
-
{{#if sections.suiteBreakdown}}{{> suite-breakdown options=(obj showRetries=sections.retries showFullFailures=sections.fullFailures showStackTraces=sections.stackTraces) }}{{/if}}
|
|
30
|
-
|
|
31
|
-
{{#if sections.defectLog}}{{> defect-log }}{{/if}}
|
|
32
|
-
|
|
33
|
-
{{#if sections.ciEnvironment}}{{> ci-environment options=(obj showFullEnvironment=sections.fullEnvironment) }}{{/if}}
|
|
34
|
-
|
|
35
|
-
<div class="report-footer">
|
|
36
|
-
<span>{{meta.projectName}} · Playwright Test Report</span>
|
|
37
|
-
<span>Generated by ReportForge · {{formatDate meta.generatedAt}}</span>
|
|
38
|
-
</div>
|
|
39
|
-
|
|
40
|
-
</body>
|
|
41
|
-
</html>
|
|
1
|
+
{{> head}}
|
|
2
|
+
|
|
3
|
+
{{> watermark}}
|
|
4
|
+
|
|
5
|
+
{{#if sections.coverPage}}{{> cover-page}}{{/if}}
|
|
6
|
+
|
|
7
|
+
<div class="report-header">
|
|
8
|
+
{{#if meta.branding.logoBase64}}
|
|
9
|
+
<img class="report-header__logo" src="{{meta.branding.logoBase64}}" alt="Logo">
|
|
10
|
+
{{/if}}
|
|
11
|
+
<div>
|
|
12
|
+
<div class="report-header__title">{{meta.title}}</div>
|
|
13
|
+
<div class="report-header__meta">{{meta.projectName}} · {{formatDate meta.generatedAt}}</div>
|
|
14
|
+
</div>
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
{{#if sections.analysisOneliner}}{{> analysis-oneliner}}{{/if}}
|
|
18
|
+
|
|
19
|
+
{{#if sections.releaseGate}}{{> release-gate}}{{/if}}
|
|
20
|
+
|
|
21
|
+
{{#if sections.briefBand}}{{> brief-band}}{{/if}}
|
|
22
|
+
|
|
23
|
+
{{#if sections.summary}}{{> executive-summary options=(obj showPassRate=sections.passRate releaseGateShown=sections.releaseGate) }}{{/if}}
|
|
24
|
+
|
|
25
|
+
{{#if sections.charts}}{{> charts options=(obj showCharts=true showTrend=sections.trend) }}{{/if}}
|
|
26
|
+
|
|
27
|
+
{{#if sections.requirementsMatrix}}{{> requirements-matrix }}{{/if}}
|
|
28
|
+
|
|
29
|
+
{{#if sections.suiteBreakdown}}{{> suite-breakdown options=(obj showRetries=sections.retries showFullFailures=sections.fullFailures showStackTraces=sections.stackTraces) }}{{/if}}
|
|
30
|
+
|
|
31
|
+
{{#if sections.defectLog}}{{> defect-log }}{{/if}}
|
|
32
|
+
|
|
33
|
+
{{#if sections.ciEnvironment}}{{> ci-environment options=(obj showFullEnvironment=sections.fullEnvironment) }}{{/if}}
|
|
34
|
+
|
|
35
|
+
<div class="report-footer">
|
|
36
|
+
<span>{{meta.projectName}} · Playwright Test Report</span>
|
|
37
|
+
<span>Generated by ReportForge · {{formatDate meta.generatedAt}}</span>
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
</body>
|
|
41
|
+
</html>
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
{{#if analysis.oneLiner}}
|
|
2
|
-
<div class="analysis-oneliner">{{analysis.oneLiner}}</div>
|
|
3
|
-
{{/if}}
|
|
1
|
+
{{#if analysis.oneLiner}}
|
|
2
|
+
<div class="analysis-oneliner">{{analysis.oneLiner}}</div>
|
|
3
|
+
{{/if}}
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
<div class="section charts-grid{{#if options.heroTrend}} charts-grid--secondary{{/if}}{{#if suiteChartLarge}} charts-grid--solo{{/if}}">
|
|
2
|
-
<div class="chart-card">
|
|
3
|
-
<h3>Pass Rate</h3>
|
|
4
|
-
{{#if suiteChartLarge}}
|
|
5
|
-
{{! Solo card (suite chart moved below) — use the freed space: bigger doughnut. }}
|
|
6
|
-
<canvas id="passRateChart" width="230" height="230"></canvas>
|
|
7
|
-
{{else}}
|
|
8
|
-
{{#if options.heroTrend}}
|
|
9
|
-
<canvas id="passRateChart" width="150" height="150"></canvas>
|
|
10
|
-
{{else}}
|
|
11
|
-
<canvas id="passRateChart" width="186" height="186"></canvas>
|
|
12
|
-
{{/if}}
|
|
13
|
-
{{/if}}
|
|
14
|
-
</div>
|
|
15
|
-
{{#unless suiteChartLarge}}
|
|
16
|
-
<div class="chart-card">
|
|
17
|
-
<h3>Suite Results</h3>
|
|
18
|
-
{{#if options.heroTrend}}
|
|
19
|
-
<canvas id="suitesBarChart" width="300" height="150"></canvas>
|
|
20
|
-
{{else}}
|
|
21
|
-
<canvas id="suitesBarChart" width="390" height="186"></canvas>
|
|
22
|
-
{{/if}}
|
|
23
|
-
</div>
|
|
24
|
-
{{/unless}}
|
|
25
|
-
</div>
|
|
26
|
-
|
|
27
|
-
{{#if suiteChartLarge}}
|
|
28
|
-
{{! Large runs: every suite keeps its own bar. The chart leaves the side-by-side
|
|
29
|
-
grid, goes full width, and splits into page-sized canvases that flow across
|
|
30
|
-
pages — a continuous per-suite coverage map instead of a squashed canvas. }}
|
|
31
|
-
{{#each suiteChartChunks}}
|
|
32
|
-
<div class="section chart-card chart-card--wide">
|
|
33
|
-
<h3>Suite Results{{#unless @first}} · continued{{/unless}}</h3>
|
|
34
|
-
<canvas id="{{this.canvasId}}" width="640" height="{{this.heightPx}}"></canvas>
|
|
35
|
-
{{#if @last}}{{#if ../charts.suiteResultsOverflowNote}}
|
|
36
|
-
<div class="chart-note">{{../charts.suiteResultsOverflowNote}}</div>
|
|
37
|
-
{{/if}}{{/if}}
|
|
38
|
-
</div>
|
|
39
|
-
{{/each}}
|
|
40
|
-
{{/if}}
|
|
1
|
+
<div class="section charts-grid{{#if options.heroTrend}} charts-grid--secondary{{/if}}{{#if suiteChartLarge}} charts-grid--solo{{/if}}">
|
|
2
|
+
<div class="chart-card">
|
|
3
|
+
<h3>Pass Rate</h3>
|
|
4
|
+
{{#if suiteChartLarge}}
|
|
5
|
+
{{! Solo card (suite chart moved below) — use the freed space: bigger doughnut. }}
|
|
6
|
+
<canvas id="passRateChart" width="230" height="230"></canvas>
|
|
7
|
+
{{else}}
|
|
8
|
+
{{#if options.heroTrend}}
|
|
9
|
+
<canvas id="passRateChart" width="150" height="150"></canvas>
|
|
10
|
+
{{else}}
|
|
11
|
+
<canvas id="passRateChart" width="186" height="186"></canvas>
|
|
12
|
+
{{/if}}
|
|
13
|
+
{{/if}}
|
|
14
|
+
</div>
|
|
15
|
+
{{#unless suiteChartLarge}}
|
|
16
|
+
<div class="chart-card">
|
|
17
|
+
<h3>Suite Results</h3>
|
|
18
|
+
{{#if options.heroTrend}}
|
|
19
|
+
<canvas id="suitesBarChart" width="300" height="150"></canvas>
|
|
20
|
+
{{else}}
|
|
21
|
+
<canvas id="suitesBarChart" width="390" height="186"></canvas>
|
|
22
|
+
{{/if}}
|
|
23
|
+
</div>
|
|
24
|
+
{{/unless}}
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
{{#if suiteChartLarge}}
|
|
28
|
+
{{! Large runs: every suite keeps its own bar. The chart leaves the side-by-side
|
|
29
|
+
grid, goes full width, and splits into page-sized canvases that flow across
|
|
30
|
+
pages — a continuous per-suite coverage map instead of a squashed canvas. }}
|
|
31
|
+
{{#each suiteChartChunks}}
|
|
32
|
+
<div class="section chart-card chart-card--wide">
|
|
33
|
+
<h3>Suite Results{{#unless @first}} · continued{{/unless}}</h3>
|
|
34
|
+
<canvas id="{{this.canvasId}}" width="640" height="{{this.heightPx}}"></canvas>
|
|
35
|
+
{{#if @last}}{{#if ../charts.suiteResultsOverflowNote}}
|
|
36
|
+
<div class="chart-note">{{../charts.suiteResultsOverflowNote}}</div>
|
|
37
|
+
{{/if}}{{/if}}
|
|
38
|
+
</div>
|
|
39
|
+
{{/each}}
|
|
40
|
+
{{/if}}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
{{#if options.showTrend}}
|
|
2
|
-
{{#if charts.trend}}
|
|
3
|
-
<div class="trend-card">
|
|
4
|
-
<div class="trend-card__header">
|
|
5
|
-
<span class="trend-card__title">Pass rate trend — last {{charts.trend.entries.length}} runs</span>
|
|
6
|
-
{{#if charts.trend.delta}}
|
|
7
|
-
<span class="delta {{#if (gt charts.trend.delta 0)}}delta-up{{else}}delta-down{{/if}}">
|
|
8
|
-
{{#if (gt charts.trend.delta 0)}}↑{{else}}↓{{/if}} {{absFixed charts.trend.delta}}% vs previous run
|
|
9
|
-
</span>
|
|
10
|
-
{{/if}}
|
|
11
|
-
</div>
|
|
12
|
-
<canvas id="trendChart" width="680" height="160"></canvas>
|
|
13
|
-
<div class="trend-run-history" id="run-history-table"></div>
|
|
14
|
-
</div>
|
|
15
|
-
{{/if}}
|
|
16
|
-
{{/if}}
|
|
1
|
+
{{#if options.showTrend}}
|
|
2
|
+
{{#if charts.trend}}
|
|
3
|
+
<div class="trend-card">
|
|
4
|
+
<div class="trend-card__header">
|
|
5
|
+
<span class="trend-card__title">Pass rate trend — last {{charts.trend.entries.length}} runs</span>
|
|
6
|
+
{{#if charts.trend.delta}}
|
|
7
|
+
<span class="delta {{#if (gt charts.trend.delta 0)}}delta-up{{else}}delta-down{{/if}}">
|
|
8
|
+
{{#if (gt charts.trend.delta 0)}}↑{{else}}↓{{/if}} {{absFixed charts.trend.delta}}% vs previous run
|
|
9
|
+
</span>
|
|
10
|
+
{{/if}}
|
|
11
|
+
</div>
|
|
12
|
+
<canvas id="trendChart" width="680" height="160"></canvas>
|
|
13
|
+
<div class="trend-run-history" id="run-history-table"></div>
|
|
14
|
+
</div>
|
|
15
|
+
{{/if}}
|
|
16
|
+
{{/if}}
|