UNPKG

e2ed

Version:

E2E testing framework over Playwright

65 lines (64 loc) 3.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.registerEndTestRunEvent = void 0; const configurator_1 = require("../../configurator"); const internal_1 = require("../../constants/internal"); const apiStatistics_1 = require("../../context/apiStatistics"); const useContext_1 = require("../../useContext"); const clone_1 = require("../clone"); const error_1 = require("../error"); const fs_1 = require("../fs"); const generalLog_1 = require("../generalLog"); const object_1 = require("../object"); const userland_1 = require("../userland"); const calculateTestRunStatus_1 = require("./calculateTestRunStatus"); const getTestRunEvent_1 = require("./getTestRunEvent"); const writeFullMocksIfNeeded_1 = require("./writeFullMocksIfNeeded"); /** * Registers end test run event (for report) after test closing. * @internal */ const registerEndTestRunEvent = async (endTestRunEvent) => { const { runId } = endTestRunEvent; const testRunEvent = (0, getTestRunEvent_1.getTestRunEvent)(runId); const { filePath, logEvents, name, options, outputDirectoryName, retryIndex, runLabel, status: originalStatus, utcTimeInMs: startTimeInMs, } = testRunEvent; if (originalStatus !== "unknown" /* TestRunStatus.Unknown */ && originalStatus !== "skipped" /* TestRunStatus.Skipped */) { (0, generalLog_1.generalLog)(`Try to end test run event, but it is already ended with status ${originalStatus}`, { endTestRunEvent, testRunEvent: (0, clone_1.cloneWithoutLogEvents)(testRunEvent), }); return; } const { hasRunError, unknownRunError, utcTimeInMs: endTimeInMs } = endTestRunEvent; const status = (0, calculateTestRunStatus_1.calculateTestRunStatus)({ endTestRunEvent, testRunEvent }); await (0, writeFullMocksIfNeeded_1.writeFullMocksIfNeeded)(status, testRunEvent); (0, object_1.setReadonlyProperty)(testRunEvent, 'status', status); const runError = hasRunError ? (0, error_1.getRunErrorFromError)(unknownRunError) : undefined; const testRun = { endTimeInMs, filePath, logEvents, name, options, outputDirectoryName, retryIndex, runError, runId, runLabel, startTimeInMs, status, }; const { getMainTestRunParams, getTestRunHash } = (0, userland_1.getUserlandHooks)(); const mainParams = getMainTestRunParams(testRun); const runHash = getTestRunHash(testRun).replaceAll('#', ''); const fullTestRun = { mainParams, runHash, ...testRun }; await (0, generalLog_1.logEndTestRunEvent)(fullTestRun); const apiStatistics = (0, apiStatistics_1.getApiStatistics)(); await (0, fs_1.writeApiStatistics)(apiStatistics); await (0, fs_1.writeTestRunToJsonFile)(fullTestRun); await (0, generalLog_1.writeLogsToFile)(); if (internal_1.IS_DEBUG && configurator_1.isLocalRun) { await (0, useContext_1.getPlaywrightPage)().pause(); } }; exports.registerEndTestRunEvent = registerEndTestRunEvent;