@@ -14,49 +14,53 @@ it('Should use idle', () => {
14
14
} ) ;
15
15
16
16
it ( 'Should be true after 60e3' , ( ) => {
17
- const { result } = renderHook ( ( ) => useIdle ( 60e3 ) ) ;
18
-
17
+ const { result } = renderHook ( useIdle ) ;
19
18
expect ( result . current . idle ) . toBe ( false ) ;
20
19
21
- act ( ( ) => {
22
- vi . advanceTimersByTime ( 60e3 ) ;
23
- } ) ;
20
+ act ( ( ) => vi . advanceTimersByTime ( 60e3 ) ) ;
24
21
expect ( result . current . idle ) . toBe ( true ) ;
25
22
} ) ;
26
23
27
- it ( 'Should be equal to initially passed state' , ( ) => {
28
- const { result } = renderHook ( ( ) => useIdle ( 60e3 , { initialState : true } ) ) ;
29
-
24
+ it ( 'Should set initial state' , ( ) => {
25
+ const { result } = renderHook ( ( ) => useIdle ( 60e3 , { initialValue : true } ) ) ;
30
26
expect ( result . current . idle ) . toBe ( true ) ;
31
27
} ) ;
32
28
33
29
it ( 'Should be false after interaction' , ( ) => {
34
- const { result } = renderHook ( ( ) => useIdle ( 60e3 , { initialState : true } ) ) ;
30
+ const { result } = renderHook ( ( ) => useIdle ( 60e3 ) ) ;
35
31
32
+ act ( ( ) => vi . advanceTimersByTime ( 60e3 ) ) ;
36
33
expect ( result . current . idle ) . toBe ( true ) ;
37
34
38
- act ( ( ) => {
39
- window . dispatchEvent ( new Event ( 'mousemove' ) ) ;
40
- } ) ;
35
+ act ( ( ) => window . dispatchEvent ( new Event ( 'mousemove' ) ) ) ;
36
+
41
37
expect ( result . current . idle ) . toBe ( false ) ;
42
38
expect ( result . current . lastActive ) . toBeLessThanOrEqual ( Date . now ( ) ) ;
43
39
} ) ;
44
40
45
- it ( 'Should be false after visibilitychange' , ( ) => {
46
- const { result } = renderHook ( ( ) => useIdle ( 60e3 , { initialState : true } ) ) ;
41
+ it ( 'Should be false after visibilitychange event ' , ( ) => {
42
+ const { result } = renderHook ( ( ) => useIdle ( 60e3 ) ) ;
47
43
48
- act ( ( ) => {
49
- document . dispatchEvent ( new Event ( 'visibilitychange' ) ) ;
50
- } ) ;
44
+ act ( ( ) => vi . advanceTimersByTime ( 60e3 ) ) ;
45
+ expect ( result . current . idle ) . toBe ( true ) ;
46
+
47
+ act ( ( ) => document . dispatchEvent ( new Event ( 'visibilitychange' ) ) ) ;
51
48
expect ( result . current . idle ) . toBe ( false ) ;
52
49
expect ( result . current . lastActive ) . toBeLessThanOrEqual ( Date . now ( ) ) ;
53
50
} ) ;
54
51
55
- it ( 'Should not react to unexpected events' , ( ) => {
56
- const { result } = renderHook ( ( ) => useIdle ( 60e3 , { initialState : true , events : [ 'click' ] } ) ) ;
52
+ it ( 'Should work with custom events' , ( ) => {
53
+ const { result } = renderHook ( ( ) => useIdle ( 60e3 , { events : [ 'mousedown' ] } ) ) ;
54
+
55
+ act ( ( ) => vi . advanceTimersByTime ( 60e3 ) ) ;
56
+ expect ( result . current . idle ) . toBe ( true ) ;
57
+
58
+ act ( ( ) => window . dispatchEvent ( new Event ( 'mousedown' ) ) ) ;
59
+ expect ( result . current . idle ) . toBe ( false ) ;
60
+
61
+ act ( ( ) => vi . advanceTimersByTime ( 60e3 ) ) ;
62
+ expect ( result . current . idle ) . toBe ( true ) ;
57
63
58
- act ( ( ) => {
59
- window . dispatchEvent ( new Event ( 'mousemove' ) ) ;
60
- } ) ;
64
+ act ( ( ) => document . dispatchEvent ( new Event ( 'mousemove' ) ) ) ;
61
65
expect ( result . current . idle ) . toBe ( true ) ;
62
66
} ) ;
0 commit comments