logger.test.ts 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import { assertEquals } from 'test-deps';
  2. import { getLogLevel, Logger } from 'infra/logger.ts';
  3. const testLogger = Logger.getInstance('test');
  4. Deno.test('log.debug', async () => {
  5. const debugLog = 'this is a debug message';
  6. testLogger.debug(debugLog);
  7. const lastLog = testLogger.getLastMessage();
  8. assertEquals(lastLog, `[DEBUG] ${debugLog}`, 'debug log message');
  9. });
  10. Deno.test('log.info', async () => {
  11. const infoLog = 'this is a info message';
  12. testLogger.info(infoLog);
  13. const lastLog = testLogger.getLastMessage();
  14. assertEquals(lastLog, `[INFO] ${infoLog}`, 'info log message');
  15. });
  16. Deno.test('log.warn', async () => {
  17. const warnLog = 'this is a warn message';
  18. testLogger.warn(warnLog);
  19. const lastLog = testLogger.getLastMessage();
  20. assertEquals(lastLog, `[WARNING] ${warnLog}`, 'warn log message');
  21. });
  22. Deno.test('log.error', async () => {
  23. const errorLog = 'this is a error message';
  24. testLogger.error(errorLog);
  25. const lastLog = testLogger.getLastMessage();
  26. assertEquals(lastLog, `[ERROR] ${errorLog}`, 'error log message');
  27. });
  28. Deno.test('getLogLevel with valid level', () => {
  29. const level = 'INFO';
  30. assertEquals(getLogLevel(level), level);
  31. });
  32. Deno.test('getLogLevel with invalid level', () => {
  33. const level = 'INVALID_LEVEL';
  34. assertEquals(getLogLevel(level), 'WARNING');
  35. });
  36. Deno.test('getLogLevel with undefined level', () => {
  37. assertEquals(getLogLevel(undefined), 'WARNING');
  38. });
  39. Deno.test('logLevel with DEBUG_LEVEL environment variable set', () => {
  40. const originalDebugLevel = Deno.env.get('DEBUG_LEVEL');
  41. Deno.env.set('DEBUG_LEVEL', 'INFO');
  42. assertEquals(getLogLevel(Deno.env.get('DEBUG_LEVEL')), 'INFO');
  43. if (originalDebugLevel) {
  44. Deno.env.set('DEBUG_LEVEL', originalDebugLevel);
  45. } else {
  46. Deno.env.delete('DEBUG_LEVEL');
  47. }
  48. });
  49. Deno.test('logLevel with DEBUG_LEVEL environment variable not set', () => {
  50. const originalDebugLevel = Deno.env.get('DEBUG_LEVEL');
  51. Deno.env.delete('DEBUG_LEVEL');
  52. assertEquals(getLogLevel(Deno.env.get('DEBUG_LEVEL')), 'WARNING');
  53. if (originalDebugLevel) {
  54. Deno.env.set('DEBUG_LEVEL', originalDebugLevel);
  55. }
  56. });