import { MAPEO_TENANT, dtoAValoresTenant } from "./taller-parametros.mapeo";

describe("dtoAValoresTenant", () => {
  it("solo incluye los campos definidos en el DTO, mapeados a su clave del catálogo", () => {
    const resultado = dtoAValoresTenant({ usaFacturacion: false, whatsappPhoneNumberId: "123" });
    expect(resultado).toEqual({
      "facturacion.usa_facturacion": false,
      "notificaciones.whatsapp_phone_number_id": "123",
    });
  });

  it("un DTO vacío produce un objeto vacío", () => {
    expect(dtoAValoresTenant({})).toEqual({});
  });

  it("MAPEO_TENANT cubre las 12 claves tenant-scope relevantes al formulario", () => {
    expect(Object.values(MAPEO_TENANT).sort()).toEqual(
      [
        "facturacion.usa_facturacion",
        "inventario.usa_validacion",
        "productos.permite_crear",
        "tiendas.permite_crear",
        "notificaciones.usa_whatsapp",
        "notificaciones.whatsapp_phone_number_id",
        "notificaciones.whatsapp_access_token",
        "notificaciones.whatsapp_api_version",
        "notificaciones.whatsapp_template_cotizacion",
        "notificaciones.whatsapp_template_estado",
        "notificaciones.whatsapp_template_language",
        "notificaciones.whatsapp_default_country_code",
      ].sort(),
    );
  });
});
