logger.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import { expect } from "chai";
  2. import Logger, { LogLevel } from "../lib/logger";
  3. describe("Logger", function () {
  4. let oldLoggerPrint;
  5. before(() => {
  6. //@ts-ignore
  7. oldLoggerPrint = Logger._print;
  8. });
  9. it("should be disabled by default", function () {
  10. expect(Logger.logLevel).to.eq(LogLevel.Disabled);
  11. });
  12. it("should be accept new log level", function () {
  13. const checkedLevels = [];
  14. Logger.setLogFunction((logLevel) => {
  15. checkedLevels.push(logLevel);
  16. });
  17. Logger.logLevel = LogLevel.Warnings;
  18. expect(Logger.logLevel).to.eq(LogLevel.Warnings);
  19. Logger.log("");
  20. Logger.warn("");
  21. Logger.error("");
  22. expect(checkedLevels).to.deep.eq([LogLevel.Warnings, LogLevel.Errors]);
  23. });
  24. it("should accept new log function", function () {
  25. Logger.logLevel = LogLevel.All;
  26. const checkedLevels = [];
  27. const testMessage = "test it";
  28. Logger.setLogFunction((logLevel, ...args) => {
  29. checkedLevels.push(logLevel);
  30. expect(args[0]).to.eq(testMessage);
  31. });
  32. Logger.log(testMessage);
  33. Logger.warn(testMessage);
  34. Logger.error(testMessage);
  35. expect(checkedLevels).to.deep.eq([
  36. LogLevel.All,
  37. LogLevel.Warnings,
  38. LogLevel.Errors,
  39. ]);
  40. });
  41. after(() => {
  42. Logger.setLogFunction(oldLoggerPrint);
  43. });
  44. });