import { render, screen } from '@testing-library/react'; import { describe, it, expect } from 'vitest'; import { Label } from './label'; import React from 'react'; describe('Label', () => { it('renders correctly with default props', () => { render(); const label = screen.getByText('Test Label'); expect(label).toBeInTheDocument(); expect(label).toHaveClass('text-sm'); // md size }); it('renders correctly with different sizes', () => { const { rerender } = render(); expect(screen.getByText('Small')).toHaveClass('text-xs'); rerender(); expect(screen.getByText('Medium')).toHaveClass('text-sm'); rerender(); expect(screen.getByText('Large')).toHaveClass('text-base'); }); it('is associated with the correct input', () => { render( <> ); const label = screen.getByText('Label Text'); expect(label).toHaveAttribute('for', 'input-id'); }); it('has correct data-slot attribute', () => { const { container } = render(); expect(container.querySelector('[data-slot="label"]')).toBeInTheDocument(); }); it('applies custom classNames', () => { const { container } = render(); expect(container.firstChild).toHaveClass('custom-label'); }); });