@unito/integration-sdk
Version:
Integration SDK
56 lines (42 loc) • 1.67 kB
text/typescript
import express from 'express';
import assert from 'node:assert/strict';
import { describe, it } from 'node:test';
import injectLogger from '../../src/middlewares/logger.js';
describe('logger middleware', () => {
it('initializes', () => {
const request = { header: (_key: string) => undefined } as express.Request;
const response = { locals: {} } as express.Response;
injectLogger(request, response, () => {});
assert.deepEqual(response.locals.logger.getMetadata(), {
correlation_id: undefined,
});
});
it('correlation id', () => {
const request = { header: (_key: string) => undefined } as express.Request;
const response = { locals: { correlationId: '123' } } as express.Response;
injectLogger(request, response, () => {});
assert.deepEqual(response.locals.logger.getMetadata(), {
correlation_id: '123',
});
});
it('additional context', () => {
const additional = JSON.stringify({
foo: 'bar',
});
const request = { header: (_key: string) => additional } as express.Request;
const response = { locals: { correlationId: '123' } } as express.Response;
injectLogger(request, response, () => {});
assert.deepEqual(response.locals.logger.getMetadata(), {
correlation_id: '123',
foo: 'bar',
});
});
it('malformed additional context', () => {
const request = { header: (_key: string) => 'nope' } as express.Request;
const response = { locals: { correlationId: '123' } } as express.Response;
injectLogger(request, response, () => {});
assert.deepEqual(response.locals.logger.getMetadata(), {
correlation_id: '123',
});
});
});