import React, { useState } from 'react'; import { mount } from 'enzyme'; // eslint-disable-next-line import/no-unresolved import Form from '../../form'; import Input from '..'; import focusTest from '../../../tests/shared/focusTest'; import mountTest from '../../../tests/shared/mountTest'; import rtlTest from '../../../tests/shared/rtlTest'; describe('Input', () => { const errorSpy = jest.spyOn(console, 'error').mockImplementation(() => {}); afterEach(() => { errorSpy.mockReset(); }); afterAll(() => { errorSpy.mockRestore(); }); focusTest(Input); mountTest(Input); mountTest(Input.Group); rtlTest(Input); rtlTest(Input.Group); it('should support maxLength', () => { const wrapper = mount(); expect(wrapper.render()).toMatchSnapshot(); }); it('select()', () => { const wrapper = mount(); wrapper.instance().select(); }); it('should support size', () => { const wrapper = mount(); expect(wrapper.find('input').hasClass('ant-input-lg')).toBe(true); expect(wrapper.render()).toMatchSnapshot(); }); it('should support size in form', () => { const wrapper = mount(
, ); expect(wrapper.find('input').hasClass('ant-input-lg')).toBe(true); expect(wrapper.render()).toMatchSnapshot(); }); describe('focus trigger warning', () => { it('not trigger', () => { const wrapper = mount(); wrapper.find('input').instance().focus(); wrapper.setProps({ suffix: 'light', }); expect(errorSpy).not.toHaveBeenCalled(); }); it('trigger warning', () => { const wrapper = mount(, { attachTo: document.body }); wrapper.find('input').instance().focus(); wrapper.setProps({ suffix: 'light', }); expect(errorSpy).toHaveBeenCalledWith( 'Warning: [antd: Input] When Input is focused, dynamic add or remove prefix / suffix will make it lose focus caused by dom structure change. Read more: https://ant.design/components/input/#FAQ', ); wrapper.unmount(); }); }); it('set mouse cursor position', () => { const defaultValue = '11111'; const valLength = defaultValue.length; const wrapper = mount(); wrapper.instance().setSelectionRange(valLength, valLength); expect(wrapper.instance().input.selectionStart).toEqual(5); expect(wrapper.instance().input.selectionEnd).toEqual(5); }); }); describe('prefix and suffix', () => { it('should support className when has suffix', () => { const wrapper = mount(); expect(wrapper.getDOMNode().className.includes('my-class-name')).toBe(true); expect(wrapper.find('input').getDOMNode().className.includes('my-class-name')).toBe(false); }); it('should support className when has prefix', () => { const wrapper = mount(); expect(wrapper.getDOMNode().className.includes('my-class-name')).toBe(true); expect(wrapper.find('input').getDOMNode().className.includes('my-class-name')).toBe(false); }); it('should support hidden when has prefix or suffix', () => { const wrapper = mount( <> , ); expect(wrapper.find('.prefix-with-hidden').at(0).getDOMNode().hidden).toBe(true); expect(wrapper.find('.suffix-with-hidden').at(0).getDOMNode().hidden).toBe(true); }); }); describe('Input setting hidden', () => { it('should support hidden when has prefix or suffix or showCount or allowClear or addonBefore or addonAfter', () => { const wrapper = mount( <>