UNPKG

cypress-load-balancer

Version:

A simple load balancer for Cypress tests.

33 lines (32 loc) 1.73 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = addCypressLoadBalancerPlugin; const node_fs_1 = __importDefault(require("node:fs")); const utils_1 = __importDefault(require("./utils")); function addCypressLoadBalancerPlugin(on, testingType) { on("after:run", (results) => { var _a; if (results.status === "failed") { console.error("cypress-load-balancer", "Cypress failed to execute, so load balancing is skipped"); } else { const cypressRunResult = results; //Prep load balancing file if not existing and read it utils_1.default.initializeLoadBalancingFiles(); const loadBalancingMap = JSON.parse(node_fs_1.default.readFileSync(utils_1.default.MAIN_LOAD_BALANCING_MAP_FILE_PATH).toString()); for (const run of cypressRunResult.runs) { // @ts-expect-error THe Cypress config type for PublicConfig is wrong testingType = (((_a = cypressRunResult.config) === null || _a === void 0 ? void 0 : _a.testingType) || testingType); const fileName = run.spec.relative; utils_1.default.createNewEntry(loadBalancingMap, testingType, fileName); utils_1.default.updateFileStats(loadBalancingMap, testingType, fileName, run.stats.duration); } //Overwrite original load balancing file utils_1.default.saveMapFile(loadBalancingMap); utils_1.default.DEBUG("Updated load balancing map with new file averages"); } }); }