@@ -22,12 +22,15 @@ type TestResultListener = (testResult: TestResult) => void;
22
22
23
23
type AddListener < TListener > = ( listener : TListener ) => ( ) => void ;
24
24
25
+ type ClearAllListeners = ( ) => void ;
26
+
25
27
type ServerInstance = {
26
28
setTestConfig : ( testConfig : TestConfig ) => void ;
27
29
getTestConfig : ( ) => TestConfig ;
28
30
addTestStartedListener : AddListener < TestStartedListener > ;
29
31
addTestResultListener : AddListener < TestResultListener > ;
30
32
addTestDoneListener : AddListener < TestDoneListener > ;
33
+ clearAllTestDoneListeners : ClearAllListeners ;
31
34
forceTestCompletion : ( ) => void ;
32
35
setReadyToAcceptTestResults : ( isReady : boolean ) => void ;
33
36
isReadyToAcceptTestResults : boolean ;
@@ -70,7 +73,7 @@ const getPostJSONRequestData = <TRequestData extends RequestData>(req: IncomingM
70
73
} ) ;
71
74
} ;
72
75
73
- const createListenerState = < TListener > ( ) : [ TListener [ ] , AddListener < TListener > ] => {
76
+ const createListenerState = < TListener > ( ) : [ TListener [ ] , AddListener < TListener > , ClearAllListeners ] => {
74
77
const listeners : TListener [ ] = [ ] ;
75
78
const addListener = ( listener : TListener ) => {
76
79
listeners . push ( listener ) ;
@@ -81,8 +84,11 @@ const createListenerState = <TListener>(): [TListener[], AddListener<TListener>]
81
84
}
82
85
} ;
83
86
} ;
87
+ const clearAllListeners = ( ) => {
88
+ listeners . splice ( 0 , listeners . length ) ;
89
+ } ;
84
90
85
- return [ listeners , addListener ] ;
91
+ return [ listeners , addListener , clearAllListeners ] ;
86
92
} ;
87
93
88
94
/**
@@ -98,7 +104,7 @@ const createListenerState = <TListener>(): [TListener[], AddListener<TListener>]
98
104
const createServerInstance = ( ) : ServerInstance => {
99
105
const [ testStartedListeners , addTestStartedListener ] = createListenerState < TestStartedListener > ( ) ;
100
106
const [ testResultListeners , addTestResultListener ] = createListenerState < TestResultListener > ( ) ;
101
- const [ testDoneListeners , addTestDoneListener ] = createListenerState < TestDoneListener > ( ) ;
107
+ const [ testDoneListeners , addTestDoneListener , clearAllTestDoneListeners ] = createListenerState < TestDoneListener > ( ) ;
102
108
let isReadyToAcceptTestResults = true ;
103
109
104
110
const setReadyToAcceptTestResults = ( isReady : boolean ) => {
@@ -229,6 +235,7 @@ const createServerInstance = (): ServerInstance => {
229
235
addTestStartedListener,
230
236
addTestResultListener,
231
237
addTestDoneListener,
238
+ clearAllTestDoneListeners,
232
239
forceTestCompletion,
233
240
start : ( ) =>
234
241
new Promise < void > ( ( resolve ) => {
0 commit comments