Logger.spec.ts 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. });