import { describe, expect, test } from 'bun:test'; import { createCapturingLogger, createConsoleLogger } from './logger'; describe('Hook Logger', () => { describe('createCapturingLogger', () => { test('captures info messages', () => { const { logger, messages } = createCapturingLogger(); logger.info('test message'); expect(messages).toEqual([{ level: 'info', message: 'test message' }]); }); test('captures warn messages', () => { const { logger, messages } = createCapturingLogger(); logger.warn('warning message'); expect(messages).toEqual([{ level: 'warn', message: 'warning message' }]); }); test('captures error messages', () => { const { logger, messages } = createCapturingLogger(); logger.error('error message'); expect(messages).toEqual([{ level: 'error', message: 'error message' }]); }); test('captures success messages', () => { const { logger, messages } = createCapturingLogger(); logger.success('success message'); expect(messages).toEqual([{ level: 'success', message: 'success message' }]); }); test('captures messages in order', () => { const { logger, messages } = createCapturingLogger(); logger.info('first'); logger.warn('second'); logger.error('third'); logger.success('fourth'); expect(messages).toHaveLength(4); expect(messages[0]).toEqual({ level: 'info', message: 'first' }); expect(messages[1]).toEqual({ level: 'warn', message: 'second' }); expect(messages[2]).toEqual({ level: 'error', message: 'third' }); expect(messages[3]).toEqual({ level: 'success', message: 'fourth' }); }); }); describe('createConsoleLogger', () => { test('creates a logger with all methods', () => { const logger = createConsoleLogger('test-module', 'container_created'); expect(typeof logger.info).toBe('function'); expect(typeof logger.warn).toBe('function'); expect(typeof logger.error).toBe('function'); expect(typeof logger.success).toBe('function'); }); }); });