Skip to content

Commit

Permalink
test: add test for sidorares/issues/3148
Browse files Browse the repository at this point in the history
  • Loading branch information
dstankovd committed Nov 16, 2024
1 parent 203ee72 commit acd8b70
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions test/test-pool-releases-connections-gracefully.test.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
'use strict';
const createPool = require('../common.test.cjs').createPool;
const { assert } = require('poku');

/**
* This test case tests that the pool releases connections gracefully after the idle timeout has passed.
*
* @see https://github.com/sidorares/node-mysql2/issues/3148
*/

const pool = new createPool({
connectionLimit: 3,
maxIdle: 2,
idleTimeout: 1000,
});

let connection1Ended = false;
let connection2Ended = false;
let connection3Ended = false;

pool.getConnection((_err1, connection1) => {
pool.getConnection((_err2, connection2) => {
pool.getConnection((_err3, connection3) => {
connection1.stream.on('end', () => (connection1Ended = true));
connection2.stream.on('end', () => (connection2Ended = true));
connection3.stream.on('end', () => (connection3Ended = true));

connection1.release();
connection2.release();
connection3.release();

setTimeout(() => {
assert(connection1Ended, 'connection1 should have ended');
assert(connection2Ended, 'connection2 should have ended');
assert(connection3Ended, 'connection3 should have ended');

pool.end();
}, 2000);
});
});
});

0 comments on commit acd8b70

Please sign in to comment.