jest.mock('winston', () => { const mockFormatFunction = jest.fn((fn) => fn); mockFormatFunction.colorize = jest.fn(); mockFormatFunction.combine = jest.fn(); mockFormatFunction.label = jest.fn(); mockFormatFunction.timestamp = jest.fn(); mockFormatFunction.printf = jest.fn(); mockFormatFunction.errors = jest.fn(); mockFormatFunction.splat = jest.fn(); mockFormatFunction.json = jest.fn(); return { format: mockFormatFunction, createLogger: jest.fn().mockReturnValue({ info: jest.fn(), warn: jest.fn(), debug: jest.fn(), error: jest.fn(), }), transports: { Console: jest.fn(), DailyRotateFile: jest.fn(), File: jest.fn(), }, addColors: jest.fn(), }; }); jest.mock('winston-daily-rotate-file', () => { return jest.fn().mockImplementation(() => { return { level: 'error', filename: '../logs/error-%DATE%.log', datePattern: 'YYYY-MM-DD', zippedArchive: true, maxSize: '20m', maxFiles: '14d', format: 'format', }; }); }); jest.mock('~/config', () => { return { logger: { info: jest.fn(), warn: jest.fn(), debug: jest.fn(), error: jest.fn(), }, }; }); jest.mock('~/config/parsers', () => { return { redactMessage: jest.fn(), redactFormat: jest.fn(), debugTraverse: jest.fn(), }; });