Мне нужно проверить записываются ли логи в базу данных. Использую 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);
});