Kuma/tests/lib/billing-address.test.ts
2026-10-01 23:28:32 +02:00

60 lines
1.7 KiB
TypeScript

import { describe, it, expect } from "vitest";
import {
billingAddressFromCheckout,
formatBillingAddressLines,
readBillingAddress,
} from "@/src/lib/billing-address";
const details = {
name: "Erika Mustermann",
email: "erika@example.com",
address: {
line1: "Sandweg 91",
line2: null,
postal_code: "60316",
city: "Frankfurt",
country: "DE",
state: null,
},
};
describe("billingAddressFromCheckout", () => {
it("übernimmt Name und Anschrift aus dem Checkout", () => {
expect(billingAddressFromCheckout(details as never)).toEqual({
name: "Erika Mustermann",
line1: "Sandweg 91",
line2: null,
postalCode: "60316",
city: "Frankfurt",
country: "DE",
});
});
it("liefert null, wenn die Anschrift unvollständig ist", () => {
expect(
billingAddressFromCheckout({
...details,
address: { ...details.address, city: null },
} as never)
).toBeNull();
expect(billingAddressFromCheckout(null)).toBeNull();
});
});
describe("readBillingAddress", () => {
it("verwirft gespeicherte Werte, denen Pflichtteile fehlen", () => {
expect(readBillingAddress({ line1: "Sandweg 91", city: "Frankfurt" })).toBeNull();
expect(readBillingAddress(null)).toBeNull();
expect(readBillingAddress("Sandweg 91")).toBeNull();
});
});
describe("formatBillingAddressLines", () => {
it("lässt Deutschland weg und nennt andere Länder", () => {
const de = billingAddressFromCheckout(details as never)!;
expect(formatBillingAddressLines(de)).toEqual(["Sandweg 91", "60316 Frankfurt"]);
expect(
formatBillingAddressLines({ ...de, country: "AT", postalCode: "1010", city: "Wien" })
).toEqual(["Sandweg 91", "1010 Wien", "Österreich"]);
});
});