UNPKG

@rollercoaster-dev/rd-logger

Version:

A neurodivergent-friendly logger for Rollercoaster.dev projects

56 lines (55 loc) 2.38 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 express from 'express'; import request from 'supertest'; import { expressLogger } from '../express'; // 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('Express Adapter Integration', () => { let app; let consoleSpy; beforeEach(() => { jest.clearAllMocks(); consoleSpy = jest.spyOn(console, 'log').mockImplementation(() => { }); app = express(); app.use(expressLogger()); app.get('/test', (_req, res) => { res.setHeader('x-test-header', 'test'); res.status(200).json({ ok: true }); }); }); afterEach(() => { consoleSpy.mockRestore(); }); 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(app).get('/test'); expect(res.status).toBe(200); expect(res.headers['x-request-id']).toBeDefined(); expect(res.headers['x-test-header']).toBe('test'); expect(consoleSpy).toHaveBeenCalledTimes(2); const logs = consoleSpy.mock.calls.map(c => c[0]); expect(logs[0]).toContain('Incoming request'); expect(logs[1]).toContain('Request completed'); })); });