Skip to content

Commit 9a818ce

Browse files
committed
Added tests for server info with observer API
1 parent afbbbd9 commit 9a818ce

File tree

2 files changed

+133
-41
lines changed

2 files changed

+133
-41
lines changed

test/v1/routing.driver.boltkit.it.js

+85-27
Original file line numberDiff line numberDiff line change
@@ -682,48 +682,106 @@ describe('routing driver ', function () {
682682
}
683683

684684
// Given
685-
var kit = new boltkit.BoltKit();
686-
var routingServer = kit.start('./test/resources/boltkit/acquire_endpoints.script', 9001);
687-
var writeServer = kit.start('./test/resources/boltkit/write_server_with_version.script', 9007);
688-
var readServer = kit.start('./test/resources/boltkit/read_server_with_version.script', 9005);
685+
const kit = new boltkit.BoltKit();
686+
const routingServer = kit.start('./test/resources/boltkit/acquire_endpoints.script', 9001);
687+
const writeServer = kit.start('./test/resources/boltkit/write_server_with_version.script', 9007);
688+
const readServer = kit.start('./test/resources/boltkit/read_server_with_version.script', 9005);
689689

690690
kit.run(function () {
691-
var driver = newDriver("bolt+routing://127.0.0.1:9001");
691+
const driver = newDriver("bolt+routing://127.0.0.1:9001");
692692
// When
693-
var readSession = driver.session(neo4j.session.READ);
694-
readSession.run('MATCH (n) RETURN n.name').then(function (readResult) {
695-
var writeSession = driver.session(neo4j.session.WRITE);
696-
writeSession.run("CREATE (n {name:'Bob'})").then(function (writeResult) {
697-
var readServerInfo = readResult.summary.server;
698-
var writeServerInfo = writeResult.summary.server;
699-
700-
readSession.close();
701-
writeSession.close();
702-
driver.close();
693+
const readSession = driver.session(neo4j.session.READ);
694+
readSession.run('MATCH (n) RETURN n.name').then(readResult => {
695+
const writeSession = driver.session(neo4j.session.WRITE);
696+
writeSession.run("CREATE (n {name:'Bob'})").then(writeResult => {
697+
const readServerInfo = readResult.summary.server;
698+
const writeServerInfo = writeResult.summary.server;
699+
700+
readSession.close();
701+
writeSession.close();
702+
driver.close();
703703

704-
routingServer.exit(function (routingServerExitCode) {
705-
writeServer.exit(function (writeServerExitCode) {
706-
readServer.exit(function (readServerExitCode) {
704+
routingServer.exit(routingServerExitCode => {
705+
writeServer.exit(writeServerExitCode => {
706+
readServer.exit(readServerExitCode => {
707707

708-
expect(readServerInfo.address).toBe('127.0.0.1:9005');
709-
expect(readServerInfo.version).toBe('TheReadServerV1');
708+
expect(readServerInfo.address).toBe('127.0.0.1:9005');
709+
expect(readServerInfo.version).toBe('TheReadServerV1');
710710

711-
expect(writeServerInfo.address).toBe('127.0.0.1:9007');
712-
expect(writeServerInfo.version).toBe('TheWriteServerV1');
711+
expect(writeServerInfo.address).toBe('127.0.0.1:9007');
712+
expect(writeServerInfo.version).toBe('TheWriteServerV1');
713713

714-
expect(routingServerExitCode).toEqual(0);
715-
expect(writeServerExitCode).toEqual(0);
716-
expect(readServerExitCode).toEqual(0);
714+
expect(routingServerExitCode).toEqual(0);
715+
expect(writeServerExitCode).toEqual(0);
716+
expect(readServerExitCode).toEqual(0);
717717

718-
done();
719-
});
718+
done();
720719
});
721720
});
721+
});
722722
})
723723
});
724724
});
725725
});
726726

727+
it('should expose server info in cluster using observer', function (done) {
728+
if (!boltkit.BoltKitSupport) {
729+
done();
730+
return;
731+
}
732+
733+
// Given
734+
const kit = new boltkit.BoltKit();
735+
const routingServer = kit.start('./test/resources/boltkit/acquire_endpoints.script', 9001);
736+
const writeServer = kit.start('./test/resources/boltkit/write_server_with_version.script', 9007);
737+
const readServer = kit.start('./test/resources/boltkit/read_server_with_version.script', 9005);
738+
739+
kit.run(function () {
740+
const driver = newDriver("bolt+routing://127.0.0.1:9001");
741+
// When
742+
const readSession = driver.session(neo4j.session.READ);
743+
readSession.run('MATCH (n) RETURN n.name').subscribe({
744+
onNext: () => {
745+
},
746+
onError: () => {
747+
},
748+
onCompleted: readSummary => {
749+
const writeSession = driver.session(neo4j.session.WRITE);
750+
writeSession.run("CREATE (n {name:'Bob'})").subscribe({
751+
onNext: () => {
752+
},
753+
onError: () => {
754+
},
755+
onCompleted: writeSummary => {
756+
readSession.close();
757+
writeSession.close();
758+
driver.close();
759+
760+
routingServer.exit(function (routingServerExitCode) {
761+
writeServer.exit(function (writeServerExitCode) {
762+
readServer.exit(function (readServerExitCode) {
763+
764+
expect(readSummary.server.address).toBe('127.0.0.1:9005');
765+
expect(readSummary.server.version).toBe('TheReadServerV1');
766+
767+
expect(writeSummary.server.address).toBe('127.0.0.1:9007');
768+
expect(writeSummary.server.version).toBe('TheWriteServerV1');
769+
770+
expect(routingServerExitCode).toEqual(0);
771+
expect(writeServerExitCode).toEqual(0);
772+
expect(readServerExitCode).toEqual(0);
773+
774+
done();
775+
});
776+
});
777+
});
778+
}
779+
})
780+
}
781+
});
782+
});
783+
});
784+
727785
function newDriver(url) {
728786
// BoltKit currently does not support encryption, create driver with encryption turned off
729787
return neo4j.driver(url, neo4j.auth.basic("neo4j", "neo4j"), {

test/v1/transaction.test.js

+48-14
Original file line numberDiff line numberDiff line change
@@ -297,32 +297,66 @@ describe('transaction', function() {
297297
});
298298

299299
it('should expose server info on successful query', function (done) {
300-
//lazy way of checking the version number
301-
//if server has been set we know it is at least
302-
//3.1 (todo actually parse the version string)
303-
if (!server) {
304-
done();
300+
if (neo4jVersionOlderThan31(done)) {
305301
return;
306302
}
303+
307304
// Given
308-
var statement = 'RETURN 1';
305+
const statement = 'RETURN 1';
309306

310307
// When & Then
311-
var tx = session.beginTransaction();
308+
const tx = session.beginTransaction();
312309
tx.run(statement)
313-
.then(function (result) {
314-
var sum = result.summary;
310+
.then(result => {
311+
const sum = result.summary;
315312
expect(sum.server).toBeDefined();
316313
expect(sum.server.address).toEqual('localhost:7687');
317314
expect(sum.server.version).toBeDefined();
318315
});
319-
tx.commit().then(function() {
320-
done();
321-
})
316+
tx.commit().then(done);
317+
});
318+
319+
it('should expose server info on successful query using observer', function (done) {
320+
if (neo4jVersionOlderThan31(done)) {
321+
return;
322+
}
323+
324+
// Given
325+
const statement = 'RETURN 1';
326+
327+
// When & Then
328+
const tx = session.beginTransaction();
329+
tx.run(statement)
330+
.subscribe({
331+
onNext: record => {
332+
},
333+
onError: error => {
334+
},
335+
onCompleted: summary => {
336+
const server = summary.server;
337+
338+
expect(server).toBeDefined();
339+
expect(server.address).toEqual('localhost:7687');
340+
expect(server.version).toBeDefined();
341+
342+
done();
343+
}
344+
});
322345
});
323346

324347
function expectSyntaxError(error) {
325-
const code = error.fields[0].code;
326-
expect(code).toBe('Neo.ClientError.Statement.SyntaxError');
348+
const code = error.fields[0].code;
349+
expect(code).toBe('Neo.ClientError.Statement.SyntaxError');
350+
}
351+
352+
function neo4jVersionOlderThan31(done) {
353+
//lazy way of checking the version number
354+
//if server has been set we know it is at least
355+
//3.1 (todo actually parse the version string)
356+
if (!server) {
357+
done();
358+
return true;
359+
}
360+
return false;
327361
}
328362
});

0 commit comments

Comments
 (0)