@@ -36,6 +36,7 @@ describe('TipTracker', () => {
36
36
logger,
37
37
maxPollInterval : Number . MAX_VALUE ,
38
38
minPollInterval : pollInterval ,
39
+ pollController$ : of ( true ) ,
39
40
provider$,
40
41
store,
41
42
syncStatus : { isSettled$ : NEVER } as unknown as SyncStatus
@@ -62,6 +63,7 @@ describe('TipTracker', () => {
62
63
logger,
63
64
maxPollInterval : Number . MAX_VALUE ,
64
65
minPollInterval : poll ,
66
+ pollController$ : of ( true ) ,
65
67
provider$,
66
68
store,
67
69
syncStatus : syncStatus as SyncStatus
@@ -84,6 +86,7 @@ describe('TipTracker', () => {
84
86
logger,
85
87
maxPollInterval : Number . MAX_VALUE ,
86
88
minPollInterval : pollInterval ,
89
+ pollController$ : of ( true ) ,
87
90
provider$,
88
91
store,
89
92
syncStatus : syncStatus as SyncStatus
@@ -105,6 +108,7 @@ describe('TipTracker', () => {
105
108
logger,
106
109
maxPollInterval : Number . MAX_VALUE ,
107
110
minPollInterval : pollInterval ,
111
+ pollController$ : of ( true ) ,
108
112
provider$,
109
113
store,
110
114
syncStatus : syncStatus as SyncStatus
@@ -131,6 +135,7 @@ describe('TipTracker', () => {
131
135
logger,
132
136
maxPollInterval : Number . MAX_VALUE ,
133
137
minPollInterval : pollInterval ,
138
+ pollController$ : of ( true ) ,
134
139
provider$,
135
140
store,
136
141
syncStatus : syncStatus as SyncStatus
@@ -154,6 +159,7 @@ describe('TipTracker', () => {
154
159
logger,
155
160
maxPollInterval : 6 ,
156
161
minPollInterval : pollInterval ,
162
+ pollController$ : of ( true ) ,
157
163
provider$,
158
164
store,
159
165
syncStatus : syncStatus as SyncStatus
@@ -177,6 +183,7 @@ describe('TipTracker', () => {
177
183
logger,
178
184
maxPollInterval : Number . MAX_VALUE ,
179
185
minPollInterval : 0 ,
186
+ pollController$ : of ( true ) ,
180
187
provider$,
181
188
store,
182
189
syncStatus : syncStatus as SyncStatus
@@ -185,6 +192,29 @@ describe('TipTracker', () => {
185
192
} ) ;
186
193
} ) ;
187
194
195
+ it ( 'is not polling while last poll$ emission is false' , ( ) => {
196
+ createTestScheduler ( ) . run ( ( { cold, hot, expectObservable } ) => {
197
+ const poll$ = hot ( 't----f----t|' , trueFalse ) ;
198
+ const syncStatus : Partial < SyncStatus > = { isSettled$ : cold ( 'tftft' , trueFalse ) } ;
199
+ const provider$ = createStubObservable < Cardano . Tip > (
200
+ cold ( 'a|' , mockTips ) ,
201
+ cold ( 'b|' , mockTips ) ,
202
+ cold ( 'c|' , mockTips )
203
+ ) ;
204
+ const tracker$ = new TipTracker ( {
205
+ connectionStatus$,
206
+ logger,
207
+ maxPollInterval : Number . MAX_VALUE ,
208
+ minPollInterval : pollInterval ,
209
+ pollController$ : poll$ ,
210
+ provider$,
211
+ store,
212
+ syncStatus : syncStatus as SyncStatus
213
+ } ) ;
214
+ expectObservable ( tracker$ , '^-----------!' ) . toBe ( 'a--b------c' , mockTips ) ;
215
+ } ) ;
216
+ } ) ;
217
+
188
218
it ( 'syncStatus timeout while connection is down does not emit tip updates' , ( ) => {
189
219
createTestScheduler ( ) . run ( ( { cold, hot, expectObservable, expectSubscriptions } ) => {
190
220
const syncStatus : Partial < SyncStatus > = { isSettled$ : hot ( '10ms |' ) } ;
@@ -195,6 +225,7 @@ describe('TipTracker', () => {
195
225
logger,
196
226
maxPollInterval : 6 ,
197
227
minPollInterval : 0 ,
228
+ pollController$ : of ( true ) ,
198
229
provider$,
199
230
store,
200
231
syncStatus : syncStatus as SyncStatus
0 commit comments