/* eslint-disable max-lines-per-function */ import React from 'react'; import type { OptionType } from '@/components/ui'; import { cleanup, render, screen, setup } from '@/lib/test-utils'; import { Select } from './select'; afterEach(cleanup); describe('Select component ', () => { const options: OptionType[] = [ { value: 'chocolate', label: 'Chocolate' }, { value: 'strawberry', label: 'Strawberry' }, { value: 'vanilla', label: 'Vanilla' }, ]; it('should render correctly ', () => { const onSelect = jest.fn(); render( , ); expect(screen.getByTestId('select-trigger')).toBeOnTheScreen(); expect(screen.getByTestId('select-label')).toBeOnTheScreen(); expect(screen.getByTestId('select-label')).toHaveTextContent('Select'); }); it('should render the error correctly ', () => { const onSelect = jest.fn(); render( , ); const selectTrigger = screen.getByTestId('select-trigger'); await user.press(selectTrigger); expect(screen.getByTestId('select-item-chocolate')).toBeOnTheScreen(); expect(screen.getByTestId('select-item-strawberry')).toBeOnTheScreen(); expect(screen.getByTestId('select-item-vanilla')).toBeOnTheScreen(); }); it('should call onSelect on selecting an option', async () => { const onSelect = jest.fn(); const { user } = setup(