Skip to content

Commit 62842e2

Browse files
committed
FI-1635 feat: add API statistics to HTML report
1 parent 40d72e7 commit 62842e2

5 files changed

Lines changed: 28 additions & 3 deletions

File tree

src/types/report.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ export type Retry = Readonly<{
116116
*/
117117
export type RetryButtonProps = Readonly<{
118118
disabled: boolean;
119+
name: string;
119120
retry: number;
120121
selected: boolean;
121122
}>;
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import {createSafeHtmlWithoutSanitize} from '../client';
2+
3+
import type {SafeHtml} from '../../../types/internal';
4+
5+
type Props = Readonly<{retryIndex: number}>;
6+
7+
/**
8+
* Renders metadata of whole `e2ed` run.
9+
* @internal
10+
*/
11+
export const renderMetadata = ({retryIndex}: Props): SafeHtml => createSafeHtmlWithoutSanitize`
12+
<article class="retry" id="retry${retryIndex}" hidden>
13+
<h3 class="__title">Metadata</h3>
14+
<button aria-selected="false" class="test-button" role="tab">Pages statistics</button>
15+
<button aria-selected="false" class="test-button" role="tab">Requests statistics</button>
16+
<button aria-selected="false" class="test-button" role="tab">Resources statistics</button>
17+
</article>`;

src/utils/report/render/renderRetries.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import {createSafeHtmlWithoutSanitize} from '../client';
22

3+
import {renderMetadata} from './renderMetadata';
34
import {renderRetry} from './renderRetry';
45

56
import type {RetryProps, SafeHtml} from '../../../types/internal';
@@ -13,5 +14,7 @@ type Props = Readonly<{retries: readonly RetryProps[]}>;
1314
export const renderRetries = ({retries}: Props): SafeHtml => {
1415
const retriesHtml = retries.map((retry) => renderRetry({retry}));
1516

17+
retriesHtml.push(renderMetadata({retryIndex: retries.length + 1}));
18+
1619
return createSafeHtmlWithoutSanitize`${retriesHtml.join('')}`;
1720
};

src/utils/report/render/renderRetriesButtons.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,13 @@ export const renderRetriesButtons = ({retries}: Props): SafeHtml => {
1616
const maxRetry = Math.max(...retryNumbers);
1717
const buttons: SafeHtml[] = [];
1818

19-
for (let index = 1; index <= maxRetry; index += 1) {
19+
for (let index = 1; index <= maxRetry + 1; index += 1) {
2020
const isRetry = retryNumbers.includes(index);
21+
const isMeta = index === maxRetry + 1;
2122

2223
buttons[index] = renderRetryButton({
23-
disabled: !isRetry,
24+
disabled: isMeta ? false : !isRetry,
25+
name: isMeta ? 'Meta' : `Retry ${index}`,
2426
retry: index,
2527
selected: index === maxRetry,
2628
});

src/utils/report/render/renderRetryButton.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@ import {locator} from './locator';
55
import type {RetryButtonProps, SafeHtml} from '../../../types/internal';
66

77
type Props = RetryButtonProps;
8+
89
/**
910
* Renders tag `<button>` with single retry button.
1011
* @internal
1112
*/
1213
export const renderRetryButton = ({
1314
disabled,
15+
name,
1416
retry,
1517
selected,
1618
}: Props): SafeHtml => sanitizeHtml`<button
@@ -20,4 +22,4 @@ class="nav-tabs__button"
2022
id="retry${retry}-nav"
2123
role="tab"
2224
${locator('RetryButton', {disabled, retry, selected})}
23-
${disabled ? 'disabled' : ''}>Retry ${retry}</button>`;
25+
${disabled ? 'disabled' : ''}>${name}</button>`;

0 commit comments

Comments
 (0)