From 0da7b705c9a6a82a9ebf0522e1f60da2565e797d Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Sun, 11 Jul 2021 08:48:58 -0700 Subject: [PATCH] Added increased code coverage of wlogger --- bin/server.js | 2 +- src/adapters/contact.js | 2 +- src/adapters/index.js | 2 +- src/adapters/nodemailer.js | 2 +- src/adapters/wlogger.js | 16 ++++++---- src/controllers/json-rpc/auth/index.js | 2 +- src/controllers/json-rpc/index.js | 2 +- .../rest-api/middleware/validators.js | 2 +- src/controllers/rest-api/users/controller.js | 2 +- src/use-cases/user.js | 2 +- test/unit/adapters/wlogger.adapter.unit.js | 30 +++++++++++++++++++ 11 files changed, 50 insertions(+), 14 deletions(-) diff --git a/bin/server.js b/bin/server.js index 86f7ce8..b826e5b 100644 --- a/bin/server.js +++ b/bin/server.js @@ -19,7 +19,7 @@ const adminLib = new AdminLib() // const rpc = new JSONRPC() const errorMiddleware = require('../src/controllers/rest-api/middleware/error') -const wlogger = require('../src/adapters/wlogger') +const { wlogger } = require('../src/adapters/wlogger') async function startServer () { // Create a Koa instance. diff --git a/src/adapters/contact.js b/src/adapters/contact.js index 636cc0b..90159ee 100644 --- a/src/adapters/contact.js +++ b/src/adapters/contact.js @@ -9,7 +9,7 @@ const config = require('../../config') const NodeMailer = require('../adapters/nodemailer') const nodemailer = new NodeMailer() -const wlogger = require('../adapters/wlogger') +const { wlogger } = require('../adapters/wlogger') let _this diff --git a/src/adapters/index.js b/src/adapters/index.js index 86bd3ce..846e89f 100644 --- a/src/adapters/index.js +++ b/src/adapters/index.js @@ -10,7 +10,7 @@ const LocalDB = require('./localdb') const LogsAPI = require('./logapi') const Passport = require('./passport') const Nodemailer = require('./nodemailer') -const wlogger = require('./wlogger') +const { wlogger } = require('./wlogger') const JSONFiles = require('./json-files') // Instantiate adapter libraries. diff --git a/src/adapters/nodemailer.js b/src/adapters/nodemailer.js index d8bd1cf..f89ed93 100644 --- a/src/adapters/nodemailer.js +++ b/src/adapters/nodemailer.js @@ -7,7 +7,7 @@ const nodemailer = require('nodemailer') const config = require('../../config') -const wlogger = require('./wlogger') +const { wlogger } = require('./wlogger') let _this diff --git a/src/adapters/wlogger.js b/src/adapters/wlogger.js index e706dfc..1c284a3 100644 --- a/src/adapters/wlogger.js +++ b/src/adapters/wlogger.js @@ -24,9 +24,11 @@ const transport = new winston.transports.DailyRotateFile({ ) }) -transport.on('rotate', function (oldFilename, newFilename) { +transport.on('rotate', notifyRotation) + +function notifyRotation (oldFilename, newFilename) { wlogger.info('Rotating log files') -}) +} // This controls what goes into the log FILES const wlogger = winston.createLogger({ @@ -43,8 +45,7 @@ const wlogger = winston.createLogger({ ] }) -// This controls the logs to CONSOLE -if (config.env !== 'test') { +function outputToConsole () { wlogger.add( new winston.transports.Console({ format: winston.format.simple(), @@ -53,4 +54,9 @@ if (config.env !== 'test') { ) } -module.exports = wlogger +// This controls the logs to CONSOLE +if (config.env !== 'test') { + outputToConsole() +} + +module.exports = { wlogger, notifyRotation, outputToConsole } diff --git a/src/controllers/json-rpc/auth/index.js b/src/controllers/json-rpc/auth/index.js index 5d8dc95..8f651a5 100644 --- a/src/controllers/json-rpc/auth/index.js +++ b/src/controllers/json-rpc/auth/index.js @@ -8,7 +8,7 @@ const jsonrpc = require('jsonrpc-lite') // Local libraries // const AuthLib = require('../../lib/auth') // const UserLib = require('../../../use-cases/user') -const wlogger = require('../../../adapters/wlogger') +const { wlogger } = require('../../../adapters/wlogger') const RateLimit = require('../rate-limit') class AuthRPC { diff --git a/src/controllers/json-rpc/index.js b/src/controllers/json-rpc/index.js index a85deb7..73096f8 100644 --- a/src/controllers/json-rpc/index.js +++ b/src/controllers/json-rpc/index.js @@ -6,7 +6,7 @@ const jsonrpc = require('jsonrpc-lite') // Local support libraries -const wlogger = require('../../adapters/wlogger') +const { wlogger } = require('../../adapters/wlogger') const UserController = require('./users') const AuthController = require('./auth') const AboutController = require('./about') diff --git a/src/controllers/rest-api/middleware/validators.js b/src/controllers/rest-api/middleware/validators.js index 37bf54a..c370a0e 100644 --- a/src/controllers/rest-api/middleware/validators.js +++ b/src/controllers/rest-api/middleware/validators.js @@ -5,7 +5,7 @@ const User = require('../../../adapters/localdb/models/users') const config = require('../../../../config') const jwt = require('jsonwebtoken') -const wlogger = require('../../../adapters/wlogger') +const { wlogger } = require('../../../adapters/wlogger') let _this diff --git a/src/controllers/rest-api/users/controller.js b/src/controllers/rest-api/users/controller.js index 597b12b..7fd9e54 100644 --- a/src/controllers/rest-api/users/controller.js +++ b/src/controllers/rest-api/users/controller.js @@ -8,7 +8,7 @@ // User library for business logic. // const UserLib = require('../../../use-cases/user') -const wlogger = require('../../../adapters/wlogger') +const { wlogger } = require('../../../adapters/wlogger') let _this diff --git a/src/use-cases/user.js b/src/use-cases/user.js index 1c18917..c72ffae 100644 --- a/src/use-cases/user.js +++ b/src/use-cases/user.js @@ -4,7 +4,7 @@ */ // const UserModel = require('../adapters/localdb/models/users') -const wlogger = require('../adapters/wlogger') +const { wlogger } = require('../adapters/wlogger') class UserLib { constructor (localConfig = {}) { diff --git a/test/unit/adapters/wlogger.adapter.unit.js b/test/unit/adapters/wlogger.adapter.unit.js index e69de29..1333adb 100644 --- a/test/unit/adapters/wlogger.adapter.unit.js +++ b/test/unit/adapters/wlogger.adapter.unit.js @@ -0,0 +1,30 @@ +// const assert = require('chai').assert +const { + notifyRotation, + outputToConsole +} = require('../../../src/adapters/wlogger') + +const sinon = require('sinon') + +// let uut +let sandbox + +describe('#wlogger.js', () => { + beforeEach(() => { + sandbox = sinon.createSandbox() + }) + + afterEach(() => sandbox.restore()) + + describe('#notifyRotation', () => { + it('should notify of a log rotation', () => { + notifyRotation() + }) + }) + + describe('#envronment', () => { + it('should write to console in non-test environment', () => { + outputToConsole() + }) + }) +})