const { test } = require("tap"); const sandbox = require("@log4js-node/sandboxed-module"); // passenger provides a non-functional cluster module, // but it does not implement the event emitter functions const passengerCluster = { disconnect() { return false; }, fork() { return false; }, setupMaster() { return false; }, isWorker: true, isMaster: false, schedulingPolicy: false, settings: false, worker: false, workers: false }; const vcr = require("../../lib/appenders/recording"); const log4js = sandbox.require("../../lib/log4js", { requires: { cluster: passengerCluster, "./appenders/recording": vcr } }); test("When running in Passenger", batch => { batch.test("it should still log", t => { log4js.configure({ appenders: { vcr: { type: "recording" } }, categories: { default: { appenders: ["vcr"], level: "info" } }, disableClustering: true }); log4js.getLogger().info("This should still work"); const events = vcr.replay(); t.equal(events.length, 1); t.equal(events[0].data[0], "This should still work"); t.end(); }); batch.end(); });