import React from 'react' import { render, screen, fireEvent } from '@testing-library/react' import '@testing-library/jest-dom' import { Input } from './index' // Mock the styles import jest.mock('./styles.scss', () => ({})) describe('@joi/core/Input', () => { it('renders correctly', () => { render() expect(screen.getByPlaceholderText('Test input')).toBeInTheDocument() }) it('applies custom className', () => { render() expect(screen.getByRole('textbox')).toHaveClass('custom-class') }) it('aligns text to the right when textAlign prop is set', () => { render() expect(screen.getByRole('textbox')).toHaveClass('text-right') }) it('renders prefix icon when provided', () => { render(Prefix} />) expect(screen.getByTestId('prefix-icon')).toBeInTheDocument() }) it('renders suffix icon when provided', () => { render(Suffix} />) expect(screen.getByTestId('suffix-icon')).toBeInTheDocument() }) it('renders clear icon when clearable is true', () => { render() expect(screen.getByTestId('cross-2-icon')).toBeInTheDocument() }) it('calls onClick when input is clicked', () => { const onClick = jest.fn() render() fireEvent.click(screen.getByRole('textbox')) expect(onClick).toHaveBeenCalledTimes(1) }) it('calls onClear when clear icon is clicked', () => { const onClear = jest.fn() render() fireEvent.click(screen.getByTestId('cross-2-icon')) expect(onClear).toHaveBeenCalledTimes(1) }) })