From c23ad55a7e56a9f0162995e8dd5c5a1e0ed6ed10 Mon Sep 17 00:00:00 2001 From: Joakim Date: Mon, 28 Oct 2019 12:22:06 +0200 Subject: [PATCH] Tests: Improve closing test to check else --- test/helpers/helpers.js | 6 +++++- test/integration/adapter.test.js | 17 ++++++++++++++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/test/helpers/helpers.js b/test/helpers/helpers.js index d1e6d3d..3777a9b 100644 --- a/test/helpers/helpers.js +++ b/test/helpers/helpers.js @@ -30,4 +30,8 @@ async function createAdapter (useTransaction = false) { return MongooseAdapter.newAdapter('mongodb://localhost:27017/casbin', MONGOOSE_OPTIONS, false, useTransaction); }; -module.exports = { createEnforcer, createAdapter, model, policy }; +async function createDisconnectedAdapter () { + return new MongooseAdapter('mongodb://localhost:27017/casbin', MONGOOSE_OPTIONS); +}; + +module.exports = { createEnforcer, createAdapter, createDisconnectedAdapter, model, policy }; diff --git a/test/integration/adapter.test.js b/test/integration/adapter.test.js index eb0cf7c..d2b7a94 100644 --- a/test/integration/adapter.test.js +++ b/test/integration/adapter.test.js @@ -13,7 +13,7 @@ // limitations under the License. const { assert } = require('chai'); -const { createEnforcer, createAdapter, model, policy } = require('../helpers/helpers'); +const { createEnforcer, createAdapter, createDisconnectedAdapter, model, policy } = require('../helpers/helpers'); const { newEnforcer } = require('casbin'); const CasbinRule = require('../../src/model'); @@ -220,10 +220,21 @@ describe('MongooseAdapter', () => { }); it('Should allow you to close the connection', async () => { + // Create mongoAdapter const enforcer = await createEnforcer(); const adapter = enforcer.getAdapter(); - assert.equal(adapter.mongoseInstance.connection.readyState, 1); + assert.equal(adapter.mongoseInstance.connection.readyState, 1, 'Connection should be open'); + + // Connection should close + await adapter.close(); + assert.equal(adapter.mongoseInstance.connection.readyState, 0, 'Connection should be closed'); + }); + + it('Closing a closed/undefined connection should not raise an error', async () => { + // Create mongoAdapter + const adapter = await createDisconnectedAdapter(); + // Closing a closed connection should not raise an error await adapter.close(); - assert.equal(adapter.mongoseInstance.connection.readyState, 0); + assert.equal(adapter.mongoseInstance, undefined, 'mongoseInstance should be undefined'); }); });