UNPKG

@qavajs/steps-playwright

Version:

qavajs steps to interact with playwright

81 lines 3.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.saveScreenshotAfterStep = saveScreenshotAfterStep; exports.saveScreenshotBeforeStep = saveScreenshotBeforeStep; exports.saveTrace = saveTrace; exports.saveVideo = saveVideo; exports.traceArchive = traceArchive; exports.parseCoords = parseCoords; exports.equalOrIncludes = equalOrIncludes; exports.parseCoordsAsObject = parseCoordsAsObject; exports.sleep = sleep; exports.dataTable2Array = dataTable2Array; const screenshotEvent_1 = require("./screenshotEvent"); const traceEvent_1 = require("./traceEvent"); const videoEvent_1 = require("./videoEvent"); const core_1 = require("@qavajs/core"); const node_path_1 = require("node:path"); function saveScreenshotAfterStep(config, step) { const screenshotEvent = getEventValue(config?.driverConfig?.screenshot); const isAfterStepScreenshot = equalOrIncludes(screenshotEvent, screenshotEvent_1.ScreenshotEvent.AFTER_STEP); const isOnFailScreenshot = equalOrIncludes(screenshotEvent, screenshotEvent_1.ScreenshotEvent.ON_FAIL); return (isOnFailScreenshot && step.result.status === core_1.Status.FAILED) || isAfterStepScreenshot; } function saveScreenshotBeforeStep(config) { const screenshotEvent = getEventValue(config?.driverConfig?.screenshot); return equalOrIncludes(screenshotEvent, screenshotEvent_1.ScreenshotEvent.BEFORE_STEP); } function saveTrace(driverConfig, scenario) { return driverConfig?.trace && ((equalOrIncludes(driverConfig?.trace.event, traceEvent_1.TraceEvent.AFTER_SCENARIO)) || (scenario.result?.status === core_1.Status.FAILED && equalOrIncludes(driverConfig?.trace.event, traceEvent_1.TraceEvent.ON_FAIL))); } function saveVideo(driverConfig, scenario) { return driverConfig?.video && ((equalOrIncludes(driverConfig?.video.event, videoEvent_1.VideoEvent.AFTER_SCENARIO)) || (scenario.result?.status === core_1.Status.FAILED && equalOrIncludes(driverConfig?.video.event, videoEvent_1.VideoEvent.ON_FAIL))); } function normalizeScenarioName(name) { return name.replace(/\W/g, '-'); } function traceArchive(driverConfig, scenario) { return (0, node_path_1.join)(driverConfig.trace?.dir ?? 'traces', `${normalizeScenarioName(scenario.pickle.name)}-${scenario.testCaseStartedId}.zip`); } /** * Parse 'x, y' string to coordinates array * @param {string} coords - 'x, y' string * @return {number[]} - coords array */ function parseCoords(coords) { return coords.split(/\s?,\s?/).map((c) => parseFloat(c ?? 0)); } function equalOrIncludes(value, argument) { return Array.isArray(value) ? value.includes(argument) : value === argument; } /** * Parse 'x, y' string to coordinates object * @param {string} coords - 'x, y' string * @return {{x: number, y: number}} - coords object */ function parseCoordsAsObject(coords) { const [x, y] = coords.split(/\s?,\s?/).map((c) => parseFloat(c ?? 0)); return { x, y }; } async function sleep(ms) { await new Promise(resolve => setTimeout(() => resolve(0), ms)); } function getEventValue(entity) { return entity?.event ? entity.event : entity; } /** * Transform key-value data table to array * @param ctx * @param dataTable * @return {any[]} */ function dataTable2Array(ctx, dataTable) { return Promise.all(dataTable.raw().map(([value]) => ctx.getValue(value))); } //# sourceMappingURL=utils.js.map