1
1
import { jestFakeTimersAreEnabled } from './jestFakeTimersAreEnabled'
2
2
3
+ const DEFAULT_TIMEOUT = 1000
4
+
3
5
function createTimeoutController ( timeout : number | false , options : { allowFakeTimers : boolean } ) {
4
6
let timeoutId : NodeJS . Timeout
5
7
const timeoutCallbacks : Array < ( ) => void > = [ ]
@@ -8,7 +10,7 @@ function createTimeoutController(timeout: number | false, options: { allowFakeTi
8
10
const { allowFakeTimers = false } = options
9
11
10
12
const advanceTime = async ( currentMs : number ) => {
11
- if ( currentMs < timeout ) {
13
+ if ( currentMs < ( ! timeout === true ? DEFAULT_TIMEOUT : timeout ) ) {
12
14
jest . advanceTimersByTime ( 1 )
13
15
14
16
await Promise . resolve ( )
@@ -28,17 +30,15 @@ function createTimeoutController(timeout: number | false, options: { allowFakeTi
28
30
return new Promise < void > ( ( resolve , reject ) => {
29
31
timeoutController . timedOut = false
30
32
timeoutController . onTimeout ( resolve )
31
-
32
33
if ( timeout ) {
33
34
timeoutId = setTimeout ( ( ) => {
34
35
timeoutController . timedOut = true
35
36
timeoutCallbacks . forEach ( ( callback ) => callback ( ) )
36
37
resolve ( )
37
38
} , timeout )
38
-
39
- if ( jestFakeTimersAreEnabled ( ) && allowFakeTimers ) {
40
- advanceTime ( 0 )
41
- }
39
+ }
40
+ if ( jestFakeTimersAreEnabled ( ) && allowFakeTimers ) {
41
+ advanceTime ( 0 )
42
42
}
43
43
44
44
promise
@@ -60,4 +60,4 @@ function createTimeoutController(timeout: number | false, options: { allowFakeTi
60
60
return timeoutController
61
61
}
62
62
63
- export { createTimeoutController }
63
+ export { createTimeoutController , DEFAULT_TIMEOUT }
0 commit comments