e2ed
Version:
E2E testing framework over Playwright
42 lines (41 loc) • 2.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.takeScreenshotsOnErrorIfNeeded = void 0;
const node_path_1 = require("node:path");
// eslint-disable-next-line import/no-internal-modules
const takeScreenshot_1 = require("../../actions/takeScreenshot");
const retryIndex_1 = require("../../context/retryIndex");
const config_1 = require("../config");
const getScreenshotFileNames_1 = require("./getScreenshotFileNames");
const errorScreenshotTimeoutInMs = 2_000;
/**
* Takes page screenshot and full page screenshot, if needed.
* @internal
*/
const takeScreenshotsOnErrorIfNeeded = async (testStaticOptions) => {
const { takeFullPageScreenshotOnError: takeFullPageScreenshotOnErrorFromConfig, takeViewportScreenshotOnError: takeViewportScreenshotOnErrorFromConfig, } = (0, config_1.getFullPackConfig)();
const { options } = testStaticOptions;
const takeFullPageScreenshotOnError = options.takeFullPageScreenshotOnError ?? takeFullPageScreenshotOnErrorFromConfig;
const takeViewportScreenshotOnError = options.takeViewportScreenshotOnError ?? takeViewportScreenshotOnErrorFromConfig;
if (!takeFullPageScreenshotOnError && !takeViewportScreenshotOnError) {
return;
}
const retryIndex = (0, retryIndex_1.getRetryIndex)();
const retryDirectoryName = `retry${retryIndex}`;
const { fullPage, viewport } = await (0, getScreenshotFileNames_1.getScreenshotFileNames)(retryDirectoryName, testStaticOptions);
if (takeFullPageScreenshotOnError) {
await (0, takeScreenshot_1.takeScreenshot)({
fullPage: true,
path: (0, node_path_1.join)(retryDirectoryName, fullPage),
timeout: errorScreenshotTimeoutInMs,
});
}
if (takeViewportScreenshotOnError) {
await (0, takeScreenshot_1.takeScreenshot)({
fullPage: false,
path: (0, node_path_1.join)(retryDirectoryName, viewport),
timeout: errorScreenshotTimeoutInMs,
});
}
};
exports.takeScreenshotsOnErrorIfNeeded = takeScreenshotsOnErrorIfNeeded;