From b4b3534c95954c3a318edb3db8dcd387d3c5b362 Mon Sep 17 00:00:00 2001 From: sanex3339 Date: Sun, 30 Jul 2017 01:09:29 +0300 Subject: [PATCH] Added simple Logger tests --- test/index.spec.ts | 1 + test/unit-tests/logger/Logger.spec.ts | 85 +++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 test/unit-tests/logger/Logger.spec.ts diff --git a/test/index.spec.ts b/test/index.spec.ts index fc4a13f4..cfc26fea 100644 --- a/test/index.spec.ts +++ b/test/index.spec.ts @@ -10,6 +10,7 @@ import './unit-tests/cli/sanitizers/SourceMapModeSanitizer.spec'; import './unit-tests/cli/sanitizers/StringArrayEncodingSanitizer.spec'; import './unit-tests/cli/utils/CLIUtils.spec'; import './unit-tests/decorators/initializable/Initializable.spec'; +import './unit-tests/logger/Logger.spec'; import './unit-tests/node/node-appender/NodeAppender.spec'; import './unit-tests/node/node-utils/NodeUtils.spec'; import './unit-tests/obfuscation-result/ObfuscationResult.spec'; diff --git a/test/unit-tests/logger/Logger.spec.ts b/test/unit-tests/logger/Logger.spec.ts new file mode 100644 index 00000000..14bf6098 --- /dev/null +++ b/test/unit-tests/logger/Logger.spec.ts @@ -0,0 +1,85 @@ +import 'reflect-metadata'; + +import { assert } from 'chai'; +import * as sinon from 'sinon'; + +import { InversifyContainerFacade } from '../../../src/container/InversifyContainerFacade'; +import { ServiceIdentifiers } from '../../../src/container/ServiceIdentifiers'; + +import { IInversifyContainerFacade } from '../../../src/interfaces/container/IInversifyContainerFacade'; +import { ILogger } from '../../../src/interfaces/logger/ILogger'; + +import { LoggingMessage } from '../../../src/enums/logger/LoggingMessage'; + +describe('Logger', () => { + describe('info (loggingMessage: LoggingMessage, value?: string | number): void', () => { + describe('`log` option is enabled', () => { + const loggingMessage: string = '[javascript-obfuscator] Obfuscation started...'; + const expectedConsoleLogCallResult: boolean = true; + + let consoleLogSpy: sinon.SinonSpy, + consoleLogCallResult: boolean, + inversifyContainerFacade: IInversifyContainerFacade, + loggingMessageResult: string; + + before(() => { + inversifyContainerFacade = new InversifyContainerFacade(); + inversifyContainerFacade.load('', { + log: true + }); + + const logger: ILogger = inversifyContainerFacade.get(ServiceIdentifiers.ILogger); + + consoleLogSpy = sinon.spy(console, 'log'); + logger.info(LoggingMessage.ObfuscationStarted); + + consoleLogCallResult = consoleLogSpy.called; + loggingMessageResult = consoleLogSpy.getCall(0).args[0]; + }); + + it('should call `console.log`', () => { + assert.equal(consoleLogCallResult, expectedConsoleLogCallResult); + }); + + it('should log `info` message to the console', () => { + assert.include(loggingMessageResult, loggingMessage); + }); + + after(() => { + consoleLogSpy.restore(); + inversifyContainerFacade.unload(); + }); + }); + + describe('`log` option is disabled', () => { + const expectedConsoleLogCallResult: boolean = false; + + let consoleLogSpy: sinon.SinonSpy, + consoleLogCallResult: boolean, + inversifyContainerFacade: IInversifyContainerFacade; + + before(() => { + inversifyContainerFacade = new InversifyContainerFacade(); + inversifyContainerFacade.load('', { + log: false + }); + + const logger: ILogger = inversifyContainerFacade.get(ServiceIdentifiers.ILogger); + + consoleLogSpy = sinon.spy(console, 'log'); + logger.info(LoggingMessage.ObfuscationStarted); + + consoleLogCallResult = consoleLogSpy.called; + }); + + it('shouldn\'t call `console.log`', () => { + assert.equal(consoleLogCallResult, expectedConsoleLogCallResult); + }); + + after(() => { + consoleLogSpy.restore(); + inversifyContainerFacade.unload(); + }); + }); + }); +});