MCPcopy Create free account
hub / github.com/react-component/select / blurTest

Function blurTest

tests/shared/blurTest.tsx:7–77  ·  view source on GitHub ↗
(mode: any)

Source from the content-addressed store, hash-verified

5import { type RenderResult, render, fireEvent, createEvent } from '@testing-library/react';
6
7export default function blurTest(mode: any) {
8 describe(`blur of ${mode}`, () => {
9 injectRunAllTimers(jest);
10
11 let wrapper: RenderResult;
12 let container;
13 const selectRef = React.createRef<any>();
14
15 const renderDemo = (props?: any) => (
16 <Select ref={selectRef} mode={mode} {...props}>
17 <Option value="1">1</Option>
18 <Option value="2">2</Option>
19 </Select>
20 );
21
22 beforeEach(() => {
23 container = document.createElement('div');
24 document.body.appendChild(container);
25
26 wrapper = render(renderDemo());
27 jest.useFakeTimers();
28 });
29
30 afterEach(() => {
31 jest.useRealTimers();
32 });
33
34 it('clears inputValue', () => {
35 fireEvent.change(wrapper.container.querySelector('input'), { target: { value: '1' } });
36 fireEvent.blur(wrapper.container.querySelector('input'));
37
38 expect(wrapper.container.querySelector('input').value).toBe('');
39 });
40
41 it('blur()', () => {
42 const handleBlur = jest.fn();
43 wrapper.rerender(renderDemo({ onBlur: handleBlur }));
44 selectRef.current.focus();
45 selectRef.current.blur();
46 expect(handleBlur).toHaveBeenCalled();
47 });
48
49 if (mode === 'multiple' || mode === 'tags') {
50 it('wont blur when click input box', () => {
51 jest.useFakeTimers();
52 const handleBlur = jest.fn();
53 wrapper.rerender(renderDemo({ onBlur: handleBlur }));
54 fireEvent.focus(wrapper.container.querySelector('input'));
55 expect(handleBlur).not.toHaveBeenCalled();
56
57 fireEvent.blur(wrapper.container.querySelector('input'));
58 expect(handleBlur).toHaveBeenCalled();
59
60 fireEvent.blur(wrapper.container.querySelector('input'));
61 jest.runAllTimers();
62 handleBlur.mockReset();
63
64 const preventDefault = jest.fn();

Callers 3

Select.test.tsxFile · 0.85
Tags.test.tsxFile · 0.85
Multiple.test.tsxFile · 0.85

Calls 2

injectRunAllTimersFunction · 0.90
renderDemoFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…