UNPKG

e2ed

Version:

E2E testing framework over Playwright

57 lines (56 loc) 2.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ApiStatistics = void 0; const ApiStatisticsItem_1 = require("./ApiStatisticsItem"); const List_1 = require("./List"); const ApiStatisticsItem = ApiStatisticsItem_1.ApiStatisticsItem; const List = List_1.List; /** * Renders `ApiStatistics` of one kind (pages, requests or resources). * This base client function should not use scope variables (except other base functions). * @internal */ const ApiStatistics = ({ apiStatistics, hash }) => { let header; const items = []; if (hash === 'api-statistics-pages') { header = 'Pages'; for (const [name, byUrl] of Object.entries(apiStatistics.pages)) { let pageCount = 0; let pageDuration = 0; const pageItems = []; for (const [url, { count, duration }] of Object.entries(byUrl)) { pageCount += count; pageDuration += duration; pageItems.push(jsx.createElement(ApiStatisticsItem, { count: count, duration: duration, name: url, url: url })); } items.push(jsx.createElement(ApiStatisticsItem, { count: pageCount, duration: pageDuration, isHeader: true, name: name })); items.push(...pageItems); } } else if (hash === 'api-statistics-requests') { header = 'Requests'; for (const [url, byMethod] of Object.entries(apiStatistics.requests)) { for (const [method, byStatusCode] of Object.entries(byMethod)) { // eslint-disable-next-line max-depth for (const [statusCode, { count, duration, size }] of Object.entries(byStatusCode)) { items.push(jsx.createElement(ApiStatisticsItem, { count: count, duration: duration, name: `${method} ${url} ${statusCode}`, size: size })); } } } } else { header = 'Resources'; for (const [url, byStatusCode] of Object.entries(apiStatistics.resources)) { for (const [statusCode, { count, duration, size }] of Object.entries(byStatusCode)) { items.push(jsx.createElement(ApiStatisticsItem, { count: count, duration: duration, name: `${url} ${statusCode}`, size: size, url: url })); } } } return (jsx.createElement("article", { class: "test-details" }, jsx.createElement("p", { class: "test-details__path" }), jsx.createElement("h2", { class: "test-details__title" }, header), jsx.createElement("ol", { class: "steps-group" }, jsx.createElement(List, { elements: items })))); }; exports.ApiStatistics = ApiStatistics;