index.test.js 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  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. });
  44. var originalLog = console.log;
  45. var originalWarn = console.warn;
  46. var originalError = console.error;
  47. var logMessage = [];
  48. var warnMessage = [];
  49. var errorMessage = [];
  50. beforeAll(function () {
  51. console.log = jest.fn(function () {
  52. var args = [];
  53. for (var _i = 0; _i < arguments.length; _i++) {
  54. args[_i] = arguments[_i];
  55. }
  56. return logMessage.push.apply(logMessage, __spread(args));
  57. });
  58. console.warn = jest.fn(function () {
  59. var args = [];
  60. for (var _i = 0; _i < arguments.length; _i++) {
  61. args[_i] = arguments[_i];
  62. }
  63. return warnMessage.push.apply(warnMessage, __spread(args));
  64. });
  65. console.error = jest.fn(function () {
  66. var args = [];
  67. for (var _i = 0; _i < arguments.length; _i++) {
  68. args[_i] = arguments[_i];
  69. }
  70. return errorMessage.push.apply(errorMessage, __spread(args));
  71. });
  72. });
  73. afterAll(function () {
  74. console.log = originalLog;
  75. console.warn = originalWarn;
  76. console.error = originalError;
  77. });
  78. describe('test logger', function () {
  79. test('test level', function () {
  80. var infoLogger = new _index["default"]('', true, 'INFO');
  81. infoLogger.info('test1');
  82. expect(logMessage).toStrictEqual(["Qiniu-JS-SDK [INFO][1]: ", 'test1']);
  83. infoLogger.warn('test2');
  84. expect(warnMessage).toStrictEqual(['Qiniu-JS-SDK [WARN][1]: ', 'test2']);
  85. infoLogger.error('test3');
  86. expect(errorMessage).toStrictEqual(['Qiniu-JS-SDK [ERROR][1]: ', 'test3']); // 清空消息
  87. logMessage.splice(0, logMessage.length);
  88. warnMessage.splice(0, warnMessage.length);
  89. errorMessage.splice(0, errorMessage.length);
  90. var warnLogger = new _index["default"]('', true, 'WARN');
  91. warnLogger.info('test1');
  92. expect(logMessage).toStrictEqual([]);
  93. warnLogger.warn('test2');
  94. expect(warnMessage).toStrictEqual(['Qiniu-JS-SDK [WARN][2]: ', 'test2']);
  95. warnLogger.error('test3');
  96. expect(errorMessage).toStrictEqual(['Qiniu-JS-SDK [ERROR][2]: ', 'test3']); // 清空消息
  97. logMessage.splice(0, logMessage.length);
  98. warnMessage.splice(0, warnMessage.length);
  99. errorMessage.splice(0, errorMessage.length);
  100. var errorLogger = new _index["default"]('', true, 'ERROR');
  101. errorLogger.info('test1');
  102. expect(logMessage).toStrictEqual([]);
  103. errorLogger.warn('test2');
  104. expect(warnMessage).toStrictEqual([]);
  105. errorLogger.error('test3');
  106. expect(errorMessage).toStrictEqual(['Qiniu-JS-SDK [ERROR][3]: ', 'test3']); // 清空消息
  107. logMessage.splice(0, logMessage.length);
  108. warnMessage.splice(0, warnMessage.length);
  109. errorMessage.splice(0, errorMessage.length);
  110. var offLogger = new _index["default"]('', true, 'OFF');
  111. offLogger.info('test1');
  112. expect(logMessage).toStrictEqual([]);
  113. offLogger.warn('test2');
  114. expect(warnMessage).toStrictEqual([]);
  115. offLogger.error('test3');
  116. expect(errorMessage).toStrictEqual([]);
  117. });
  118. test('test unique id', function () {
  119. // @ts-ignore
  120. var startId = _index["default"].id;
  121. new _index["default"]('', true, 'OFF');
  122. new _index["default"]('', true, 'OFF');
  123. var last = new _index["default"]('', true, 'OFF'); // @ts-ignore
  124. expect(last.id).toStrictEqual(startId + 3);
  125. });
  126. test('test report', function () {
  127. var logger1 = new _index["default"]('', false, 'OFF');
  128. logger1.report(null);
  129. expect(isCallReport).toBeTruthy();
  130. isCallReport = false;
  131. var logger2 = new _index["default"]('', true, 'OFF');
  132. logger2.report(null);
  133. expect(isCallReport).toBeFalsy();
  134. });
  135. });