Logger.spec.ts 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. import 'reflect-metadata';
  2. import { assert } from 'chai';
  3. import * as sinon from 'sinon';
  4. import { InversifyContainerFacade } from '../../../src/container/InversifyContainerFacade';
  5. import { ServiceIdentifiers } from '../../../src/container/ServiceIdentifiers';
  6. import { IInversifyContainerFacade } from '../../../src/interfaces/container/IInversifyContainerFacade';
  7. import { ILogger } from '../../../src/interfaces/logger/ILogger';
  8. import { LoggingMessage } from '../../../src/enums/logger/LoggingMessage';
  9. describe('Logger', () => {
  10. describe('info (loggingMessage: LoggingMessage, value?: string | number): void', () => {
  11. describe('`log` option is enabled', () => {
  12. const loggingMessage: string = '[javascript-obfuscator] Obfuscation started...';
  13. const expectedConsoleLogCallResult: boolean = true;
  14. let consoleLogSpy: sinon.SinonSpy,
  15. consoleLogCallResult: boolean,
  16. inversifyContainerFacade: IInversifyContainerFacade,
  17. loggingMessageResult: string;
  18. before(() => {
  19. inversifyContainerFacade = new InversifyContainerFacade();
  20. inversifyContainerFacade.load('', {
  21. log: true
  22. });
  23. const logger: ILogger = inversifyContainerFacade.get<ILogger>(ServiceIdentifiers.ILogger);
  24. consoleLogSpy = sinon.spy(console, 'log');
  25. logger.info(LoggingMessage.ObfuscationStarted);
  26. consoleLogCallResult = consoleLogSpy.called;
  27. loggingMessageResult = consoleLogSpy.getCall(0).args[0];
  28. });
  29. it('should call `console.log`', () => {
  30. assert.equal(consoleLogCallResult, expectedConsoleLogCallResult);
  31. });
  32. it('should log `info` message to the console', () => {
  33. assert.include(loggingMessageResult, loggingMessage);
  34. });
  35. after(() => {
  36. consoleLogSpy.restore();
  37. inversifyContainerFacade.unload();
  38. });
  39. });
  40. describe('`log` option is disabled', () => {
  41. const expectedConsoleLogCallResult: boolean = false;
  42. let consoleLogSpy: sinon.SinonSpy,
  43. consoleLogCallResult: boolean,
  44. inversifyContainerFacade: IInversifyContainerFacade;
  45. before(() => {
  46. inversifyContainerFacade = new InversifyContainerFacade();
  47. inversifyContainerFacade.load('', {
  48. log: false
  49. });
  50. const logger: ILogger = inversifyContainerFacade.get<ILogger>(ServiceIdentifiers.ILogger);
  51. consoleLogSpy = sinon.spy(console, 'log');
  52. logger.info(LoggingMessage.ObfuscationStarted);
  53. consoleLogCallResult = consoleLogSpy.called;
  54. });
  55. it('shouldn\'t call `console.log`', () => {
  56. assert.equal(consoleLogCallResult, expectedConsoleLogCallResult);
  57. });
  58. after(() => {
  59. consoleLogSpy.restore();
  60. inversifyContainerFacade.unload();
  61. });
  62. });
  63. });
  64. describe('success (loggingMessage: LoggingMessage, value?: string | number): void', () => {
  65. describe('`log` option is enabled', () => {
  66. const loggingMessage: string = '[javascript-obfuscator] Obfuscation started...';
  67. const expectedConsoleLogCallResult: boolean = true;
  68. let consoleLogSpy: sinon.SinonSpy,
  69. consoleLogCallResult: boolean,
  70. inversifyContainerFacade: IInversifyContainerFacade,
  71. loggingMessageResult: string;
  72. before(() => {
  73. inversifyContainerFacade = new InversifyContainerFacade();
  74. inversifyContainerFacade.load('', {
  75. log: true
  76. });
  77. const logger: ILogger = inversifyContainerFacade.get<ILogger>(ServiceIdentifiers.ILogger);
  78. consoleLogSpy = sinon.spy(console, 'log');
  79. logger.success(LoggingMessage.ObfuscationStarted);
  80. consoleLogCallResult = consoleLogSpy.called;
  81. loggingMessageResult = consoleLogSpy.getCall(0).args[0];
  82. });
  83. it('should call `console.log`', () => {
  84. assert.equal(consoleLogCallResult, expectedConsoleLogCallResult);
  85. });
  86. it('should log `success` message to the console', () => {
  87. assert.include(loggingMessageResult, loggingMessage);
  88. });
  89. after(() => {
  90. consoleLogSpy.restore();
  91. inversifyContainerFacade.unload();
  92. });
  93. });
  94. describe('`log` option is disabled', () => {
  95. const expectedConsoleLogCallResult: boolean = false;
  96. let consoleLogSpy: sinon.SinonSpy,
  97. consoleLogCallResult: boolean,
  98. inversifyContainerFacade: IInversifyContainerFacade;
  99. before(() => {
  100. inversifyContainerFacade = new InversifyContainerFacade();
  101. inversifyContainerFacade.load('', {
  102. log: false
  103. });
  104. const logger: ILogger = inversifyContainerFacade.get<ILogger>(ServiceIdentifiers.ILogger);
  105. consoleLogSpy = sinon.spy(console, 'log');
  106. logger.success(LoggingMessage.ObfuscationStarted);
  107. consoleLogCallResult = consoleLogSpy.called;
  108. });
  109. it('shouldn\'t call `console.log`', () => {
  110. assert.equal(consoleLogCallResult, expectedConsoleLogCallResult);
  111. });
  112. after(() => {
  113. consoleLogSpy.restore();
  114. inversifyContainerFacade.unload();
  115. });
  116. });
  117. });
  118. describe('warn (loggingMessage: LoggingMessage, value?: string | number): void', () => {
  119. describe('`log` option is enabled', () => {
  120. const loggingMessage: string = '[javascript-obfuscator] Obfuscation started...';
  121. const expectedConsoleLogCallResult: boolean = true;
  122. let consoleLogSpy: sinon.SinonSpy,
  123. consoleLogCallResult: boolean,
  124. inversifyContainerFacade: IInversifyContainerFacade,
  125. loggingMessageResult: string;
  126. before(() => {
  127. inversifyContainerFacade = new InversifyContainerFacade();
  128. inversifyContainerFacade.load('', {
  129. log: true
  130. });
  131. const logger: ILogger = inversifyContainerFacade.get<ILogger>(ServiceIdentifiers.ILogger);
  132. consoleLogSpy = sinon.spy(console, 'log');
  133. logger.warn(LoggingMessage.ObfuscationStarted);
  134. consoleLogCallResult = consoleLogSpy.called;
  135. loggingMessageResult = consoleLogSpy.getCall(0).args[0];
  136. });
  137. it('should call `console.log`', () => {
  138. assert.equal(consoleLogCallResult, expectedConsoleLogCallResult);
  139. });
  140. it('should log `warn` message to the console', () => {
  141. assert.include(loggingMessageResult, loggingMessage);
  142. });
  143. after(() => {
  144. consoleLogSpy.restore();
  145. inversifyContainerFacade.unload();
  146. });
  147. });
  148. describe('`log` option is disabled', () => {
  149. const expectedConsoleLogCallResult: boolean = false;
  150. let consoleLogSpy: sinon.SinonSpy,
  151. consoleLogCallResult: boolean,
  152. inversifyContainerFacade: IInversifyContainerFacade;
  153. before(() => {
  154. inversifyContainerFacade = new InversifyContainerFacade();
  155. inversifyContainerFacade.load('', {
  156. log: false
  157. });
  158. const logger: ILogger = inversifyContainerFacade.get<ILogger>(ServiceIdentifiers.ILogger);
  159. consoleLogSpy = sinon.spy(console, 'log');
  160. logger.warn(LoggingMessage.ObfuscationStarted);
  161. consoleLogCallResult = consoleLogSpy.called;
  162. });
  163. it('shouldn\'t call `console.log`', () => {
  164. assert.equal(consoleLogCallResult, expectedConsoleLogCallResult);
  165. });
  166. after(() => {
  167. consoleLogSpy.restore();
  168. inversifyContainerFacade.unload();
  169. });
  170. });
  171. });
  172. });