import { pagoEnGuaraniesDeFacturaExtranjera } from './pago-moneda';

describe('pagoEnGuaraniesDeFacturaExtranjera', () => {
  it('cuota de USD 500 pagada en Gs. con la factura a 7.300: lleva el pago a dólares', () => {
    expect(pagoEnGuaraniesDeFacturaExtranjera(3_650_000, 7300)).toEqual({ montoGs: 3_650_000, montoBase: 500 });
  });

  it('redondea los dólares a centavos y los guaraníes a enteros', () => {
    expect(pagoEnGuaraniesDeFacturaExtranjera(1_000_000.4, 7321.5)).toEqual({ montoGs: 1_000_000, montoBase: 136.58 });
  });

  it('sin tipo de cambio en la factura no adivina: rechaza', () => {
    expect(() => pagoEnGuaraniesDeFacturaExtranjera(1_000_000, null)).toThrow(/tipo de cambio/);
    expect(() => pagoEnGuaraniesDeFacturaExtranjera(1_000_000, 0)).toThrow(/tipo de cambio/);
  });
});
