import { render, fireEvent } from '@testing-library/react' import { Input, getInputType } from './' describe('', () => { it('should render the label', async () => { const labelContent = 'label content' const { getByText } = render() expect(getByText(labelContent)).toBeInTheDocument() }) it('should not render forgot password link', async () => { const { queryByTestId } = render( ) const forgotPasswordLink = queryByTestId('forgot-password-link') expect(forgotPasswordLink).not.toBeInTheDocument() }) it('should render forgot password link', async () => { const { queryByTestId } = render( ) const forgotPasswordLink = queryByTestId('forgot-password-link') expect(forgotPasswordLink).toBeInTheDocument() }) it('should not render the eye icon if the input is not of type "password"', async () => { const { queryByTestId } = render() const passwordEye = queryByTestId('password-eye') expect(passwordEye).not.toBeInTheDocument() }) it('should handlePassword with eye icon', async () => { const { findByTestId } = render() const passwordEye = await findByTestId('password-eye') const input = await findByTestId('input') expect(input).toHaveAttribute('type', 'password') fireEvent.click(passwordEye) expect(input).toHaveAttribute('type', 'text') }) }) describe('getInputType', () => { it('should return `text`', async () => { expect(getInputType('password')).toEqual('text') }) it('should return `password`', async () => { expect(getInputType('text')).toEqual('password') }) })