index.test.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
  3. var _iterator = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/symbol/iterator"));
  4. var _symbol = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/symbol"));
  5. var _index = _interopRequireDefault(require("./index"));
  6. var __read = void 0 && (void 0).__read || function (o, n) {
  7. var m = typeof _symbol["default"] === "function" && o[_iterator["default"]];
  8. if (!m) return o;
  9. var i = m.call(o),
  10. r,
  11. ar = [],
  12. e;
  13. try {
  14. while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {
  15. ar.push(r.value);
  16. }
  17. } catch (error) {
  18. e = {
  19. error: error
  20. };
  21. } finally {
  22. try {
  23. if (r && !r.done && (m = i["return"])) m.call(i);
  24. } finally {
  25. if (e) throw e.error;
  26. }
  27. }
  28. return ar;
  29. };
  30. var __spread = void 0 && (void 0).__spread || function () {
  31. for (var ar = [], i = 0; i < arguments.length; i++) {
  32. ar = ar.concat(__read(arguments[i]));
  33. }
  34. return ar;
  35. };
  36. var isCallReport = false;
  37. jest.mock('./report-v3', function () {
  38. return {
  39. reportV3: function reportV3() {
  40. isCallReport = true;
  41. }
  42. };
  43. }); // eslint-disable-next-line no-console
  44. var originalLog = console.log; // eslint-disable-next-line no-console
  45. var originalWarn = console.warn; // eslint-disable-next-line no-console
  46. var originalError = console.error;
  47. var logMessage = [];
  48. var warnMessage = [];
  49. var errorMessage = [];
  50. beforeAll(function () {
  51. // eslint-disable-next-line no-console
  52. console.log = jest.fn(function () {
  53. var args = [];
  54. for (var _i = 0; _i < arguments.length; _i++) {
  55. args[_i] = arguments[_i];
  56. }
  57. return logMessage.push.apply(logMessage, __spread(args));
  58. }); // eslint-disable-next-line no-console
  59. console.warn = jest.fn(function () {
  60. var args = [];
  61. for (var _i = 0; _i < arguments.length; _i++) {
  62. args[_i] = arguments[_i];
  63. }
  64. return warnMessage.push.apply(warnMessage, __spread(args));
  65. }); // eslint-disable-next-line no-console
  66. console.error = jest.fn(function () {
  67. var args = [];
  68. for (var _i = 0; _i < arguments.length; _i++) {
  69. args[_i] = arguments[_i];
  70. }
  71. return errorMessage.push.apply(errorMessage, __spread(args));
  72. });
  73. });
  74. afterAll(function () {
  75. // eslint-disable-next-line no-console
  76. console.log = originalLog; // eslint-disable-next-line no-console
  77. console.warn = originalWarn; // eslint-disable-next-line no-console
  78. console.error = originalError;
  79. });
  80. describe('test logger', function () {
  81. test('level', function () {
  82. var infoLogger = new _index["default"]('', true, 'INFO');
  83. infoLogger.info('test1'); // eslint-disable-next-line @typescript-eslint/ban-ts-comment
  84. // @ts-ignore
  85. expect(logMessage).toStrictEqual([infoLogger.getPrintPrefix('INFO'), 'test1']);
  86. infoLogger.warn('test2'); // eslint-disable-next-line @typescript-eslint/ban-ts-comment
  87. // @ts-ignore
  88. expect(warnMessage).toStrictEqual([infoLogger.getPrintPrefix('WARN'), 'test2']);
  89. infoLogger.error('test3'); // eslint-disable-next-line @typescript-eslint/ban-ts-comment
  90. // @ts-ignore
  91. expect(errorMessage).toStrictEqual([infoLogger.getPrintPrefix('ERROR'), 'test3']); // 清空消息
  92. logMessage.splice(0, logMessage.length);
  93. warnMessage.splice(0, warnMessage.length);
  94. errorMessage.splice(0, errorMessage.length);
  95. var warnLogger = new _index["default"]('', true, 'WARN');
  96. warnLogger.info('test1');
  97. expect(logMessage).toStrictEqual([]);
  98. warnLogger.warn('test2'); // eslint-disable-next-line @typescript-eslint/ban-ts-comment
  99. // @ts-ignore
  100. expect(warnMessage).toStrictEqual([warnLogger.getPrintPrefix('WARN'), 'test2']);
  101. warnLogger.error('test3'); // eslint-disable-next-line @typescript-eslint/ban-ts-comment
  102. // @ts-ignore
  103. expect(errorMessage).toStrictEqual([warnLogger.getPrintPrefix('ERROR'), 'test3']); // 清空消息
  104. logMessage.splice(0, logMessage.length);
  105. warnMessage.splice(0, warnMessage.length);
  106. errorMessage.splice(0, errorMessage.length);
  107. var errorLogger = new _index["default"]('', true, 'ERROR');
  108. errorLogger.info('test1');
  109. expect(logMessage).toStrictEqual([]);
  110. errorLogger.warn('test2');
  111. expect(warnMessage).toStrictEqual([]);
  112. errorLogger.error('test3'); // eslint-disable-next-line @typescript-eslint/ban-ts-comment
  113. // @ts-ignore
  114. expect(errorMessage).toStrictEqual([errorLogger.getPrintPrefix('ERROR'), 'test3']); // 清空消息
  115. logMessage.splice(0, logMessage.length);
  116. warnMessage.splice(0, warnMessage.length);
  117. errorMessage.splice(0, errorMessage.length);
  118. var offLogger = new _index["default"]('', true, 'OFF');
  119. offLogger.info('test1');
  120. expect(logMessage).toStrictEqual([]);
  121. offLogger.warn('test2');
  122. expect(warnMessage).toStrictEqual([]);
  123. offLogger.error('test3');
  124. expect(errorMessage).toStrictEqual([]);
  125. });
  126. test('unique id', function () {
  127. // eslint-disable-next-line @typescript-eslint/ban-ts-comment
  128. // @ts-ignore
  129. var startId = _index["default"].id; // eslint-disable-next-line no-new
  130. new _index["default"]('', true, 'OFF'); // eslint-disable-next-line no-new
  131. new _index["default"]('', true, 'OFF');
  132. var last = new _index["default"]('', true, 'OFF'); // eslint-disable-next-line @typescript-eslint/ban-ts-comment
  133. // @ts-ignore
  134. expect(last.id).toStrictEqual(startId + 3);
  135. });
  136. test('report', function () {
  137. var logger1 = new _index["default"]('', false, 'OFF');
  138. logger1.report(null);
  139. expect(isCallReport).toBeTruthy();
  140. isCallReport = false;
  141. var logger2 = new _index["default"]('', true, 'OFF');
  142. logger2.report(null);
  143. expect(isCallReport).toBeFalsy();
  144. });
  145. });