import express from 'express';
import assert from 'node:assert/strict';
import { describe, it } from 'node:test';
import extractCorrelationId from '../../src/middlewares/correlationId.js';

describe('correlationId middleware', () => {
  it('uses header', () => {
    const request = { header: (_key: string) => '123' } as express.Request;
    const response = { locals: {} } as express.Response;

    extractCorrelationId(request, response, () => {});

    assert.deepEqual(response.locals, {
      correlationId: '123',
    });
  });

  it('fallback', () => {
    const request = { header: (_key: string) => undefined } as express.Request;
    const response = { locals: {} } as express.Response;

    extractCorrelationId(request, response, () => {});

    assert(response.locals.correlationId);
  });
});
