e2ed
Version:
E2E testing framework over Playwright
65 lines (64 loc) • 2.74 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getRunTest = void 0;
const useContext_1 = require("../../useContext");
const asserts_1 = require("../asserts");
const afterErrorInTest_1 = require("./afterErrorInTest");
const afterTest_1 = require("./afterTest");
const beforeTest_1 = require("./beforeTest");
const createRunId_1 = require("./createRunId");
const getOutputDirectoryName_1 = require("./getOutputDirectoryName");
const getShouldRunTest_1 = require("./getShouldRunTest");
const getTestStaticOptions_1 = require("./getTestStaticOptions");
const preparePage_1 = require("./preparePage");
const runTestFn_1 = require("./runTestFn");
const waitBeforeRetry_1 = require("./waitBeforeRetry");
/**
* Get complete run test function by the complete test options.
* @internal
*/
const getRunTest = (test) => ({ context, page, request }, testInfo) => {
const runTest = async () => {
const startTimeInMs = Date.now();
const retryIndex = testInfo.retry + 1;
const runId = (0, createRunId_1.createRunId)(test, retryIndex);
let hasRunError = false;
let shouldRunTest = false;
let testStaticOptions;
let unknownRunError;
try {
testStaticOptions = (0, getTestStaticOptions_1.getTestStaticOptions)(test, testInfo);
shouldRunTest = await (0, getShouldRunTest_1.getShouldRunTest)(testStaticOptions);
if (!shouldRunTest) {
return;
}
const testUnit = {
beforeRetryTimeout: await (0, waitBeforeRetry_1.waitBeforeRetry)(runId, testStaticOptions),
outputDirectoryName: (0, getOutputDirectoryName_1.getOutputDirectoryName)(testInfo.outputDir),
retryIndex,
runId,
startTimeInMs,
testController: { context, page, request },
testFn: test.testFn,
testStaticOptions,
};
await (0, preparePage_1.preparePage)(page);
(0, beforeTest_1.beforeTest)(testUnit);
await (0, runTestFn_1.runTestFn)(testUnit);
}
catch (error) {
hasRunError = true;
unknownRunError = error;
(0, asserts_1.assertValueIsDefined)(testStaticOptions, 'testStaticOptions is defined', { error, runId });
await (0, afterErrorInTest_1.afterErrorInTest)(testStaticOptions);
throw error;
}
finally {
if (shouldRunTest) {
await (0, afterTest_1.afterTest)({ hasRunError, runId, unknownRunError });
}
}
};
return useContext_1.pageStorage.run(page, runTest);
};
exports.getRunTest = getRunTest;