UNPKG

e2ed

Version:

E2E testing framework over Playwright

47 lines (46 loc) 2.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.updateRetriesStateAfterRetry = void 0; const asserts_1 = require("../asserts"); const clone_1 = require("../clone"); const fs_1 = require("../fs"); const getConcurrencyForNextRetry_1 = require("./getConcurrencyForNextRetry"); const getNewFullTestRunsByStatuses_1 = require("./getNewFullTestRunsByStatuses"); const logRetryResult_1 = require("./logRetryResult"); /** * Update retries states after running retry. * @internal */ const updateRetriesStateAfterRetry = async (retriesState) => { const { concurrency, successfulTestRunNamesHash, visitedTestRunEventsFileName } = retriesState; const { failedNewFullTestRuns, newFullTestRuns, successfulNewFullTestRuns, unbrokenNewFullTestRuns, } = await (0, getNewFullTestRunsByStatuses_1.getNewFullTestRunsByStatuses)(retriesState); const successfulTotalInPreviousRetries = Object.keys(successfulTestRunNamesHash).length; for (const successfulNewFullTestRun of successfulNewFullTestRuns) { const { name } = successfulNewFullTestRun; (0, asserts_1.assertValueIsFalse)(name in successfulTestRunNamesHash, `a successful test "${name}" has a unique name`, { retriesState, successfulNewFullTestRun: (0, clone_1.cloneWithoutLogEvents)(successfulNewFullTestRun) }); successfulTestRunNamesHash[name] = true; } for (const { runId } of newFullTestRuns) { visitedTestRunEventsFileName.push((0, fs_1.getTestRunEventFileName)(runId)); } (0, logRetryResult_1.logRetryResult)({ failedLength: failedNewFullTestRuns.length, newLength: newFullTestRuns.length, retriesState, successfulLength: successfulNewFullTestRuns.length, successfulTotalInPreviousRetries, unbrokenLength: unbrokenNewFullTestRuns.length, }); const concurrencyForNextRetry = (0, getConcurrencyForNextRetry_1.getConcurrencyForNextRetry)({ currentConcurrency: concurrency, noSuccessfulTestsInLastRetry: successfulNewFullTestRuns.length === 0, testsCount: failedNewFullTestRuns.length, }); const failedTestNamesInLastRetry = failedNewFullTestRuns.map(({ name }) => name); const retriesStateUpdate = { concurrency: concurrencyForNextRetry, failedTestNamesInLastRetry, }; Object.assign(retriesState, retriesStateUpdate); }; exports.updateRetriesStateAfterRetry = updateRetriesStateAfterRetry;