import React from "react";
import { render, screen } from "@testing-library/react";
import { describe, it, expect } from "vitest";
import { PaymentStatusBadge } from "./PaymentStatusBadge";

describe("PaymentStatusBadge", () => {
  it("renders the 'paid' status correctly", () => {
    render(<PaymentStatusBadge status="paid" />);
    expect(screen.getByText("Bezahlt")).toBeDefined();
  });

  it("renders the 'unpaid' status correctly", () => {
    render(<PaymentStatusBadge status="unpaid" />);
    expect(screen.getByText("Unbezahlt")).toBeDefined();
  });

  it("renders the 'succeeded' status correctly", () => {
    render(<PaymentStatusBadge status="succeeded" />);
    expect(screen.getByText("Erfolgreich")).toBeDefined();
  });

  it("renders the 'pending' status correctly", () => {
    render(<PaymentStatusBadge status="pending" />);
    expect(screen.getByText("Ausstehend")).toBeDefined();
  });

  it("renders the 'cancelled' status correctly", () => {
    render(<PaymentStatusBadge status="cancelled" />);
    expect(screen.getByText("Storniert")).toBeDefined();
  });

  it("renders unknown status as 'Unbekannt' or the status itself", () => {
    render(<PaymentStatusBadge status="unknown" />);
    expect(screen.getByText("unknown")).toBeDefined();
  });

  it("handles empty status", () => {
    render(<PaymentStatusBadge status="" />);
    expect(screen.getByText("Unbekannt")).toBeDefined();
  });
});
