UNPKG

@rollercoaster-dev/rd-logger

Version:

A neurodivergent-friendly logger for Rollercoaster.dev projects

55 lines (54 loc) 2.36 kB
/// <reference types="jest" /> var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import { Hono } from 'hono'; import { serve } from '@hono/node-server'; import request from 'supertest'; import { honoLogger } from '../hono'; // Mock chalk to disable color codes in tests for easier string matching jest.mock('chalk', () => { const chalkMock = { gray: (msg) => msg, whiteBright: (msg) => msg, blue: (msg) => msg, green: (msg) => msg, yellow: (msg) => msg, red: (msg) => msg, magenta: (msg) => msg, dim: (msg) => msg, cyan: (msg) => msg, }; return Object.assign({ __esModule: true, default: chalkMock }, chalkMock); }); describe('Hono Adapter Integration', () => { let server; let consoleSpy; beforeEach(() => { jest.clearAllMocks(); consoleSpy = jest.spyOn(console, 'log').mockImplementation(() => { }); const app = new Hono(); app.use('*', honoLogger()); app.get('/test', (c) => c.json({ ok: true }, 200)); server = serve({ fetch: app.fetch, port: 0 }); }); afterEach(() => { consoleSpy.mockRestore(); server.close(); }); it('should set x-request-id header and log incoming and outgoing requests', () => __awaiter(void 0, void 0, void 0, function* () { const res = yield request(server).get('/test'); expect(res.status).toBe(200); expect(res.headers['x-request-id']).toBeDefined(); expect(consoleSpy).toHaveBeenCalledTimes(2); const [inLog, outLog] = consoleSpy.mock.calls.map(c => c[0]); expect(inLog).toContain('Incoming request'); expect(outLog).toContain('Request completed'); })); });