@@ -17,56 +17,64 @@ type JestHookExposedFS = {
1717type FileChange = ( fs : JestHookExposedFS ) => void ;
1818type ShouldRunTestSuite = ( testPath : string ) => Promise < boolean > ;
1919type TestRunComplete = ( results : AggregatedResult ) => void ;
20+ type AvailableHooks =
21+ | 'onFileChange'
22+ | 'onTestRunComplete'
23+ | 'shouldRunTestSuite' ;
2024
2125export type JestHookSubscriber = {
22- fileChange : ( fn : FileChange ) => void ,
26+ onFileChange : ( fn : FileChange ) => void ,
27+ onTestRunComplete : ( fn : TestRunComplete ) => void ,
2328 shouldRunTestSuite : ( fn : ShouldRunTestSuite ) => void ,
24- testRunComplete : ( fn : TestRunComplete ) => void ,
2529} ;
2630
2731export type JestHookEmitter = {
28- fileChange : ( fs : JestHookExposedFS ) => void ,
32+ onFileChange : ( fs : JestHookExposedFS ) => void ,
33+ onTestRunComplete : ( results : AggregatedResult ) => void ,
2934 shouldRunTestSuite : ( testPath : string ) => Promise < boolean > ,
30- testRunComplete : ( results : AggregatedResult ) => void ,
3135} ;
3236
3337class JestHooks {
3438 _listeners : {
35- fileChange : Array < FileChange > ,
39+ onFileChange : Array < FileChange > ,
40+ onTestRunComplete : Array < TestRunComplete > ,
3641 shouldRunTestSuite : Array < ShouldRunTestSuite > ,
37- testRunComplete : Array < TestRunComplete > ,
3842 } ;
3943
4044 constructor ( ) {
4145 this . _listeners = {
42- fileChange : [ ] ,
46+ onFileChange : [ ] ,
47+ onTestRunComplete : [ ] ,
4348 shouldRunTestSuite : [ ] ,
44- testRunComplete : [ ] ,
4549 } ;
4650 }
4751
48- isUsed ( hook : string ) {
52+ isUsed ( hook : AvailableHooks ) {
4953 return this . _listeners [ hook ] && this . _listeners [ hook ] . length ;
5054 }
5155
5256 getSubscriber ( ) : JestHookSubscriber {
5357 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 ) ;
5663 } ,
5764 shouldRunTestSuite : fn => {
5865 this . _listeners . shouldRunTestSuite . push ( fn ) ;
5966 } ,
60- testRunComplete : fn => {
61- this . _listeners . testRunComplete . push ( fn ) ;
62- } ,
6367 } ;
6468 }
6569
6670 getEmitter ( ) : JestHookEmitter {
6771 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+ ) ,
7078 shouldRunTestSuite : async testPath =>
7179 Promise . all (
7280 this . _listeners . shouldRunTestSuite . map ( listener =>
@@ -75,8 +83,6 @@ class JestHooks {
7583 ) . then ( result =>
7684 result . every ( shouldRunTestSuite => shouldRunTestSuite ) ,
7785 ) ,
78- testRunComplete : results =>
79- this . _listeners . testRunComplete . forEach ( listener => listener ( results ) ) ,
8086 } ;
8187 }
8288}
0 commit comments