import { render, screen } from '@testing-library/react';
import { describe, it, expect } from 'vitest';
import { ReturnStateBadge } from '../return-state-badge';

describe('ReturnStateBadge', () => {
  it('renders state-specific label', () => {
    render(<ReturnStateBadge state="requested" />);
    expect(screen.getByText('Awaiting seller')).toBeTruthy();
  });

  it('renders refunded label', () => {
    render(<ReturnStateBadge state="refunded" />);
    expect(screen.getByText('Refunded')).toBeTruthy();
  });

  it('exposes data-state attribute', () => {
    render(<ReturnStateBadge state="rejected" />);
    expect(screen.getByTestId('return-state-badge').getAttribute('data-state')).toBe('rejected');
  });

  it('renders awaiting_shipment with sky colors', () => {
    render(<ReturnStateBadge state="awaiting_shipment" />);
    const badge = screen.getByTestId('return-state-badge');
    expect(badge.textContent).toBe('Awaiting shipment');
    expect(badge.className).toContain('sky');
  });

  it('renders in_transit with sky colors', () => {
    render(<ReturnStateBadge state="in_transit" />);
    const badge = screen.getByTestId('return-state-badge');
    expect(badge.textContent).toBe('In transit');
    expect(badge.className).toContain('sky');
  });

  it('renders received with indigo colors', () => {
    render(<ReturnStateBadge state="received" />);
    const badge = screen.getByTestId('return-state-badge');
    expect(badge.textContent).toBe('Received');
    expect(badge.className).toContain('indigo');
  });
});
