// @vitest-environment jsdom
import { describe, it, expect } from 'vitest'
import { render, screen } from '@testing-library/react'
import Badge from './Badge.jsx'

// 이 파일이 하는 일: Badge 컴포넌트가 "코드값 → 한국어 라벨 + 색"을 올바로 그리는지,
//   그리고 표에 없는 값이 와도 죽지 않고 안전하게 처리하는지(폴백) 검증한다.

describe('Badge', () => {
  it('알려진 상태값을 한국어 라벨로 보여준다', () => {
    render(<Badge value="PASSED" />)
    expect(screen.getByText('통과')).toBeInTheDocument()
  })

  it('상태에 맞는 색 클래스를 붙인다', () => {
    render(<Badge value="SUBMITTED" />)
    const badge = screen.getByText('제출됨')
    expect(badge).toHaveClass('badge', 'badge-amber')
  })

  it('변환표에 없는 값이 와도 죽지 않고 원래 값을 그대로 보여준다(폴백)', () => {
    // 학습 포인트: 서버에 새 상태가 생겨도 화면이 깨지지 않아야 한다는 "방어적 기본값"을 못 박는다.
    render(<Badge value="ALIEN_STATUS" />)
    const badge = screen.getByText('ALIEN_STATUS')
    expect(badge).toBeInTheDocument()
    expect(badge).toHaveClass('badge-primary') // 기본 색으로 대체
  })
})
