From 6f8c14087c73a59bdea1eda2285feafa4a8d8f3d Mon Sep 17 00:00:00 2001 From: Antonio Barcelos Date: Mon, 13 Jun 2022 12:31:41 +0200 Subject: [PATCH 1/2] Fix error check in the bolt-v3.test --- packages/neo4j-driver/test/bolt-v3.test.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/neo4j-driver/test/bolt-v3.test.js b/packages/neo4j-driver/test/bolt-v3.test.js index 736c018db..b76a26386 100644 --- a/packages/neo4j-driver/test/bolt-v3.test.js +++ b/packages/neo4j-driver/test/bolt-v3.test.js @@ -93,7 +93,8 @@ describe('#integration Bolt V3 API', () => { // ClientError on 4.1 and later if ( e.code !== 'Neo.ClientError.Transaction.TransactionTimedOut' && - e.code !== 'Neo.TransientError.Transaction.LockClientStopped' + e.code !== 'Neo.TransientError.Transaction.LockClientStopped' && + e.code !== 'Neo.ClientError.Transaction.LockClientStopped' ) { fail('Expected transaction timeout error but got: ' + e.code) } @@ -216,7 +217,8 @@ describe('#integration Bolt V3 API', () => { // ClientError on 4.1 and later if ( e.code !== 'Neo.ClientError.Transaction.TransactionTimedOut' && - e.code !== 'Neo.TransientError.Transaction.LockClientStopped' + e.code !== 'Neo.TransientError.Transaction.LockClientStopped' && + e.code !== 'Neo.ClientError.Transaction.LockClientStopped' ) { fail('Expected transaction timeout error but got: ' + e.code) } From 1c4a3a2ffb7940790a1fda70fbedaefdd468f8a7 Mon Sep 17 00:00:00 2001 From: Antonio Barcelos Date: Mon, 13 Jun 2022 14:02:08 +0200 Subject: [PATCH 2/2] Check if database supports during v3 tests --- packages/neo4j-driver/test/bolt-v3.test.js | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/packages/neo4j-driver/test/bolt-v3.test.js b/packages/neo4j-driver/test/bolt-v3.test.js index b76a26386..9aef3b8a0 100644 --- a/packages/neo4j-driver/test/bolt-v3.test.js +++ b/packages/neo4j-driver/test/bolt-v3.test.js @@ -51,7 +51,7 @@ describe('#integration Bolt V3 API', () => { }) it('should set transaction metadata for auto-commit transaction', async () => { - if (!databaseSupportsBoltV3() || !databaseSupportsListTransaction()) { + if (!databaseSupportsBoltV3() || !(await databaseSupportsListTransaction())) { return } @@ -174,7 +174,7 @@ describe('#integration Bolt V3 API', () => { ) it('should set transaction metadata for explicit transactions', async () => { - if (!databaseSupportsBoltV3() || !databaseSupportsListTransaction()) { + if (!databaseSupportsBoltV3() || !(await databaseSupportsListTransaction())) { return } @@ -450,7 +450,7 @@ describe('#integration Bolt V3 API', () => { }, 20000) async function testTransactionMetadataWithTransactionFunctions (read) { - if (!databaseSupportsBoltV3() || !databaseSupportsListTransaction()) { + if (!databaseSupportsBoltV3() || !(await databaseSupportsListTransaction())) { return } @@ -554,7 +554,19 @@ describe('#integration Bolt V3 API', () => { return protocolVersion >= 3 } - function databaseSupportsListTransaction () { - return sharedNeo4j.edition === 'enterprise' + async function databaseSupportsListTransaction () { + if (sharedNeo4j.edition === 'enterprise') { + try { + await session.run( + 'CALL dbms.listTransactions()', + {} + ) + return true + } catch (e) { + console.error('Database does not support dbms.listTransactions()', e) + return false + } + } + return false } })