e2ed
Version:
E2E testing framework over Playwright
65 lines (64 loc) • 3.04 kB
JavaScript
"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;