From edc612e5bea40f044447d6cd410853446efc3922 Mon Sep 17 00:00:00 2001 From: Lam Wei Li Date: Tue, 8 Mar 2022 23:43:36 +0800 Subject: [PATCH] chore(test): improve test coverage for dateFileAppender appenders/dateFile.js - Line 13 - console.error('log4js.dateFileAppender - Writing to file %s, error happened ', filename, err); // eslint-disable-line --- test/tap/dateFileAppender-test.js | 55 +++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/test/tap/dateFileAppender-test.js b/test/tap/dateFileAppender-test.js index c224a96..e48d101 100644 --- a/test/tap/dateFileAppender-test.js +++ b/test/tap/dateFileAppender-test.js @@ -188,5 +188,60 @@ test("../../lib/appenders/dateFile", batch => { t.end(); }); + batch.test("when underlying stream errors", t => { + let consoleArgs; + let errorHandler; + + const DateRollingFileStream = class { + end() { + this.ended = true; + } + + on(evt, cb) { + if (evt === "error") { + this.errored = true; + errorHandler = cb; + } + } + + write() { + this.written = true; + return true; + } + }; + const dateFileAppender = sandbox.require("../../lib/appenders/dateFile", { + globals: { + console: { + error(...args) { + consoleArgs = args; + } + } + }, + requires: { + streamroller: { + DateRollingFileStream + } + } + }); + + dateFileAppender.configure( + { filename: "test1.log", maxLogSize: 100 }, + { basicLayout() {} } + ); + errorHandler({ error: "aargh" }); + + t.test("should log the error to console.error", assert => { + assert.ok(consoleArgs); + assert.equal( + consoleArgs[0], + "log4js.dateFileAppender - Writing to file %s, error happened " + ); + assert.equal(consoleArgs[1], "test1.log"); + assert.equal(consoleArgs[2].error, "aargh"); + assert.end(); + }); + t.end(); + }); + batch.end(); });