import { montosCajaPorMedio } from './caja-cobro';

describe('montosCajaPorMedio', () => {
  it('sin mora suma el capital por medio', () => {
    const r = montosCajaPorMedio(
      [
        { medio_pago_id: 'efe', monto_pagado: 100 },
        { medio_pago_id: 'efe', monto_pagado: 50 },
        { medio_pago_id: 'tar', monto_pagado: 30 },
      ],
      0,
    );
    expect(Object.fromEntries(r)).toEqual({ efe: 150, tar: 30 });
  });

  it('la mora y el interés entran por el medio de la primera línea', () => {
    const r = montosCajaPorMedio([{ medio_pago_id: 'efe', monto_pagado: 1000 }], 250);
    expect(r.get('efe')).toBe(1250);
  });

  it('un cobro solo de interés (línea en cero) igual entra a caja', () => {
    const r = montosCajaPorMedio([{ medio_pago_id: 'efe', monto_pagado: 0 }], 60000);
    expect(r.get('efe')).toBe(60000);
  });

  it('acepta montos Decimal de Prisma', () => {
    const r = montosCajaPorMedio([{ medio_pago_id: 'efe', monto_pagado: '100.0000' }], 0);
    expect(r.get('efe')).toBe(100);
  });
});
