import { FacturasService } from './facturas.service';

/**
 * El alcance por sucursal (y por rubro) entra al `where` del dashboard vía
 * `where.AND`. Las condiciones de "venta válida" también usan AND: si se
 * arman con spread y definen su propio AND, pisan el alcance y el dashboard
 * muestra la empresa entera (lo que pasaba con el selector de rubro).
 */
describe('FacturasService.buildWhereVentasValidas', () => {
  const service = Object.create(FacturasService.prototype) as any;

  it('conserva el AND del where base (alcance por sucursal)', () => {
    const base = { empresa_id: 'emp-1', AND: [{ dest: { in: ['001'] } }] };
    const where = service.buildWhereVentasValidas(base);
    expect(where.AND).toEqual(expect.arrayContaining([{ dest: { in: ['001'] } }]));
    expect(where.AND.length).toBeGreaterThan(1);
    expect(where.estado).toEqual({ not: 'Anulado' });
  });

  it('sin AND en la base sigue funcionando', () => {
    const where = service.buildWhereVentasValidas({ empresa_id: 'emp-1' });
    expect(where.AND).toHaveLength(2);
  });
});
