mirror of
https://github.com/kevinthedang/discord-ollama.git
synced 2026-11-08 10:51:18 -05:00
implement pino poc
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
import { Writable } from 'node:stream'
|
||||
import pino from 'pino'
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { createLogger } from '../src/components/logger.js'
|
||||
|
||||
describe('Pino logger', () => {
|
||||
let output = ''
|
||||
const destination = new Writable({
|
||||
write(chunk, _encoding, callback) {
|
||||
output += chunk.toString()
|
||||
callback()
|
||||
}
|
||||
})
|
||||
const parentLogger = pino({ level: 'trace' }, destination)
|
||||
|
||||
beforeEach(() => {
|
||||
vi.stubEnv('NODE_ENV', 'test')
|
||||
})
|
||||
|
||||
afterEach(() => {
|
||||
vi.unstubAllEnvs()
|
||||
})
|
||||
|
||||
it('creates a child logger with component and caller metadata', () => {
|
||||
output = ''
|
||||
const logger = createLogger({ component: 'test' }, parentLogger)
|
||||
logger.info('bound message')
|
||||
|
||||
const entry = JSON.parse(output)
|
||||
expect(entry.msg).toBe('bound message')
|
||||
expect(entry.component).toBe('test')
|
||||
expect(entry.caller).toMatch(/logger\.test\.ts:\d+:\d+/)
|
||||
})
|
||||
|
||||
it('supports native Pino levels and structured log fields', () => {
|
||||
output = ''
|
||||
const logger = createLogger({ component: 'test' }, parentLogger)
|
||||
logger.warn({ answer: 42 }, 'warning')
|
||||
|
||||
const entry = JSON.parse(output)
|
||||
expect(entry.level).toBe(40)
|
||||
expect(entry.answer).toBe(42)
|
||||
expect(entry.msg).toBe('warning')
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user