@@ -60,6 +60,42 @@ describe('events', function () {
60
60
} , 100 )
61
61
} )
62
62
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
+
63
99
it ( 'emits error and client if an idle client in the pool hits an error' , function ( done ) {
64
100
const pool = new Pool ( )
65
101
pool . connect ( function ( err , client ) {
0 commit comments