import { cargarNombresDeValores, fraseDeFila } from './frase-regla';

const prisma: any = {
  empresas_sucursales: { findMany: jest.fn().mockResolvedValue([]) },
  categorias: { findMany: jest.fn().mockResolvedValue([]) },
  rubros: { findMany: jest.fn().mockResolvedValue([]) },
};

const fila = (condiciones: unknown) => ({
  id: 'r1',
  concepto: 'PROVEEDORES',
  orden: 1,
  cuenta_id: 'c1',
  vigente_desde: new Date('2026-01-01'),
  vigente_hasta: null,
  condiciones,
  modo: 'CUENTA',
  estado: 'ACTIVA',
  cuenta: { codigo: '2.01.01.02', descripcion: 'Proveedores locales' },
});

describe('frase de una regla con valores fijos', () => {
  it('muestra el tipo de proveedor y el canal con su nombre, no el código interno', async () => {
    const condiciones = [
      { dimension: 'TIPO_PROVEEDOR', operador: 'EN', valores: ['PROVEEDOR_LOCAL', 'ACREEDOR_VARIO'] },
      { dimension: 'CANAL', operador: 'EN', valores: ['FACTURA'] },
    ];
    const nombres = await cargarNombresDeValores(prisma, 'emp', [condiciones]);
    const frase = fraseDeFila(fila(condiciones), nombres);
    expect(frase).toContain('Proveedor local');
    expect(frase).toContain('Acreedor vario');
    expect(frase).toContain('Factura');
    expect(frase).not.toMatch(/PROVEEDOR_LOCAL|ACREEDOR_VARIO/);
  });
});
