import { ConsoleLogService } from '../../src/cli/services/consoleLog.service'; const originalConsole = console; let caughtMessage: any; declare var console: any; export function interceptConsole(interceptions: any): object { console = { // tslint:disable-next-line log: function () { interceptions.log = arguments; }, // tslint:disable-next-line warn: function () { interceptions.warn = arguments; }, // tslint:disable-next-line error: function () { interceptions.error = arguments; }, }; return interceptions; } export function restoreConsole() { console = originalConsole; } describe('CLI Console log service', () => { let logService: ConsoleLogService; beforeEach(() => { caughtMessage = {}; interceptConsole(caughtMessage); logService = new ConsoleLogService(true); }); afterAll(() => { restoreConsole(); }); it('should redirect all console to error if BW_RESPONSE env is true', () => { process.env.BW_RESPONSE = 'true'; logService.debug('this is a debug message'); expect(caughtMessage).toEqual({ error: jasmine.arrayWithExactContents(['this is a debug message']) }); }); it('should not redirect console to error if BW_RESPONSE != true', () => { process.env.BW_RESPONSE = 'false'; logService.debug('debug'); logService.info('info'); logService.warning('warning'); logService.error('error'); expect(caughtMessage).toEqual({ log: jasmine.arrayWithExactContents(['info']), warn: jasmine.arrayWithExactContents(['warning']), error: jasmine.arrayWithExactContents(['error']), }); }); });