1
- import { Observable , Observer , of , Subject , throwError } from 'rxjs' ;
2
- import { concat , map , mergeMap , multicast , refCount } from 'rxjs/operators' ;
1
+ import {
2
+ Observable ,
3
+ Observer ,
4
+ of ,
5
+ Subject ,
6
+ throwError ,
7
+ concat ,
8
+ map ,
9
+ mergeMap ,
10
+ share ,
11
+ from ,
12
+ concatWith ,
13
+ } from 'rxjs' ;
3
14
import { TestScheduler } from 'rxjs/testing' ;
4
15
import { retryBackoff } from '../src' ;
5
16
@@ -38,7 +49,7 @@ describe('retryBackoff operator', () => {
38
49
it ( 'should retry a number of times, without error, then complete' , done => {
39
50
let errors = 0 ;
40
51
const retries = 2 ;
41
- Observable . create ( ( observer : Observer < number > ) => {
52
+ new Observable ( ( observer : Observer < number > ) => {
42
53
observer . next ( 42 ) ;
43
54
observer . complete ( ) ;
44
55
} )
@@ -52,21 +63,21 @@ describe('retryBackoff operator', () => {
52
63
} ) ,
53
64
retryBackoff ( { initialInterval : 1 , maxRetries : retries } )
54
65
)
55
- . subscribe (
56
- ( x : number ) => {
66
+ . subscribe ( {
67
+ next : ( x : number ) => {
57
68
expect ( x ) . toEqual ( 42 ) ;
58
69
} ,
59
- ( ) => {
70
+ error : ( ) => {
60
71
expect ( 'this was called' ) . toBeTruthy ( ) ;
61
72
} ,
62
- done
63
- ) ;
73
+ complete : done
74
+ } ) ;
64
75
} ) ;
65
76
66
77
it ( 'should retry a number of times, then call error handler' , done => {
67
78
let errors = 0 ;
68
79
const retries = 2 ;
69
- Observable . create ( ( observer : Observer < number > ) => {
80
+ new Observable ( ( observer : Observer < number > ) => {
70
81
observer . next ( 42 ) ;
71
82
observer . complete ( ) ;
72
83
} )
@@ -77,24 +88,24 @@ describe('retryBackoff operator', () => {
77
88
} ) ,
78
89
retryBackoff ( { initialInterval : 1 , maxRetries : retries - 1 } )
79
90
)
80
- . subscribe (
81
- ( x : number ) => {
91
+ . subscribe ( {
92
+ next : ( x : number ) => {
82
93
expect ( x ) . toEqual ( 42 ) ;
83
94
} ,
84
- ( ) => {
95
+ error : ( ) => {
85
96
expect ( errors ) . toEqual ( 2 ) ;
86
97
done ( ) ;
87
98
} ,
88
- ( ) => {
99
+ complete : ( ) => {
89
100
expect ( 'this was called' ) . toBeTruthy ( ) ;
90
101
}
91
- ) ;
102
+ } ) ;
92
103
} ) ;
93
104
94
105
it ( 'should retry until successful completion' , done => {
95
106
let errors = 0 ;
96
107
const retries = 10 ;
97
- Observable . create ( ( observer : Observer < number > ) => {
108
+ new Observable ( ( observer : Observer < number > ) => {
98
109
observer . next ( 42 ) ;
99
110
observer . complete ( ) ;
100
111
} )
@@ -108,15 +119,15 @@ describe('retryBackoff operator', () => {
108
119
} ) ,
109
120
retryBackoff ( { initialInterval : 1 } )
110
121
)
111
- . subscribe (
112
- ( x : number ) => {
122
+ . subscribe ( {
123
+ next : ( x : number ) => {
113
124
expect ( x ) . toEqual ( 42 ) ;
114
125
} ,
115
- ( ) => {
126
+ error : ( ) => {
116
127
expect ( 'this was called' ) . toBeTruthy ( ) ;
117
128
} ,
118
- done
119
- ) ;
129
+ complete : done
130
+ } ) ;
120
131
} ) ;
121
132
122
133
it ( 'should handle an empty source' , ( ) => {
@@ -246,29 +257,32 @@ describe('retryBackoff operator', () => {
246
257
} ) ;
247
258
} ) ;
248
259
249
- it ( 'should retry a synchronous source (multicasted and refCounted ) multiple times' , done => {
260
+ it ( 'should retry a synchronous source (multicasted) multiple times' , done => {
250
261
const expected = [ 1 , 2 , 3 , 1 , 2 , 3 , 1 , 2 , 3 , 1 , 2 , 3 , 1 , 2 , 3 ] ;
251
262
252
- of ( 1 , 2 , 3 )
263
+ const ERR = new Error ( 'bad!' ) ;
264
+
265
+ from ( [ 1 , 2 , 3 ] )
253
266
. pipe (
254
- concat ( throwError ( 'bad!' ) ) ,
255
- multicast ( ( ) => new Subject < number > ( ) ) ,
256
- refCount ( ) ,
267
+ concatWith ( throwError ( ( ) => ERR ) ) ,
268
+ share ( {
269
+ connector : ( ) => new Subject ( ) ,
270
+ } ) ,
257
271
retryBackoff ( { initialInterval : 1 , maxRetries : 4 } )
258
272
)
259
- . subscribe (
260
- ( x : number ) => {
273
+ . subscribe ( {
274
+ next : ( x : number ) => {
261
275
expect ( x ) . toEqual ( expected . shift ( ) ) ;
262
276
} ,
263
- ( err : any ) => {
264
- expect ( err ) . toEqual ( 'bad!' ) ;
277
+ error : ( err : unknown ) => {
278
+ expect ( err ) . toEqual ( ERR ) ;
265
279
expect ( expected . length ) . toEqual ( 0 ) ;
266
280
done ( ) ;
267
281
} ,
268
- ( ) => {
282
+ complete : ( ) => {
269
283
done ( new Error ( 'should not be called' ) ) ;
270
- }
271
- ) ;
284
+ } ,
285
+ } ) ;
272
286
} ) ;
273
287
274
288
it ( 'should increase the intervals exponentially up to maxInterval' , ( ) => {
@@ -300,7 +314,7 @@ describe('retryBackoff operator', () => {
300
314
it ( 'should retry until shouldRetry is true' , done => {
301
315
let errors = 0 ;
302
316
const isNotSoBad = ( error : any ) => error === 'not so bad' ;
303
- Observable . create ( ( observer : Observer < number > ) => {
317
+ new Observable ( ( observer : Observer < number > ) => {
304
318
observer . next ( 42 ) ;
305
319
observer . complete ( ) ;
306
320
} )
@@ -311,14 +325,14 @@ describe('retryBackoff operator', () => {
311
325
} ) ,
312
326
retryBackoff ( { initialInterval : 1 , shouldRetry : isNotSoBad } )
313
327
)
314
- . subscribe (
315
- ( ) => { } ,
316
- ( err : any ) => {
328
+ . subscribe ( {
329
+ next : ( ) => { } ,
330
+ error : ( err : unknown ) => {
317
331
expect ( errors ) . toEqual ( 2 ) ;
318
332
expect ( err ) . toEqual ( 'really bad' ) ;
319
333
done ( ) ;
320
334
}
321
- ) ;
335
+ } ) ;
322
336
} ) ;
323
337
324
338
it ( 'should increase the intervals calculated by backoffDelay function' , ( ) => {
0 commit comments