@@ -81,6 +81,37 @@ describe('routing driver ', function() {
81
81
} ) ;
82
82
} ) ;
83
83
84
+ it ( 'should discover new servers using subscribe' , function ( done ) {
85
+ if ( ! boltkit . BoltKitSupport ) {
86
+ done ( ) ;
87
+ return ;
88
+ }
89
+ // Given
90
+ var kit = new boltkit . BoltKit ( ) ;
91
+ var server = kit . start ( './test/resources/boltkit/discover_new_servers.script' , 9001 ) ;
92
+
93
+ kit . run ( function ( ) {
94
+ var driver = neo4j . driver ( "bolt+routing://127.0.0.1:9001" , neo4j . auth . basic ( "neo4j" , "neo4j" ) ) ;
95
+ // When
96
+ var session = driver . session ( ) ;
97
+ session . run ( "MATCH (n) RETURN n.name" ) . subscribe ( {
98
+ onCompleted : function ( ) {
99
+
100
+ // Then
101
+ expect ( driver . _clusterView . routers . toArray ( ) ) . toEqual ( [ "127.0.0.1:9004" , "127.0.0.1:9002" , "127.0.0.1:9003" ] ) ;
102
+ expect ( driver . _clusterView . readers . toArray ( ) ) . toEqual ( [ "127.0.0.1:9005" , "127.0.0.1:9003" ] ) ;
103
+ expect ( driver . _clusterView . writers . toArray ( ) ) . toEqual ( [ "127.0.0.1:9001" ] ) ;
104
+
105
+ driver . close ( ) ;
106
+ server . exit ( function ( code ) {
107
+ expect ( code ) . toEqual ( 0 ) ;
108
+ done ( ) ;
109
+ } ) ;
110
+ }
111
+ } ) ;
112
+ } ) ;
113
+ } ) ;
114
+
84
115
it ( 'should handle empty response from server' , function ( done ) {
85
116
if ( ! boltkit . BoltKitSupport ) {
86
117
done ( ) ;
@@ -95,7 +126,7 @@ describe('routing driver ', function() {
95
126
// When
96
127
var session = driver . session ( neo4j . READ ) ;
97
128
session . run ( "MATCH (n) RETURN n.name" ) . catch ( function ( err ) {
98
- expect ( err . code ) . toEqual ( neo4j . SERVICE_UNAVAILABLE ) ;
129
+ expect ( err . code ) . toEqual ( neo4j . error . SERVICE_UNAVAILABLE ) ;
99
130
driver . close ( ) ;
100
131
server . exit ( function ( code ) {
101
132
expect ( code ) . toEqual ( 0 ) ;
@@ -118,7 +149,7 @@ describe('routing driver ', function() {
118
149
kit . run ( function ( ) {
119
150
var driver = neo4j . driver ( "bolt+routing://127.0.0.1:9001" , neo4j . auth . basic ( "neo4j" , "neo4j" ) ) ;
120
151
// When
121
- var session = driver . session ( neo4j . READ ) ;
152
+ var session = driver . session ( neo4j . session . READ ) ;
122
153
session . run ( "MATCH (n) RETURN n.name" ) . then ( function ( res ) {
123
154
124
155
session . close ( ) ;
@@ -155,14 +186,14 @@ describe('routing driver ', function() {
155
186
kit . run ( function ( ) {
156
187
var driver = neo4j . driver ( "bolt+routing://127.0.0.1:9001" , neo4j . auth . basic ( "neo4j" , "neo4j" ) ) ;
157
188
// When
158
- var session = driver . session ( neo4j . READ ) ;
189
+ var session = driver . session ( neo4j . session . READ ) ;
159
190
session . run ( "MATCH (n) RETURN n.name" ) . then ( function ( res ) {
160
191
// Then
161
192
expect ( res . records [ 0 ] . get ( 'n.name' ) ) . toEqual ( 'Bob' ) ;
162
193
expect ( res . records [ 1 ] . get ( 'n.name' ) ) . toEqual ( 'Alice' ) ;
163
194
expect ( res . records [ 2 ] . get ( 'n.name' ) ) . toEqual ( 'Tina' ) ;
164
195
session . close ( ) ;
165
- session = driver . session ( neo4j . READ ) ;
196
+ session = driver . session ( neo4j . session . READ ) ;
166
197
session . run ( "MATCH (n) RETURN n.name" ) . then ( function ( res ) {
167
198
// Then
168
199
expect ( res . records [ 0 ] . get ( 'n.name' ) ) . toEqual ( 'Bob' ) ;
@@ -199,9 +230,9 @@ describe('routing driver ', function() {
199
230
kit . run ( function ( ) {
200
231
var driver = neo4j . driver ( "bolt+routing://127.0.0.1:9001" , neo4j . auth . basic ( "neo4j" , "neo4j" ) ) ;
201
232
// When
202
- var session = driver . session ( neo4j . READ ) ;
233
+ var session = driver . session ( neo4j . session . READ ) ;
203
234
session . run ( "MATCH (n) RETURN n.name" ) . catch ( function ( err ) {
204
- expect ( err . code ) . toEqual ( neo4j . SESSION_EXPIRED ) ;
235
+ expect ( err . code ) . toEqual ( neo4j . error . SESSION_EXPIRED ) ;
205
236
driver . close ( ) ;
206
237
seedServer . exit ( function ( code1 ) {
207
238
readServer . exit ( function ( code2 ) {
@@ -227,7 +258,7 @@ describe('routing driver ', function() {
227
258
kit . run ( function ( ) {
228
259
var driver = neo4j . driver ( "bolt+routing://127.0.0.1:9001" , neo4j . auth . basic ( "neo4j" , "neo4j" ) ) ;
229
260
// When
230
- var session = driver . session ( neo4j . WRITE ) ;
261
+ var session = driver . session ( neo4j . session . WRITE ) ;
231
262
session . run ( "CREATE (n {name:'Bob'})" ) . then ( function ( ) {
232
263
233
264
// Then
@@ -257,9 +288,9 @@ describe('routing driver ', function() {
257
288
kit . run ( function ( ) {
258
289
var driver = neo4j . driver ( "bolt+routing://127.0.0.1:9001" , neo4j . auth . basic ( "neo4j" , "neo4j" ) ) ;
259
290
// When
260
- var session = driver . session ( neo4j . WRITE ) ;
291
+ var session = driver . session ( neo4j . session . WRITE ) ;
261
292
session . run ( "CREATE (n {name:'Bob'})" ) . then ( function ( ) {
262
- session = driver . session ( neo4j . WRITE ) ;
293
+ session = driver . session ( neo4j . session . WRITE ) ;
263
294
session . run ( "CREATE (n {name:'Bob'})" ) . then ( function ( ) {
264
295
// Then
265
296
driver . close ( ) ;
@@ -291,9 +322,9 @@ describe('routing driver ', function() {
291
322
kit . run ( function ( ) {
292
323
var driver = neo4j . driver ( "bolt+routing://127.0.0.1:9001" , neo4j . auth . basic ( "neo4j" , "neo4j" ) ) ;
293
324
// When
294
- var session = driver . session ( neo4j . WRITE ) ;
325
+ var session = driver . session ( neo4j . session . WRITE ) ;
295
326
session . run ( "MATCH (n) RETURN n.name" ) . catch ( function ( err ) {
296
- expect ( err . code ) . toEqual ( neo4j . SESSION_EXPIRED ) ;
327
+ expect ( err . code ) . toEqual ( neo4j . error . SESSION_EXPIRED ) ;
297
328
driver . close ( ) ;
298
329
seedServer . exit ( function ( code1 ) {
299
330
readServer . exit ( function ( code2 ) {
@@ -319,7 +350,7 @@ describe('routing driver ', function() {
319
350
kit . run ( function ( ) {
320
351
var driver = neo4j . driver ( "bolt+routing://127.0.0.1:9001" , neo4j . auth . basic ( "neo4j" , "neo4j" ) ) ;
321
352
// When
322
- var session = driver . session ( neo4j . READ ) ;
353
+ var session = driver . session ( neo4j . session . READ ) ;
323
354
session . run ( "MATCH (n) RETURN n.name" ) . then ( function ( ) {
324
355
325
356
// Then
@@ -351,7 +382,7 @@ describe('routing driver ', function() {
351
382
kit . run ( function ( ) {
352
383
var driver = neo4j . driver ( "bolt+routing://127.0.0.1:9001" , neo4j . auth . basic ( "neo4j" , "neo4j" ) ) ;
353
384
// When
354
- var session = driver . session ( neo4j . READ ) ;
385
+ var session = driver . session ( neo4j . session . READ ) ;
355
386
session . run ( "MATCH (n) RETURN n.name" ) . catch ( function ( ) {
356
387
session . close ( ) ;
357
388
// Then
@@ -384,7 +415,7 @@ describe('routing driver ', function() {
384
415
kit . run ( function ( ) {
385
416
var driver = neo4j . driver ( "bolt+routing://127.0.0.1:9001" , neo4j . auth . basic ( "neo4j" , "neo4j" ) ) ;
386
417
// When
387
- var session = driver . session ( neo4j . READ ) ;
418
+ var session = driver . session ( neo4j . session . READ ) ;
388
419
session . run ( "MATCH (n) RETURN n.name" ) . catch ( function ( err ) {
389
420
session . close ( ) ;
390
421
// Then
@@ -415,9 +446,9 @@ describe('routing driver ', function() {
415
446
kit . run ( function ( ) {
416
447
var driver = neo4j . driver ( "bolt+routing://127.0.0.1:9001" , neo4j . auth . basic ( "neo4j" , "neo4j" ) ) ;
417
448
// When
418
- var session = driver . session ( neo4j . READ ) ;
449
+ var session = driver . session ( neo4j . session . READ ) ;
419
450
session . run ( "MATCH (n) RETURN n.name" ) . catch ( function ( err ) {
420
- session = driver . session ( neo4j . READ ) ;
451
+ session = driver . session ( neo4j . session . READ ) ;
421
452
session . run ( "MATCH (n) RETURN n.name" ) . then ( function ( res ) {
422
453
driver . close ( ) ;
423
454
seedServer . exit ( function ( code1 ) {
@@ -438,15 +469,15 @@ describe('routing driver ', function() {
438
469
return ;
439
470
}
440
471
// Given
441
- var kit = new boltkit . BoltKit ( true ) ;
472
+ var kit = new boltkit . BoltKit ( ) ;
442
473
var server = kit . start ( './test/resources/boltkit/non_discovery.script' , 9001 ) ;
443
474
444
475
kit . run ( function ( ) {
445
476
var driver = neo4j . driver ( "bolt+routing://127.0.0.1:9001" , neo4j . auth . basic ( "neo4j" , "neo4j" ) ) ;
446
477
// When
447
478
var session = driver . session ( ) ;
448
479
session . run ( "MATCH (n) RETURN n.name" ) . catch ( function ( err ) {
449
- expect ( err . code ) . toEqual ( neo4j . SERVICE_UNAVAILABLE ) ;
480
+ expect ( err . code ) . toEqual ( neo4j . error . SERVICE_UNAVAILABLE ) ;
450
481
session . close ( ) ;
451
482
driver . close ( ) ;
452
483
server . exit ( function ( code ) {
@@ -463,7 +494,7 @@ describe('routing driver ', function() {
463
494
return ;
464
495
}
465
496
// Given
466
- var kit = new boltkit . BoltKit ( true ) ;
497
+ var kit = new boltkit . BoltKit ( ) ;
467
498
var seedServer = kit . start ( './test/resources/boltkit/acquire_endpoints.script' , 9001 ) ;
468
499
var readServer = kit . start ( './test/resources/boltkit/not_able_to_write.script' , 9007 ) ;
469
500
@@ -474,7 +505,7 @@ describe('routing driver ', function() {
474
505
session . run ( "CREATE ()" ) . catch ( function ( err ) {
475
506
//the server at 9007 should have been removed
476
507
expect ( driver . _clusterView . writers . toArray ( ) ) . toEqual ( [ '127.0.0.1:9008' ] ) ;
477
- expect ( err . code ) . toEqual ( neo4j . SESSION_EXPIRED ) ;
508
+ expect ( err . code ) . toEqual ( neo4j . error . SESSION_EXPIRED ) ;
478
509
session . close ( ) ;
479
510
driver . close ( ) ;
480
511
seedServer . exit ( function ( code1 ) {
@@ -494,7 +525,7 @@ describe('routing driver ', function() {
494
525
return ;
495
526
}
496
527
// Given
497
- var kit = new boltkit . BoltKit ( true ) ;
528
+ var kit = new boltkit . BoltKit ( ) ;
498
529
var seedServer = kit . start ( './test/resources/boltkit/acquire_endpoints.script' , 9001 ) ;
499
530
var readServer = kit . start ( './test/resources/boltkit/not_able_to_write_in_transaction.script' , 9007 ) ;
500
531
@@ -508,7 +539,7 @@ describe('routing driver ', function() {
508
539
tx . commit ( ) . catch ( function ( err ) {
509
540
//the server at 9007 should have been removed
510
541
expect ( driver . _clusterView . writers . toArray ( ) ) . toEqual ( [ '127.0.0.1:9008' ] ) ;
511
- expect ( err . code ) . toEqual ( neo4j . SESSION_EXPIRED ) ;
542
+ expect ( err . code ) . toEqual ( neo4j . error . SESSION_EXPIRED ) ;
512
543
session . close ( ) ;
513
544
driver . close ( ) ;
514
545
seedServer . exit ( function ( code1 ) {
0 commit comments