@@ -2,15 +2,8 @@ import { useTimeout } from "../../src";
2
2
import { createVue } from "../utils" ;
3
3
import { Ref , ref } from "../../src/api" ;
4
4
5
- function sleep ( duration : number ) : Promise < boolean > {
6
- return new Promise ( ( resolve ) => {
7
- setTimeout ( ( ) => {
8
- resolve ( true ) ;
9
- } , duration ) ;
10
- } ) ;
11
- }
12
-
13
5
describe ( "timeout" , ( ) => {
6
+ jest . useFakeTimers ( ) ;
14
7
it ( "should be defined" , ( ) => {
15
8
expect ( useTimeout ) . toBeDefined ( ) ;
16
9
} ) ;
@@ -22,15 +15,19 @@ describe("timeout", () => {
22
15
} , 1000 ) ;
23
16
24
17
expect ( count ) . toBe ( 0 ) ;
25
- await sleep ( 1000 ) ;
18
+ jest . advanceTimersByTime ( 900 ) ;
19
+ // should not be resolved
20
+ expect ( count ) . toBe ( 0 ) ;
21
+
22
+ jest . advanceTimersByTime ( 100 ) ;
26
23
expect ( count ) . toBe ( 1 ) ;
27
24
} ) ;
28
25
29
26
it ( "should set ready true after run callback" , async ( ) => {
30
27
const { ready } = useTimeout ( ( ) => { } , 1000 ) ;
31
28
32
29
expect ( ready . value ) . toBe ( false ) ;
33
- await sleep ( 1000 ) ;
30
+ jest . advanceTimersByTime ( 1000 ) ;
34
31
expect ( ready . value ) . toBe ( true ) ;
35
32
} ) ;
36
33
@@ -45,7 +42,7 @@ describe("timeout", () => {
45
42
46
43
cancel ( ) ;
47
44
48
- await sleep ( 1000 ) ;
45
+ jest . advanceTimersByTime ( 1000 ) ;
49
46
expect ( ready . value ) . toBe ( null ) ;
50
47
expect ( count ) . toBe ( 0 ) ;
51
48
} ) ;
@@ -63,10 +60,21 @@ describe("timeout", () => {
63
60
mount ( ) ;
64
61
65
62
expect ( ready . value ) . toBe ( false ) ;
66
- await sleep ( 1000 ) ;
67
- expect ( ready . value ) . toBe ( true ) ;
63
+ jest . advanceTimersByTime ( 500 ) ;
64
+ expect ( ready . value ) . toBe ( false ) ;
68
65
69
66
destroy ( ) ;
70
67
expect ( ready . value ) . toBe ( null ) ;
71
68
} ) ;
69
+
70
+ it ( "should default the delay to 0" , ( ) => {
71
+ let count = 0 ;
72
+ useTimeout ( ( ) => {
73
+ count ++ ;
74
+ } ) ;
75
+
76
+ expect ( count ) . toBe ( 0 ) ;
77
+ jest . runOnlyPendingTimers ( ) ;
78
+ expect ( count ) . toBe ( 1 ) ;
79
+ } ) ;
72
80
} ) ;
0 commit comments