1
- import React , { createRef } from 'react' ;
2
- import isMobile from 'rc-util/lib/isMobile' ;
3
1
import { act , fireEvent , render } from '@testing-library/react' ;
4
- import type { TriggerProps } from '../src' ;
2
+ import isMobile from 'rc-util/lib/isMobile' ;
3
+ import React from 'react' ;
5
4
import Trigger from '../src' ;
6
5
import { placementAlignMap } from './util' ;
7
6
8
7
jest . mock ( 'rc-util/lib/isMobile' ) ;
9
8
10
- describe . skip ( 'Trigger.Mobile' , ( ) => {
9
+ describe ( 'Trigger.Mobile' , ( ) => {
11
10
beforeAll ( ( ) => {
12
11
( isMobile as any ) . mockImplementation ( ( ) => true ) ;
13
12
} ) ;
14
13
15
- function getTrigger (
16
- props ?: Partial <
17
- TriggerProps & React . ClassAttributes < InstanceType < typeof Trigger > >
18
- > ,
19
- ) {
14
+ beforeEach ( ( ) => {
15
+ jest . useFakeTimers ( ) ;
16
+ } ) ;
17
+
18
+ afterEach ( ( ) => {
19
+ jest . clearAllTimers ( ) ;
20
+ jest . useRealTimers ( ) ;
21
+ } ) ;
22
+
23
+ function flush ( ) {
24
+ act ( ( ) => {
25
+ jest . runAllTimers ( ) ;
26
+ } ) ;
27
+ }
28
+
29
+ it ( 'auto change hover to click' , ( ) => {
30
+ render (
31
+ < Trigger
32
+ popupAlign = { placementAlignMap . left }
33
+ popup = { < strong > trigger</ strong > }
34
+ >
35
+ < div className = "target" />
36
+ </ Trigger > ,
37
+ ) ;
38
+
39
+ flush ( ) ;
40
+ expect ( document . querySelector ( '.rc-trigger-popup' ) ) . toBeFalsy ( ) ;
41
+
42
+ // Hover not work
43
+ fireEvent . mouseEnter ( document . querySelector ( '.target' ) ) ;
44
+ flush ( ) ;
45
+ expect ( document . querySelector ( '.rc-trigger-popup' ) ) . toBeFalsy ( ) ;
46
+
47
+ // Click work
48
+ fireEvent . click ( document . querySelector ( '.target' ) ) ;
49
+ flush ( ) ;
50
+ expect ( document . querySelector ( '.rc-trigger-popup' ) ) . toBeTruthy ( ) ;
51
+ } ) ;
52
+
53
+ // ====================================================================================
54
+ // ZombieJ: back when we plan to support mobile
55
+
56
+ function getTrigger ( props ?: any ) {
20
57
return (
21
58
< Trigger
22
59
action = { [ 'click' ] }
@@ -32,7 +69,7 @@ describe.skip('Trigger.Mobile', () => {
32
69
) ;
33
70
}
34
71
35
- it ( 'mobile config' , ( ) => {
72
+ it . skip ( 'mobile config' , ( ) => {
36
73
const { container } = render (
37
74
getTrigger ( {
38
75
mobile : {
@@ -53,7 +90,7 @@ describe.skip('Trigger.Mobile', () => {
53
90
} ) ;
54
91
} ) ;
55
92
56
- it ( 'popupRender' , ( ) => {
93
+ it . skip ( 'popupRender' , ( ) => {
57
94
const { container } = render (
58
95
getTrigger ( {
59
96
mobile : {
@@ -71,8 +108,8 @@ describe.skip('Trigger.Mobile', () => {
71
108
expect ( document . querySelector ( '.rc-trigger-popup' ) ) . toMatchSnapshot ( ) ;
72
109
} ) ;
73
110
74
- it ( 'click inside not close' , ( ) => {
75
- const triggerRef = createRef < InstanceType < typeof Trigger > > ( ) ;
111
+ it . skip ( 'click inside not close' , ( ) => {
112
+ const triggerRef = React . createRef < any > ( ) ;
76
113
const { container } = render ( getTrigger ( { ref : triggerRef } ) ) ;
77
114
fireEvent . click ( container . querySelector ( '.target' ) ) ;
78
115
expect ( triggerRef . current . state . popupVisible ) . toBeTruthy ( ) ;
@@ -86,7 +123,7 @@ describe.skip('Trigger.Mobile', () => {
86
123
expect ( triggerRef . current . state . popupVisible ) . toBeFalsy ( ) ;
87
124
} ) ;
88
125
89
- it ( 'legacy array children' , ( ) => {
126
+ it . skip ( 'legacy array children' , ( ) => {
90
127
const { container } = render (
91
128
getTrigger ( {
92
129
popup : [ < div key = { 0 } > Light</ div > , < div key = { 1 } > Bamboo</ div > ] ,
0 commit comments