e2ed
Version:
E2E testing framework over Playwright
35 lines (34 loc) • 1.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getDurationWithUnits = getDurationWithUnits;
/**
* Get the duration of time interval in hours, minutes, seconds and milliseconds.
* `getDurationWithUnits(1213)` = `'1s 213ms'`.
* Should be a pure function without dependencies in the form of a function declaration,
* because it is used in the JS code of HTML report.
*/
function getDurationWithUnits(durationInMs) {
const msInSecond = 1_000;
const timeMultiplicator = 60;
const roundedDuration = Math.round(durationInMs);
const remainderInMs = roundedDuration % msInSecond;
const durationInSeconds = Math.round((roundedDuration - remainderInMs) / msInSecond);
const remainderInSeconds = durationInSeconds % timeMultiplicator;
const durationInMinutes = Math.round((durationInSeconds - remainderInSeconds) / timeMultiplicator);
const remainderInMinutes = durationInMinutes % timeMultiplicator;
const durationInHours = Math.round((durationInMinutes - remainderInMinutes) / timeMultiplicator);
const parts = [];
if (remainderInMs > 0) {
parts.unshift(`${remainderInMs}ms`);
}
if (remainderInSeconds > 0) {
parts.unshift(`${remainderInSeconds}s`);
}
if (remainderInMinutes > 0) {
parts.unshift(`${remainderInMinutes}m`);
}
if (durationInHours > 0) {
parts.unshift(`${durationInHours}h`);
}
return parts.slice(0, 2).join(' ') || '0ms';
}