diff --git a/packages/nest-logger/src/model/nest-logger.spec.ts b/packages/nest-logger/src/model/nest-logger.spec.ts new file mode 100644 index 00000000..61a7ff77 --- /dev/null +++ b/packages/nest-logger/src/model/nest-logger.spec.ts @@ -0,0 +1,47 @@ +import { Logger, LogLevel } from '@shiftcode/logger' +import { beforeEach, describe, expect, test } from 'vitest' + +import { MockLogTransport } from '../../test/mock-log.transport.js' +import { NestLogger } from './nest-logger.js' + +describe('NestLogger', () => { + let transport: MockLogTransport + let logger: Logger + let nestLogger: NestLogger + + beforeEach(() => { + transport = new MockLogTransport({ logLevel: LogLevel.DEBUG, mockAttribute: 'test' }) + logger = new Logger('TestLogger', '#ffffff', [transport]) + nestLogger = new NestLogger(logger) + }) + + test('error(message, trace, context) forwards args as flat array, not nested', () => { + nestLogger.error('msg', 'trace', 'ctx') + expect(transport.logArgs!.args).toEqual(['msg', 'trace', 'ctx']) + }) + + test('warn(message, context) forwards args as flat array', () => { + nestLogger.warn('msg', 'ctx') + expect(transport.logArgs!.args).toEqual(['msg', 'ctx']) + }) + + test('log(message, context) forwards args as flat array', () => { + nestLogger.log('msg', 'ctx') + expect(transport.logArgs!.args).toEqual(['msg', 'ctx']) + }) + + test('debug(message, context) forwards args as flat array', () => { + nestLogger.debug('msg', 'ctx') + expect(transport.logArgs!.args).toEqual(['msg', 'ctx']) + }) + + test('verbose(message, context) forwards args as flat array', () => { + nestLogger.verbose('msg', 'ctx') + expect(transport.logArgs!.args).toEqual(['msg', 'ctx']) + }) + + test('error with only a message forwards a single-element args array', () => { + nestLogger.error('only message') + expect(transport.logArgs!.args).toEqual(['only message']) + }) +}) diff --git a/packages/nest-logger/test/mock-log.transport.ts b/packages/nest-logger/test/mock-log.transport.ts index 45dbf661..1a08dbe9 100644 --- a/packages/nest-logger/test/mock-log.transport.ts +++ b/packages/nest-logger/test/mock-log.transport.ts @@ -5,8 +5,16 @@ export interface MockLogTransportConfig { mockAttribute: string } +export interface MockLogArgs { + level: LogLevel + clazzName: string + hexColor: string + timestamp: Date + args: unknown[] +} + export class MockLogTransport extends LogTransport { - logArgs: any + logArgs: MockLogArgs | undefined constructor(config: MockLogTransportConfig) { super(config.logLevel)