UNPKG

e2ed

Version:

E2E testing framework over Playwright

58 lines (57 loc) 3.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.readEventsFromFiles = void 0; const node_child_process_1 = require("node:child_process"); const promises_1 = require("node:fs/promises"); const node_path_1 = require("node:path"); const internal_1 = require("../../constants/internal"); const asserts_1 = require("../asserts"); const generalLog_1 = require("../generalLog"); const getDurationWithUnits_1 = require("../getDurationWithUnits"); const readEventFromFile_1 = require("./readEventFromFile"); /** * Reads events objects from temporary directory, with skipping specified events. * @internal */ const readEventsFromFiles = async (skippedEventFiles) => { const startTimeInMs = Date.now(); const allEventFiles = await (0, promises_1.readdir)(internal_1.EVENTS_DIRECTORY_PATH); for (const skippedEventFile of skippedEventFiles) { (0, asserts_1.assertValueIsTrue)(allEventFiles.includes(skippedEventFile), `skipped event file ${skippedEventFile} is present in the event directory`, { allEventFiles, skippedEventFiles }); } const newEventFiles = allEventFiles.filter((fileName) => !skippedEventFiles.includes(fileName)); const fullTestRuns = []; for (let fileIndex = 0; fileIndex < newEventFiles.length; fileIndex += internal_1.AMOUNT_OF_PARALLEL_OPEN_FILES) { const readPromises = []; for (let index = fileIndex; index < newEventFiles.length && index < fileIndex + internal_1.AMOUNT_OF_PARALLEL_OPEN_FILES; index += 1) { const fileName = newEventFiles[index]; (0, asserts_1.assertValueIsDefined)(fileName, 'fileName is defined', { fileIndex, index, newEventFilesLength: newEventFiles.length, }); const promise = (0, readEventFromFile_1.readEventFromFile)(fileName).then((maybeText) => maybeText === undefined ? undefined : { fileName, text: maybeText }); readPromises.push(promise); } const filesWithNames = (await Promise.all(readPromises)).filter((value) => value !== undefined); for (const { fileName, text } of filesWithNames) { try { const fullTestRun = JSON.parse(text); fullTestRuns.push(fullTestRun); } catch (error) { (0, generalLog_1.generalLog)('Caught an error on parsing JSON of test run', { error, fileName, textLenght: text.length, }); const filePath = (0, node_path_1.join)(internal_1.EVENTS_DIRECTORY_PATH, fileName); (0, node_child_process_1.execFile)('cp', [filePath, internal_1.INTERNAL_REPORTS_DIRECTORY_PATH]); } } } const durationWithUnits = (0, getDurationWithUnits_1.getDurationWithUnits)(Date.now() - startTimeInMs); (0, generalLog_1.generalLog)(`Read ${fullTestRuns.length} test runs from "${internal_1.EVENTS_DIRECTORY_PATH}" in ${durationWithUnits}`); return fullTestRuns; }; exports.readEventsFromFiles = readEventsFromFiles;