@@ -124,6 +124,69 @@ describe('sentinel', function () {
124
124
name : 'master'
125
125
} ) ;
126
126
} ) ;
127
+
128
+ it ( 'should add additionally discovered sentinels when resolving successfully' , function ( done ) {
129
+
130
+ var sentinels = [
131
+ { host : '127.0.0.1' , port : 27379 }
132
+ ] ;
133
+
134
+ var sentinel = new MockServer ( 27379 , function ( argv ) {
135
+ if ( argv [ 0 ] === 'sentinel' && argv [ 1 ] === 'get-master-addr-by-name' ) {
136
+ return [ '127.0.0.1' , '17380' ] ;
137
+ }
138
+ else if ( argv [ 0 ] === 'sentinel' && argv [ 1 ] === 'sentinels' ) {
139
+ return [ [ 'ip' , '127.0.0.1' , 'port' , '27379' ] , [ 'ip' , '127.0.0.1' , 'port' , '27380' ] ] ;
140
+ }
141
+
142
+ } ) ;
143
+ var master = new MockServer ( 17380 ) ;
144
+ sentinel . once ( 'disconnect' , function ( ) {
145
+ redis . disconnect ( ) ;
146
+ master . disconnect ( function ( ) {
147
+ expect ( sentinels . length ) . to . eql ( 2 ) ;
148
+ sentinel . disconnect ( done ) ;
149
+ } ) ;
150
+ } ) ;
151
+
152
+ var redis = new Redis ( {
153
+ sentinels : sentinels ,
154
+ name : 'master'
155
+ } ) ;
156
+ } ) ;
157
+
158
+ it ( 'should skip additionally discovered sentinels even if they are resolved successfully' , function ( done ) {
159
+
160
+ var sentinels = [
161
+ { host : '127.0.0.1' , port : 27379 }
162
+ ] ;
163
+
164
+ var sentinel = new MockServer ( 27379 , function ( argv ) {
165
+ if ( argv [ 0 ] === 'sentinel' && argv [ 1 ] === 'get-master-addr-by-name' ) {
166
+ return [ '127.0.0.1' , '17380' ] ;
167
+ }
168
+ else if ( argv [ 0 ] === 'sentinel' && argv [ 1 ] === 'sentinels' ) {
169
+ return [ [ 'ip' , '127.0.0.1' , 'port' , '27379' ] , [ 'ip' , '127.0.0.1' , 'port' , '27380' ] ] ;
170
+ }
171
+
172
+ } ) ;
173
+ var master = new MockServer ( 17380 ) ;
174
+ sentinel . once ( 'disconnect' , function ( ) {
175
+ redis . disconnect ( ) ;
176
+ master . disconnect ( function ( ) {
177
+ expect ( sentinels . length ) . to . eql ( 1 ) ;
178
+ expect ( sentinels [ 0 ] . port ) . to . eql ( 27379 ) ;
179
+ sentinel . disconnect ( done ) ;
180
+ } ) ;
181
+ } ) ;
182
+
183
+ var redis = new Redis ( {
184
+ sentinels : sentinels ,
185
+ updateSentinels : false ,
186
+ name : 'master'
187
+ } ) ;
188
+ } ) ;
189
+
127
190
} ) ;
128
191
129
192
describe ( 'master' , function ( ) {
0 commit comments