import { describe, it, expect } from 'vitest' import { render, screen } from '@testing-library/react' import { ExperienceCard } from './ExperienceCard' const DEFAULT_PROPS = { title: 'Senior Developer', company: 'Acme Corp', period: '2021 – 2024', description: 'Built scalable frontend systems.', } describe('ExperienceCard', () => { describe('rendering', () => { it('renders the job title', () => { render() expect(screen.getByText('Senior Developer')).toBeInTheDocument() }) it('renders the company name', () => { render() expect(screen.getByText('Acme Corp')).toBeInTheDocument() }) it('renders the period badge', () => { render() expect(screen.getByText('2021 – 2024')).toBeInTheDocument() }) it('renders the description', () => { render() expect(screen.getByText('Built scalable frontend systems.')).toBeInTheDocument() }) }) describe('structure', () => { it('title is rendered as an h4', () => { render() expect(screen.getByRole('heading', { level: 4 })).toHaveTextContent('Senior Developer') }) it('period badge has brutal-border, bg-carbon-black, text-ochre-clay, text-sm', () => { render() const badge = screen.getByText('2021 – 2024') expect(badge).toHaveClass('brutal-border', 'bg-carbon-black', 'text-ochre-clay', 'text-sm') }) it('company paragraph has opacity-80', () => { render() const company = screen.getByText('Acme Corp') expect(company.tagName).toBe('P') expect(company).toHaveClass('opacity-80') }) it('description paragraph has text-base and max-w-[700px]', () => { render() const desc = screen.getByText('Built scalable frontend systems.') expect(desc).toHaveClass('text-base', 'max-w-[700px]') }) it('card has brutal-border class (from Card component)', () => { const { container } = render() expect(container.firstChild).toHaveClass('brutal-border') }) }) describe('className passthrough', () => { it('forwards className to the card', () => { const { container } = render() expect(container.firstChild).toHaveClass('custom-class') }) }) })