UNPKG

cypress-load-balancer

Version:

A simple load balancer for Cypress tests.

26 lines (25 loc) 1.29 kB
import fs from "node:fs"; import utils from "./utils"; export default function addCypressLoadBalancerPlugin(on, testingType) { on("after:run", (results) => { 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.initializeLoadBalancingFiles(); const loadBalancingMap = JSON.parse(fs.readFileSync(utils.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 = (cypressRunResult.config?.testingType || testingType); const fileName = run.spec.relative; utils.createNewEntry(loadBalancingMap, testingType, fileName); utils.updateFileStats(loadBalancingMap, testingType, fileName, run.stats.duration); } //Overwrite original load balancing file utils.saveMapFile(loadBalancingMap); utils.DEBUG("Updated load balancing map with new file averages"); } }); }