dmc1989
@dmc1989

Как протестировать transports в winston с помощью jest?

Мне нужно проверить записываются ли логи в базу данных. Использую winston-mongodb + winston, тестирую с помощью jest, но не знаю как сделать такую проверку. Думал просто написать функцию и проверять базу через определенный
интервал времени, но эта идея мне кажеться плохой.

Получаю вот такой вот логер.
const loggerHttp = winston.createLogger({
  level: 'info',
  format: winston.format.combine(
    winston.format.timestamp(),
    winston.format.json(),
    winston.format.metadata()
  ),

  defaultMeta: { service: 'user-service' },
  transports: [
    new winston.transports.File({ filename: errorLogFilename, level: 'error' }),
    new winston.transports.File({ filename: logFilename }),
    new winston.transports.MongoDB(mongoLogOptions),
  ],
});

module.exports = loggerHttp;


не знаю как бы мне проверить наличие лога в базе
it('Should write logs to database', () => {
    const logMock = jest
      .spyOn(loggerHttp, 'log')
      .mockImplementation(() => true);

    loggerHttp.log({ level: 'info', message: messageString });

    expect(logFromDatabase.message).toBe(messageString);
  });
  • Вопрос задан
  • 47 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы