12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- var assert = require('assert');
- var Pack = require('../../');
- describe('Connectable ::', function() {
- describe('Release Connection', function() {
- var manager;
- var connection;
- // Create a manager and connection
- before(function(done) {
- // Needed to dynamically get the host using the docker container
- var host = process.env.MYSQL_PORT_3306_TCP_ADDR || 'localhost';
- Pack.createManager({
- connectionString: 'mysql://mp:mp@' + host + ':3306/mppg'
- })
- .exec(function(err, report) {
- if (err) {
- return done(err);
- }
- manager = report.manager;
- Pack.getConnection({
- manager: manager
- })
- .exec(function(err, report) {
- if (err) {
- return done(err);
- }
- connection = report.connection;
- return done();
- });
- });
- });
- it('should successfully release a connection', function(done) {
- // Grab the number of free connections before releasing the current one
- var freeConnectionsPreRelease = manager.pool._freeConnections.length;
- // Release the connection
- Pack.releaseConnection({
- connection: connection
- })
- .exec(function(err) {
- if (err) {
- return done(err);
- }
- // If the connection was successfully released the _allConnections and the
- // _freeConnections should be equal.
- // https://github.com/mysqljs/mysql/blob/master/lib/Pool.js
- var poolSize = manager.pool._allConnections.length;
- var freeConnectionsPostRelease = manager.pool._freeConnections.length;
- // Ensure we end up with different counts after releasing the connection
- assert.notEqual(freeConnectionsPostRelease, freeConnectionsPreRelease);
- // Ensure that all the available connections are free
- assert.equal(poolSize, freeConnectionsPostRelease);
- return done();
- });
- });
- });
- });
|