UNPKG

@chtsinc/ch-playwright-report

Version:

Custom Playwright Reporter that logs test and execution results to MongoDB

57 lines 2.02 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getExtension = getExtension; exports.getContentType = getContentType; exports.zipFolder = zipFolder; const path_1 = __importDefault(require("path")); const fs_1 = __importDefault(require("fs")); const archiver_1 = __importDefault(require("archiver")); const ch_logger_1 = require("@chtsinc/ch-logger"); const logger = (0, ch_logger_1.getLogger)(); /** * Extracts the file extension (without the dot) from a filename. * @param filename - The name (or path) of the file. * @returns The lowercase extension (e.g. "html"), or undefined if none. */ function getExtension(filename) { const ext = path_1.default.extname(filename); if (!ext) { return undefined; } return ext.slice(1).toLowerCase(); } function getContentType(ext) { switch (ext.toLowerCase()) { case "html": return "text/html"; case "webm": return "video/webm"; case "zip": return "application/zip"; default: return "application/octet-stream"; } } async function zipFolder(reportFolder, zipFile) { try { await new Promise((resolve, reject) => { const output = fs_1.default.createWriteStream(zipFile); const archive = (0, archiver_1.default)("zip", { zlib: { level: 9 } }); output.on("close", () => resolve()); output.on("error", (err) => reject(err)); archive.on("error", (err) => reject(err)); archive.pipe(output); archive.directory(reportFolder, false); archive.finalize().catch?.(reject); }); return true; } catch (error) { logger.error(`CHPlaywrightReporter: Error zipping folder: ${reportFolder}`, error); return false; } } //# sourceMappingURL=file-util.js.map