@@ -60,6 +60,42 @@ describe('events', function () {
6060 } , 100 )
6161 } )
6262
63+ it ( 'emits release every time a client is released' , function ( done ) {
64+ const pool = new Pool ( )
65+ let releaseCount = 0
66+ pool . on ( 'release' , function ( err , client ) {
67+ expect ( err instanceof Error ) . not . to . be ( true )
68+ expect ( client ) . to . be . ok ( )
69+ releaseCount ++
70+ } )
71+ for ( let i = 0 ; i < 10 ; i ++ ) {
72+ pool . connect ( function ( err , client , release ) {
73+ if ( err ) return done ( err )
74+ release ( )
75+ } )
76+ pool . query ( 'SELECT now()' )
77+ }
78+ setTimeout ( function ( ) {
79+ expect ( releaseCount ) . to . be ( 20 )
80+ pool . end ( done )
81+ } , 100 )
82+ } )
83+
84+ it ( 'emits release with an error if client is released due to an error' , function ( done ) {
85+ const pool = new Pool ( )
86+ pool . connect ( function ( err , client , release ) {
87+ expect ( err ) . to . equal ( undefined )
88+ const releaseError = new Error ( 'problem' )
89+ pool . once ( 'release' , function ( err , errClient ) {
90+ console . log ( err , errClient )
91+ expect ( err ) . to . equal ( releaseError )
92+ expect ( errClient ) . to . equal ( client )
93+ pool . end ( done )
94+ } )
95+ release ( releaseError )
96+ } )
97+ } )
98+
6399 it ( 'emits error and client if an idle client in the pool hits an error' , function ( done ) {
64100 const pool = new Pool ( )
65101 pool . connect ( function ( err , client ) {
0 commit comments