From 5ac67d46000df5bbd5566bdb60dc8a293e27cb6e Mon Sep 17 00:00:00 2001 From: Antonio Barcelos Date: Mon, 7 Feb 2022 17:43:44 +0100 Subject: [PATCH] Introduce `Driver.isEncrypted()` method to the API --- packages/core/src/driver.ts | 11 ++++++++++- packages/core/test/driver.test.ts | 15 +++++++++++++++ packages/neo4j-driver/test/driver.test.js | 6 ++++++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/packages/core/src/driver.ts b/packages/core/src/driver.ts index 0737f4104..6d37f6941 100644 --- a/packages/core/src/driver.ts +++ b/packages/core/src/driver.ts @@ -205,6 +205,15 @@ class Driver { return connectionProvider.supportsUserImpersonation() } + /** + * Returns boolean to indicate if driver has been configured with encryption enabled. + * + * @returns {boolean} + */ + isEncrypted(): boolean { + return this._isEncrypted() + } + /** * @protected * @returns {boolean} @@ -220,7 +229,7 @@ class Driver { * @returns {boolean} */ _isEncrypted() { - return this._config.encrypted === ENCRYPTION_ON + return this._config.encrypted === ENCRYPTION_ON || this._config.encrypted === true } /** diff --git a/packages/core/test/driver.test.ts b/packages/core/test/driver.test.ts index 8b920ad51..f34118af6 100644 --- a/packages/core/test/driver.test.ts +++ b/packages/core/test/driver.test.ts @@ -140,6 +140,21 @@ describe('Driver', () => { promise.catch(_ => 'Do nothing').finally(() => {}) }) + it.each([ + [{ encrypted: true }, true], + [{ encrypted: false }, false], + [{}, false], + [{ encrypted: 'ENCRYPTION_ON' }, true], + [{ encrypted: 'ENCRYPTION_OFF' }, false], + ])('.isEncrypted()', (config, expectedValue) => { + const connectionProvider = new ConnectionProvider() + connectionProvider.close = jest.fn(() => Promise.resolve()) + // @ts-ignore + const driver = new Driver(META_INFO, config, mockCreateConnectonProvider(connectionProvider)) + + expect(driver.isEncrypted()).toEqual(expectedValue) + }) + function mockCreateConnectonProvider(connectionProvider: ConnectionProvider) { return ( id: number, diff --git a/packages/neo4j-driver/test/driver.test.js b/packages/neo4j-driver/test/driver.test.js index 4af6664dc..86282e9bf 100644 --- a/packages/neo4j-driver/test/driver.test.js +++ b/packages/neo4j-driver/test/driver.test.js @@ -48,6 +48,7 @@ describe('#unit driver', () => { sharedNeo4j.authToken ) expect(driver._isEncrypted()).toBeFalsy() + expect(driver.isEncrypted()).toBeFalsy() expect(driver._supportsRouting()).toBeFalsy() }) @@ -57,6 +58,7 @@ describe('#unit driver', () => { sharedNeo4j.authToken ) expect(driver._isEncrypted()).toBeTruthy() + expect(driver.isEncrypted()).toBeTruthy() expect(driver._getTrust()).toEqual('TRUST_SYSTEM_CA_SIGNED_CERTIFICATES') expect(driver._supportsRouting()).toBeFalsy() }) @@ -67,6 +69,7 @@ describe('#unit driver', () => { sharedNeo4j.authToken ) expect(driver._isEncrypted()).toBeTruthy() + expect(driver.isEncrypted()).toBeTruthy() expect(driver._getTrust()).toEqual('TRUST_ALL_CERTIFICATES') expect(driver._supportsRouting()).toBeFalsy() }) @@ -77,6 +80,7 @@ describe('#unit driver', () => { sharedNeo4j.authToken ) expect(driver._isEncrypted()).toBeFalsy() + expect(driver.isEncrypted()).toBeFalsy() expect(driver._supportsRouting()).toBeTruthy() }) @@ -86,6 +90,7 @@ describe('#unit driver', () => { sharedNeo4j.authToken ) expect(driver._isEncrypted()).toBeTruthy() + expect(driver.isEncrypted()).toBeTruthy() expect(driver._getTrust()).toEqual('TRUST_SYSTEM_CA_SIGNED_CERTIFICATES') expect(driver._supportsRouting()).toBeTruthy() }) @@ -96,6 +101,7 @@ describe('#unit driver', () => { sharedNeo4j.authToken ) expect(driver._isEncrypted()).toBeTruthy() + expect(driver.isEncrypted()).toBeTruthy() expect(driver._getTrust()).toEqual('TRUST_ALL_CERTIFICATES') expect(driver._supportsRouting()).toBeTruthy() })