import { estaDeBaja } from '../viajes-estados';

describe('estaDeBaja', () => {
  it('factura anulada o rechazada por SIFEN', () => {
    expect(estaDeBaja('FACTURA', { estado: 'Anulado' })).toBe(true);
    expect(estaDeBaja('FACTURA', { estado: 'Rechazado' })).toBe(true);
    expect(estaDeBaja('FACTURA', { estado: 'Aprobado' })).toBe(false);
  });

  it('orden de venta cancelada aunque `estado` siga en borrador', () => {
    expect(estaDeBaja('PEDIDO', { estado: 'borrador', estado_orden: 'cancelada' })).toBe(true);
    expect(estaDeBaja('PEDIDO', { estado: 'borrador', estado_orden: 'aprobada' })).toBe(false);
    expect(estaDeBaja('PEDIDO', { estado: 'cancelado', estado_orden: null })).toBe(true);
  });

  it('presupuesto rechazado, vencido o reemplazado', () => {
    for (const e of ['REJECTED', 'EXPIRED', 'CANCELLED', 'SUPERSEDED']) expect(estaDeBaja('PRESUPUESTO', { estado: e })).toBe(true);
    expect(estaDeBaja('PRESUPUESTO', { estado: 'ACCEPTED' })).toBe(false);
  });

  it('recibo anulado; sin datos no es baja', () => {
    expect(estaDeBaja('RECIBO', { estado: 'anulado' })).toBe(true);
    expect(estaDeBaja('RECIBO', { estado: 'emitido' })).toBe(false);
    expect(estaDeBaja('FACTURA', null)).toBe(false);
  });
});
