@@ -17,56 +17,64 @@ type JestHookExposedFS = {
17
17
type FileChange = ( fs : JestHookExposedFS ) => void ;
18
18
type ShouldRunTestSuite = ( testPath : string ) => Promise < boolean > ;
19
19
type TestRunComplete = ( results : AggregatedResult ) => void ;
20
+ type AvailableHooks =
21
+ | 'onFileChange'
22
+ | 'onTestRunComplete'
23
+ | 'shouldRunTestSuite' ;
20
24
21
25
export type JestHookSubscriber = {
22
- fileChange : ( fn : FileChange ) => void ,
26
+ onFileChange : ( fn : FileChange ) => void ,
27
+ onTestRunComplete : ( fn : TestRunComplete ) => void ,
23
28
shouldRunTestSuite : ( fn : ShouldRunTestSuite ) => void ,
24
- testRunComplete : ( fn : TestRunComplete ) => void ,
25
29
} ;
26
30
27
31
export type JestHookEmitter = {
28
- fileChange : ( fs : JestHookExposedFS ) => void ,
32
+ onFileChange : ( fs : JestHookExposedFS ) => void ,
33
+ onTestRunComplete : ( results : AggregatedResult ) => void ,
29
34
shouldRunTestSuite : ( testPath : string ) => Promise < boolean > ,
30
- testRunComplete : ( results : AggregatedResult ) => void ,
31
35
} ;
32
36
33
37
class JestHooks {
34
38
_listeners : {
35
- fileChange : Array < FileChange > ,
39
+ onFileChange : Array < FileChange > ,
40
+ onTestRunComplete : Array < TestRunComplete > ,
36
41
shouldRunTestSuite : Array < ShouldRunTestSuite > ,
37
- testRunComplete : Array < TestRunComplete > ,
38
42
} ;
39
43
40
44
constructor ( ) {
41
45
this . _listeners = {
42
- fileChange : [ ] ,
46
+ onFileChange : [ ] ,
47
+ onTestRunComplete : [ ] ,
43
48
shouldRunTestSuite : [ ] ,
44
- testRunComplete : [ ] ,
45
49
} ;
46
50
}
47
51
48
- isUsed ( hook : string ) {
52
+ isUsed ( hook : AvailableHooks ) {
49
53
return this . _listeners [ hook ] && this . _listeners [ hook ] . length ;
50
54
}
51
55
52
56
getSubscriber ( ) : JestHookSubscriber {
53
57
return {
54
- fileChange : fn => {
55
- this . _listeners . fileChange . push ( fn ) ;
58
+ onFileChange : fn => {
59
+ this . _listeners . onFileChange . push ( fn ) ;
60
+ } ,
61
+ onTestRunComplete : fn => {
62
+ this . _listeners . onTestRunComplete . push ( fn ) ;
56
63
} ,
57
64
shouldRunTestSuite : fn => {
58
65
this . _listeners . shouldRunTestSuite . push ( fn ) ;
59
66
} ,
60
- testRunComplete : fn => {
61
- this . _listeners . testRunComplete . push ( fn ) ;
62
- } ,
63
67
} ;
64
68
}
65
69
66
70
getEmitter ( ) : JestHookEmitter {
67
71
return {
68
- fileChange : fs =>
69
- this . _listeners . fileChange . forEach ( listener => listener ( fs ) ) ,
72
+ onFileChange : fs =>
73
+ this . _listeners . onFileChange . forEach ( listener => listener ( fs ) ) ,
74
+ onTestRunComplete : results =>
75
+ this . _listeners . onTestRunComplete . forEach ( listener =>
76
+ listener ( results ) ,
77
+ ) ,
70
78
shouldRunTestSuite : async testPath =>
71
79
Promise . all (
72
80
this . _listeners . shouldRunTestSuite . map ( listener =>
@@ -75,8 +83,6 @@ class JestHooks {
75
83
) . then ( result =>
76
84
result . every ( shouldRunTestSuite => shouldRunTestSuite ) ,
77
85
) ,
78
- testRunComplete : results =>
79
- this . _listeners . testRunComplete . forEach ( listener => listener ( results ) ) ,
80
86
} ;
81
87
}
82
88
}
0 commit comments