File tree 1 file changed +55
-0
lines changed
1 file changed +55
-0
lines changed Original file line number Diff line number Diff line change
1
+ 'use strict'
2
+
3
+ const test = require ( 'tap' ) . test
4
+ const anger = require ( '..' )
5
+
6
+ test ( 'backoff test' , { timeout : 3000 } , ( t ) => {
7
+ t . plan ( 4 )
8
+
9
+ const startTime = process . hrtime ( )
10
+
11
+ require ( './authServer' ) ( ( err , server ) => {
12
+ t . error ( err )
13
+
14
+ t . tearDown ( server . stop . bind ( server ) )
15
+
16
+ let uid = 0
17
+ const instance = anger ( {
18
+ url : server . info . uri ,
19
+ subscription : '/greet' ,
20
+ senders : 1 ,
21
+ connections : 1 ,
22
+ requests : 1 ,
23
+ responses : 1 ,
24
+ identifier : ( payload ) => payload . meta . id ,
25
+ auth : { headers : { authorization : `Basic ${ new Buffer ( 'jane:jane' ) . toString ( 'base64' ) } ` } } ,
26
+ trigger : ( sender ) => {
27
+ sender . request ( {
28
+ method : 'POST' ,
29
+ path : '/h' ,
30
+ payload : {
31
+ id : ++ uid
32
+ }
33
+ } )
34
+ return uid
35
+ } ,
36
+ retryOpts : {
37
+ retries : 3 ,
38
+ min : 750 ,
39
+ max : 750
40
+ }
41
+ } )
42
+
43
+ instance . on ( 'error' , ( err ) => {
44
+ t . ok ( err , 'error happened' )
45
+ const end = process . hrtime ( startTime )
46
+ const elapsedTime = end [ 0 ] * 1e3 + end [ 1 ] / 1e6
47
+ t . ok ( elapsedTime >= 1500 , 'should have taken at least a second and a half to fail' )
48
+ t . equal ( server . failedCount , 3 )
49
+ } )
50
+
51
+ instance . on ( 'end' , ( ) => {
52
+ t . fail ( 'end never happens' )
53
+ } )
54
+ } )
55
+ } )
You can’t perform that action at this time.
0 commit comments