e2ed
Version:
E2E testing framework over Playwright
49 lines (48 loc) • 1.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getRetries = void 0;
const runLabel_1 = require("../runLabel");
/**
* Get array of retries from array of full test runs.
* @internal
*/
const getRetries = (fullTestRuns) => {
const retries = [];
const fullTestRunsHash = Object.create(null);
for (const fullTestRun of fullTestRuns) {
const { retryIndex, runLabel } = fullTestRun;
const { concurrency } = (0, runLabel_1.getRunLabelObject)(runLabel);
if (fullTestRunsHash[retryIndex] === undefined) {
const rawRetry = { concurrency, retryFullTestRuns: [] };
fullTestRunsHash[retryIndex] = rawRetry;
}
fullTestRunsHash[retryIndex]?.retryFullTestRuns.push(fullTestRun);
}
for (const [retryString, { concurrency, retryFullTestRuns }] of Object.entries(fullTestRunsHash)) {
retryFullTestRuns.sort((a, b) => {
if (a.filePath > b.filePath) {
return 1;
}
if (a.filePath < b.filePath) {
return -1;
}
return a.startTimeInMs - b.startTimeInMs;
});
const startTimes = retryFullTestRuns.map((testRun) => testRun.startTimeInMs);
const startTimeInMs = Math.min(...startTimes);
const endTimes = retryFullTestRuns.map((testRun) => testRun.endTimeInMs);
const endTimeInMs = Math.max(...endTimes);
const retryIndex = Number(retryString);
const fullRetry = {
concurrency,
endTimeInMs,
fullTestRuns: retryFullTestRuns,
retryIndex,
startTimeInMs,
};
retries.push(fullRetry);
}
retries.sort((a, b) => a.retryIndex - b.retryIndex);
return retries;
};
exports.getRetries = getRetries;