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');
});
});