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

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

  it("renders the 'unfulfilled' status correctly", () => {
    render(<FulfillmentStatusBadge status="unfulfilled" />);
    expect(screen.getByText("Offen")).toBeDefined();
  });

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

  it("renders the 'fulfilled' status correctly", () => {
    render(<FulfillmentStatusBadge status="fulfilled" />);
    expect(screen.getByText("Erfüllt")).toBeDefined();
  });

  it("renders the 'partially-fulfilled' status correctly", () => {
    render(<FulfillmentStatusBadge status="partially-fulfilled" />);
    expect(screen.getByText("Teilweise erfüllt")).toBeDefined();
  });

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

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