import { render, screen } from '@testing-library/react'; import { describe, expect, it } from 'vitest'; import { Select } from './Select'; describe('Select', () => { it('renders item labels in the trigger instead of raw values', () => { render( , ); expect(screen.getByRole('combobox')).toHaveTextContent('Designer'); expect(screen.getByRole('combobox')).not.toHaveTextContent('designer'); }); it('supports children as item labels', () => { render( , ); expect(screen.getByRole('combobox')).toHaveTextContent('Light'); }); it('keeps the hover border treatment while open', () => { render( , ); expect(screen.getByRole('combobox')).toHaveAttribute('data-popup-open'); expect(screen.getByRole('combobox')).toHaveClass( 'data-popup-open:border-ring/50', ); }); it('labels the trigger with Select.Label', () => { render( , ); expect(screen.getByRole('combobox', { name: 'Role' })).toBeInTheDocument(); expect(screen.getByText('Role')).toHaveAttribute( 'data-slot', 'select-label', ); }); it('renders group labels separately from Select.Label', () => { render( , ); expect(screen.getByText('Appearance')).toHaveAttribute( 'data-slot', 'select-group-label', ); expect(screen.getByRole('combobox')).toHaveTextContent('Light'); }); });