Skip to content

Commit dc6ed54

Browse files
committed
Refactor: moved constants and codes to namespaces
1 parent 2277afb commit dc6ed54

File tree

4 files changed

+71
-34
lines changed

4 files changed

+71
-34
lines changed

src/v1/index.js

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -130,17 +130,24 @@ const types ={
130130
Record
131131
};
132132

133+
const session = {
134+
READ,
135+
WRITE
136+
};
137+
const error = {
138+
SERVICE_UNAVAILABLE,
139+
SESSION_EXPIRED
140+
};
141+
133142
const forExport = {
134143
driver,
135144
int,
136145
isInt,
137146
Neo4jError,
138147
auth,
139148
types,
140-
READ,
141-
WRITE,
142-
SERVICE_UNAVAILABLE,
143-
SESSION_EXPIRED
149+
session,
150+
error
144151
};
145152

146153
export {
@@ -150,9 +157,7 @@ export {
150157
Neo4jError,
151158
auth,
152159
types,
153-
READ,
154-
WRITE,
155-
SERVICE_UNAVAILABLE,
156-
SESSION_EXPIRED
160+
session,
161+
error
157162
}
158163
export default forExport

src/v1/internal/stream-observer.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,16 @@ import Record from "../record";
3232
class StreamObserver {
3333
/**
3434
* @constructor
35-
* @param errorCallback optional callback to be used for adding additional logic on error
35+
* @param errorTransformer optional callback to be used for adding additional logic on error
3636
*/
37-
constructor(errorCallback = (err) => {return err}) {
37+
constructor(errorTransformer = (err) => {return err}) {
3838
this._fieldKeys = null;
3939
this._fieldLookup = null;
4040
this._queuedRecords = [];
4141
this._tail = null;
4242
this._error = null;
4343
this._hasFailed = false;
44-
this._errorCallback = errorCallback;
44+
this._errorTransformer = errorTransformer;
4545
}
4646

4747
/**
@@ -94,7 +94,7 @@ class StreamObserver {
9494
* @param {Object} error - An error object
9595
*/
9696
onError(error) {
97-
let transformedError = this._errorCallback(error, this._conn);
97+
let transformedError = this._errorTransformer(error, this._conn);
9898
if(this._hasFailed) {
9999
return;
100100
}

src/v1/transaction.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ class Transaction {
2929
* @constructor
3030
* @param {Promise} connectionPromise - A connection to use
3131
* @param {function()} onClose - Function to be called when transaction is committed or rolled back.
32+
* @param errorTransformer callback use to transform error
3233
*/
3334
constructor(connectionPromise, onClose, errorTransformer) {
3435
this._connectionPromise = connectionPromise;

test/v1/routing.driver.test.js

Lines changed: 53 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,37 @@ describe('routing driver ', function() {
8181
});
8282
});
8383

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+
84115
it('should handle empty response from server', function (done) {
85116
if (!boltkit.BoltKitSupport) {
86117
done();
@@ -95,7 +126,7 @@ describe('routing driver ', function() {
95126
// When
96127
var session = driver.session(neo4j.READ);
97128
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);
99130
driver.close();
100131
server.exit(function (code) {
101132
expect(code).toEqual(0);
@@ -118,7 +149,7 @@ describe('routing driver ', function() {
118149
kit.run(function () {
119150
var driver = neo4j.driver("bolt+routing://127.0.0.1:9001", neo4j.auth.basic("neo4j", "neo4j"));
120151
// When
121-
var session = driver.session(neo4j.READ);
152+
var session = driver.session(neo4j.session.READ);
122153
session.run("MATCH (n) RETURN n.name").then(function(res) {
123154

124155
session.close();
@@ -155,14 +186,14 @@ describe('routing driver ', function() {
155186
kit.run(function () {
156187
var driver = neo4j.driver("bolt+routing://127.0.0.1:9001", neo4j.auth.basic("neo4j", "neo4j"));
157188
// When
158-
var session = driver.session(neo4j.READ);
189+
var session = driver.session(neo4j.session.READ);
159190
session.run("MATCH (n) RETURN n.name").then(function (res) {
160191
// Then
161192
expect(res.records[0].get('n.name')).toEqual('Bob');
162193
expect(res.records[1].get('n.name')).toEqual('Alice');
163194
expect(res.records[2].get('n.name')).toEqual('Tina');
164195
session.close();
165-
session = driver.session(neo4j.READ);
196+
session = driver.session(neo4j.session.READ);
166197
session.run("MATCH (n) RETURN n.name").then(function (res) {
167198
// Then
168199
expect(res.records[0].get('n.name')).toEqual('Bob');
@@ -199,9 +230,9 @@ describe('routing driver ', function() {
199230
kit.run(function () {
200231
var driver = neo4j.driver("bolt+routing://127.0.0.1:9001", neo4j.auth.basic("neo4j", "neo4j"));
201232
// When
202-
var session = driver.session(neo4j.READ);
233+
var session = driver.session(neo4j.session.READ);
203234
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);
205236
driver.close();
206237
seedServer.exit(function (code1) {
207238
readServer.exit(function (code2) {
@@ -227,7 +258,7 @@ describe('routing driver ', function() {
227258
kit.run(function () {
228259
var driver = neo4j.driver("bolt+routing://127.0.0.1:9001", neo4j.auth.basic("neo4j", "neo4j"));
229260
// When
230-
var session = driver.session(neo4j.WRITE);
261+
var session = driver.session(neo4j.session.WRITE);
231262
session.run("CREATE (n {name:'Bob'})").then(function() {
232263

233264
// Then
@@ -257,9 +288,9 @@ describe('routing driver ', function() {
257288
kit.run(function () {
258289
var driver = neo4j.driver("bolt+routing://127.0.0.1:9001", neo4j.auth.basic("neo4j", "neo4j"));
259290
// When
260-
var session = driver.session(neo4j.WRITE);
291+
var session = driver.session(neo4j.session.WRITE);
261292
session.run("CREATE (n {name:'Bob'})").then(function () {
262-
session = driver.session(neo4j.WRITE);
293+
session = driver.session(neo4j.session.WRITE);
263294
session.run("CREATE (n {name:'Bob'})").then(function () {
264295
// Then
265296
driver.close();
@@ -291,9 +322,9 @@ describe('routing driver ', function() {
291322
kit.run(function () {
292323
var driver = neo4j.driver("bolt+routing://127.0.0.1:9001", neo4j.auth.basic("neo4j", "neo4j"));
293324
// When
294-
var session = driver.session(neo4j.WRITE);
325+
var session = driver.session(neo4j.session.WRITE);
295326
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);
297328
driver.close();
298329
seedServer.exit(function (code1) {
299330
readServer.exit(function (code2) {
@@ -319,7 +350,7 @@ describe('routing driver ', function() {
319350
kit.run(function () {
320351
var driver = neo4j.driver("bolt+routing://127.0.0.1:9001", neo4j.auth.basic("neo4j", "neo4j"));
321352
// When
322-
var session = driver.session(neo4j.READ);
353+
var session = driver.session(neo4j.session.READ);
323354
session.run("MATCH (n) RETURN n.name").then(function() {
324355

325356
// Then
@@ -351,7 +382,7 @@ describe('routing driver ', function() {
351382
kit.run(function () {
352383
var driver = neo4j.driver("bolt+routing://127.0.0.1:9001", neo4j.auth.basic("neo4j", "neo4j"));
353384
// When
354-
var session = driver.session(neo4j.READ);
385+
var session = driver.session(neo4j.session.READ);
355386
session.run("MATCH (n) RETURN n.name").catch(function() {
356387
session.close();
357388
// Then
@@ -384,7 +415,7 @@ describe('routing driver ', function() {
384415
kit.run(function () {
385416
var driver = neo4j.driver("bolt+routing://127.0.0.1:9001", neo4j.auth.basic("neo4j", "neo4j"));
386417
// When
387-
var session = driver.session(neo4j.READ);
418+
var session = driver.session(neo4j.session.READ);
388419
session.run("MATCH (n) RETURN n.name").catch(function(err) {
389420
session.close();
390421
// Then
@@ -415,9 +446,9 @@ describe('routing driver ', function() {
415446
kit.run(function () {
416447
var driver = neo4j.driver("bolt+routing://127.0.0.1:9001", neo4j.auth.basic("neo4j", "neo4j"));
417448
// When
418-
var session = driver.session(neo4j.READ);
449+
var session = driver.session(neo4j.session.READ);
419450
session.run("MATCH (n) RETURN n.name").catch(function (err) {
420-
session = driver.session(neo4j.READ);
451+
session = driver.session(neo4j.session.READ);
421452
session.run("MATCH (n) RETURN n.name").then(function (res) {
422453
driver.close();
423454
seedServer.exit(function (code1) {
@@ -438,15 +469,15 @@ describe('routing driver ', function() {
438469
return;
439470
}
440471
// Given
441-
var kit = new boltkit.BoltKit(true);
472+
var kit = new boltkit.BoltKit();
442473
var server = kit.start('./test/resources/boltkit/non_discovery.script', 9001);
443474

444475
kit.run(function () {
445476
var driver = neo4j.driver("bolt+routing://127.0.0.1:9001", neo4j.auth.basic("neo4j", "neo4j"));
446477
// When
447478
var session = driver.session();
448479
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);
450481
session.close();
451482
driver.close();
452483
server.exit(function(code) {
@@ -463,7 +494,7 @@ describe('routing driver ', function() {
463494
return;
464495
}
465496
// Given
466-
var kit = new boltkit.BoltKit(true);
497+
var kit = new boltkit.BoltKit();
467498
var seedServer = kit.start('./test/resources/boltkit/acquire_endpoints.script', 9001);
468499
var readServer = kit.start('./test/resources/boltkit/not_able_to_write.script', 9007);
469500

@@ -474,7 +505,7 @@ describe('routing driver ', function() {
474505
session.run("CREATE ()").catch(function (err) {
475506
//the server at 9007 should have been removed
476507
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);
478509
session.close();
479510
driver.close();
480511
seedServer.exit(function (code1) {
@@ -494,7 +525,7 @@ describe('routing driver ', function() {
494525
return;
495526
}
496527
// Given
497-
var kit = new boltkit.BoltKit(true);
528+
var kit = new boltkit.BoltKit();
498529
var seedServer = kit.start('./test/resources/boltkit/acquire_endpoints.script', 9001);
499530
var readServer = kit.start('./test/resources/boltkit/not_able_to_write_in_transaction.script', 9007);
500531

@@ -508,7 +539,7 @@ describe('routing driver ', function() {
508539
tx.commit().catch(function (err) {
509540
//the server at 9007 should have been removed
510541
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);
512543
session.close();
513544
driver.close();
514545
seedServer.exit(function (code1) {

0 commit comments

Comments
 (0)