From 290fe3c0555271907525cab39fa5caa8822360ba Mon Sep 17 00:00:00 2001 From: jon gadsden Date: Tue, 24 Jan 2023 14:58:12 +0000 Subject: [PATCH] add desktop logger unit tests --- td.vue/jest.config.js | 2 +- td.vue/src/desktop/logger.js | 20 ++++++++------------ td.vue/tests/unit/desktop/logger.spec.js | 24 +++++++++++++++++++----- 3 files changed, 28 insertions(+), 18 deletions(-) diff --git a/td.vue/jest.config.js b/td.vue/jest.config.js index d66326a55..e75567db8 100644 --- a/td.vue/jest.config.js +++ b/td.vue/jest.config.js @@ -17,7 +17,7 @@ module.exports = { '!src/service/demo/**', '!**/node_modules/**', '!**/coverage/**', - '!src/main.js', // Bootstrap code + '!src/main*.js', // Bootstrap code for web app and desktop app '!src/plugins/*.js' // Boostrap code ], resetMocks: true, diff --git a/td.vue/src/desktop/logger.js b/td.vue/src/desktop/logger.js index 9577478bb..8efbf0609 100644 --- a/td.vue/src/desktop/logger.js +++ b/td.vue/src/desktop/logger.js @@ -1,12 +1,12 @@ 'use strict'; +export const log = require('electron-log'); -const logLevel = process.env.LOG_LEVEL || 'debug'; +export const consoleLogLevel = 'error'; +export const fileLogLevel = process.env.LOG_LEVEL || 'debug'; const isDevelopment = process.env.NODE_ENV !== 'production'; const isMacOS = process.platform === 'darwin'; const isWin = (process.platform === 'win32' || process.platform === 'win64'); -export const log = require('electron-log'); - if (isDevelopment) { if (isMacOS) { console.log('** Redirecting console to log ~/Library/Logs/Threat\\ Dragon/main.log'); @@ -17,16 +17,12 @@ if (isDevelopment) { } } -// set up electron-specific logLevel for the log file -log.info('Electron log level is set to: ' + logLevel); -log.transports.file.level = logLevel; +// set up electron-specific fileLogLevel for the log file +log.info('Electron log level is set to: ' + fileLogLevel); +log.transports.file.level = fileLogLevel; -// redirect electron-console messages to electron-log file (also using logLevel) +// redirect electron-console messages to electron-log file (also uses fileLogLevel) Object.assign(console, log.functions); // only echo error messages to console -log.transports.console.level = 'error'; - -export default { - log -}; +log.transports.console.level = consoleLogLevel; diff --git a/td.vue/tests/unit/desktop/logger.spec.js b/td.vue/tests/unit/desktop/logger.spec.js index b7a8ca13c..d1fc3c994 100644 --- a/td.vue/tests/unit/desktop/logger.spec.js +++ b/td.vue/tests/unit/desktop/logger.spec.js @@ -1,11 +1,25 @@ -// these unit tests are waiting to be filled in during the desktop development +import {consoleLogLevel, fileLogLevel, log} from '@/desktop/logger.js'; + describe('desktop/logger.js', () => { - describe('Desktop logger', () => { - it('should exit cleanly', () => { - // this is a placeholder for the real test yet to be written - expect(true).toBe(true); + describe('Electron server log levels', () => { + + it('should set the file log level', () => { + expect(fileLogLevel).toMatch(process.env.LOG_LEVEL); + }); + + it('should set the console log level', () => { + expect(consoleLogLevel).toMatch('error'); + }); + + }); + + describe('Electron server log transports', () => { + + it('should be defined', () => { + expect(log.transports).toBeDefined(); }); + }); });