UNPKG

e2ed

Version:

E2E testing framework over Playwright

49 lines (48 loc) 1.82 kB
"use strict"; 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;