Browse Source

Added few tests to Logger

sanex3339 7 years ago
parent
commit
042ae023be
1 changed files with 142 additions and 0 deletions
  1. 142 0
      test/unit-tests/logger/Logger.spec.ts

+ 142 - 0
test/unit-tests/logger/Logger.spec.ts

@@ -82,4 +82,146 @@ describe('Logger', () => {
             });
         });
     });
+
+    describe('success (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<ILogger>(ServiceIdentifiers.ILogger);
+
+                consoleLogSpy = sinon.spy(console, 'log');
+                logger.success(LoggingMessage.ObfuscationStarted);
+
+                consoleLogCallResult = consoleLogSpy.called;
+                loggingMessageResult = consoleLogSpy.getCall(0).args[0];
+            });
+
+            it('should call `console.log`', () => {
+                assert.equal(consoleLogCallResult, expectedConsoleLogCallResult);
+            });
+
+            it('should log `success` 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<ILogger>(ServiceIdentifiers.ILogger);
+
+                consoleLogSpy = sinon.spy(console, 'log');
+                logger.success(LoggingMessage.ObfuscationStarted);
+
+                consoleLogCallResult = consoleLogSpy.called;
+            });
+
+            it('shouldn\'t call `console.log`', () => {
+                assert.equal(consoleLogCallResult, expectedConsoleLogCallResult);
+            });
+
+            after(() => {
+                consoleLogSpy.restore();
+                inversifyContainerFacade.unload();
+            });
+        });
+    });
+
+    describe('warn (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<ILogger>(ServiceIdentifiers.ILogger);
+
+                consoleLogSpy = sinon.spy(console, 'log');
+                logger.warn(LoggingMessage.ObfuscationStarted);
+
+                consoleLogCallResult = consoleLogSpy.called;
+                loggingMessageResult = consoleLogSpy.getCall(0).args[0];
+            });
+
+            it('should call `console.log`', () => {
+                assert.equal(consoleLogCallResult, expectedConsoleLogCallResult);
+            });
+
+            it('should log `warn` 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<ILogger>(ServiceIdentifiers.ILogger);
+
+                consoleLogSpy = sinon.spy(console, 'log');
+                logger.warn(LoggingMessage.ObfuscationStarted);
+
+                consoleLogCallResult = consoleLogSpy.called;
+            });
+
+            it('shouldn\'t call `console.log`', () => {
+                assert.equal(consoleLogCallResult, expectedConsoleLogCallResult);
+            });
+
+            after(() => {
+                consoleLogSpy.restore();
+                inversifyContainerFacade.unload();
+            });
+        });
+    });
 });