import { describe, it, expect } from "vitest";
import { brigadeProvisionSchema } from "./brigade";

const valid = {
  name: "FF Musterdorf",
  strasse: "Hauptstraße 1",
  plz: "3100",
  ort: "St. Pölten",
  telefon: "+43 2742 12345",
  adminEmail: "admin@ff-musterdorf.at",
  adminName: "Max Muster",
};

describe("brigadeProvisionSchema", () => {
  it("akzeptiert gültige Bereitstellungsdaten", () => {
    expect(brigadeProvisionSchema.safeParse(valid).success).toBe(true);
  });

  it("verlangt einen Wehr-Namen", () => {
    expect(
      brigadeProvisionSchema.safeParse({ ...valid, name: "" }).success,
    ).toBe(false);
  });

  it("normalisiert die Admin-E-Mail auf Kleinbuchstaben", () => {
    const r = brigadeProvisionSchema.parse({
      ...valid,
      adminEmail: "ADMIN@FF.AT",
    });
    expect(r.adminEmail).toBe("admin@ff.at");
  });

  it("lehnt ungültige E-Mail ab", () => {
    expect(
      brigadeProvisionSchema.safeParse({ ...valid, adminEmail: "keine-mail" })
        .success,
    ).toBe(false);
  });

  it("optionale Felder dürfen fehlen", () => {
    const { email, wehrfuehrer, ...rest } = {
      ...valid,
      email: undefined,
      wehrfuehrer: undefined,
    };
    void email;
    void wehrfuehrer;
    expect(brigadeProvisionSchema.safeParse(rest).success).toBe(true);
  });
});
