43 lines
1.0 KiB
TypeScript
43 lines
1.0 KiB
TypeScript
import { StructuredLogger } from './structured-logger.service';
|
|
|
|
describe('StructuredLogger', () => {
|
|
const pino = {
|
|
debug: jest.fn(),
|
|
info: jest.fn(),
|
|
warn: jest.fn(),
|
|
error: jest.fn(),
|
|
};
|
|
|
|
beforeEach(() => jest.clearAllMocks());
|
|
|
|
it('passes only allowlisted fields to Pino', () => {
|
|
const logger = new StructuredLogger(pino as never);
|
|
|
|
logger.info('event', {
|
|
asOf: '2026-10-10T12:00:00.000Z',
|
|
userId: 'user',
|
|
brokerageAccountId: 'account',
|
|
password: 'secret',
|
|
});
|
|
|
|
expect(pino.info).toHaveBeenCalledWith(
|
|
{
|
|
asOf: '2026-10-10T12:00:00.000Z',
|
|
userId: 'user',
|
|
brokerageAccountId: 'account',
|
|
},
|
|
'event',
|
|
);
|
|
});
|
|
|
|
it('delegates event levels to Pino', () => {
|
|
const logger = new StructuredLogger(pino as never);
|
|
|
|
logger.event('debug', 'debug event');
|
|
logger.event('warn', 'warn event');
|
|
|
|
expect(pino.debug).toHaveBeenCalledWith({}, 'debug event');
|
|
expect(pino.warn).toHaveBeenCalledWith({}, 'warn event');
|
|
});
|
|
});
|