import express from 'express';
import assert from 'node:assert/strict';
import { describe, it } from 'node:test';

import extractRelations from '../../src/middlewares/relations.js';

describe('relations middleware', () => {
  it('data', () => {
    const request = { query: { relations: 'foo,bar,baz' } } as express.Request<
      // eslint-disable-next-line @typescript-eslint/no-explicit-any
      any,
      object,
      object,
      { relations: string }
    >;
    const response = { locals: {} } as express.Response;

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

    assert.deepEqual(response.locals, {
      relations: ['foo', 'bar', 'baz'],
    });
  });

  it('no data', () => {
    const request = { query: {} } as express.Request;
    const response = { locals: {} } as express.Response;

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

    assert.deepEqual(response.locals, {
      relations: [],
    });
  });
});
