e2ed
Version:
E2E testing framework over Playwright
77 lines (76 loc) • 3.57 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.beforeTest = void 0;
const internal_1 = require("../../constants/internal");
const meta_1 = require("../../context/meta");
const onResponseCallbacks_1 = require("../../context/onResponseCallbacks");
const outputDirectoryName_1 = require("../../context/outputDirectoryName");
const retryIndex_1 = require("../../context/retryIndex");
const runId_1 = require("../../context/runId");
const testIdleTimeout_1 = require("../../context/testIdleTimeout");
const testStaticOptions_1 = require("../../context/testStaticOptions");
const testTimeout_1 = require("../../context/testTimeout");
const apiStatistics_1 = require("../apiStatistics");
const config_1 = require("../config");
const environment_1 = require("../environment");
const events_1 = require("../events");
const fs_1 = require("../fs");
const log_1 = require("../log");
const uiMode_1 = require("../uiMode");
const userland_1 = require("../userland");
const getTestFnAndReject_1 = require("./getTestFnAndReject");
const test_1 = require("@playwright/test");
const additionToPlaywrightTestTimeout = 500;
/**
* Internal before test hook.
* @internal
*/
const beforeTest = ({ outputDirectoryName, retryIndex, runId, startTimeInMs, testFn, testStaticOptions, }) => {
const { options } = testStaticOptions;
(0, meta_1.setMeta)(options.meta);
(0, outputDirectoryName_1.setOutputDirectoryName)(outputDirectoryName);
(0, retryIndex_1.setRetryIndex)(retryIndex);
(0, runId_1.setRunId)(runId);
(0, testStaticOptions_1.setTestStaticOptions)(testStaticOptions);
const onResponseCallbacks = (0, onResponseCallbacks_1.getOnResponseCallbacks)();
onResponseCallbacks.push(apiStatistics_1.addResponseToApiStatistics);
onResponseCallbacks.push(log_1.mapBackendResponseForLogs);
const { testIdleTimeout: testIdleTimeoutFromConfig, testTimeout: testTimeoutFromConfig } = (0, config_1.getFullPackConfig)();
const testIdleTimeout = internal_1.IS_DEBUG || uiMode_1.isUiMode
? internal_1.MAX_TIMEOUT_IN_MS
: (options.testIdleTimeout ?? testIdleTimeoutFromConfig);
const testTimeout = internal_1.IS_DEBUG || uiMode_1.isUiMode ? internal_1.MAX_TIMEOUT_IN_MS : (options.testTimeout ?? testTimeoutFromConfig);
test_1.test.setTimeout(testTimeout + additionToPlaywrightTestTimeout + (Date.now() - startTimeInMs));
(0, testIdleTimeout_1.setTestIdleTimeout)(testIdleTimeout);
(0, testTimeout_1.setTestTimeout)(testTimeout);
const { isTestSkipped } = (0, userland_1.getUserlandHooks)();
const { isSkipped, reason: skipReason } = isTestSkipped(testStaticOptions);
if (isSkipped && !('skipReason' in options.meta)) {
Object.assign(options.meta, { skipReason });
}
const { onlog, reject, testFnWithReject } = (0, getTestFnAndReject_1.getTestFnAndReject)({
isSkipped,
runId,
testFn,
testIdleTimeout,
testTimeout,
});
const runLabel = (0, environment_1.getRunLabel)();
const utcTimeInMs = Date.now();
const testRunEvent = {
...testStaticOptions,
logEvents: [],
onlog,
outputDirectoryName,
reject,
retryIndex,
runId,
runLabel,
status: isSkipped ? "skipped" /* TestRunStatus.Skipped */ : "unknown" /* TestRunStatus.Unknown */,
testFnWithReject,
utcTimeInMs,
};
(0, events_1.registerStartTestRunEvent)(testRunEvent);
void (0, fs_1.writeLogEventTime)().catch(() => { });
};
exports.beforeTest = beforeTest;