import * as React from 'react' import { fireEvent, render } from '@testing-library/react' import '@testing-library/jest-dom' import { ShortPassword } from '../shortpassword' test('should render shortpassword when visible is true', async () => { const { container } = render() const input = container.querySelector('.nut-shortpassword__input-real') expect(input).toBeTruthy() const psdLength = container.querySelectorAll( '.nut-shortpassword__input-fake__li' ) expect(psdLength.length).toBe(6) expect((input as HTMLInputElement).value).toBe('123') }) test('should render buttonShortpassword and error msg when noButton is false ', () => { let value = 0 let inputValue: number | string = '' const onCancel = () => { value = 1 } const onOk = (value: number | string) => { inputValue = value } const { container } = render( ) const input = container.querySelector('.nut-shortpassword__input-real') expect(input).toBeTruthy() const psdLength = container.querySelectorAll( '.nut-shortpassword__input-fake__li' ) expect(psdLength.length).toBe(4) const error = container.querySelector('.nut-shortpassword__message__error') expect(error).toBeTruthy() expect((error as HTMLElement).innerHTML).toBe('错误信息') const cancle = container.querySelector('.nut-shortpassword__footer__cancel') expect(cancle).toBeTruthy() const sure = container.querySelector('.nut-shortpassword__footer__sure') expect(sure).toBeTruthy() fireEvent.click(cancle as HTMLElement) expect(value).toBe(1) fireEvent.click(sure as HTMLElement) expect(inputValue).toBe(123) }) test('should limit input value when input', async () => { let value = 0 const onChange = (v: string | number) => { value = Number(v) } const { container } = render( ) container.querySelector('input')?.focus() fireEvent.change(container.querySelector('input')!, { target: { value: '111111' }, }) expect(value).toBe(1111) })