@@ -5,15 +5,14 @@ const pg = helper.pg
55// first make pool hold 2 clients
66pg . defaults . poolSize = 2
77
8- const pool = new pg . Pool ( )
9-
108const suite = new helper . Suite ( )
119suite . test ( 'connecting to invalid port' , ( cb ) => {
1210 const pool = new pg . Pool ( { port : 13801 } )
1311 pool . connect ( ) . catch ( e => cb ( ) )
1412} )
1513
1614suite . test ( 'errors emitted on pool' , ( cb ) => {
15+ const pool = new pg . Pool ( )
1716 // get first client
1817 pool . connect ( assert . success ( function ( client , done ) {
1918 client . id = 1
@@ -48,3 +47,45 @@ suite.test('errors emitted on pool', (cb) => {
4847 } )
4948 } ) )
5049} )
50+
51+ suite . test ( 'connection-level errors cause queued queries to fail' , ( cb ) => {
52+ const pool = new pg . Pool ( )
53+ pool . connect ( assert . success ( ( client , done ) => {
54+ client . query ( 'SELECT pg_terminate_backend(pg_backend_pid())' , assert . calls ( ( err ) => {
55+ assert . equal ( err . code , '57P01' )
56+ } ) )
57+
58+ pool . once ( 'error' , assert . calls ( ( err , brokenClient ) => {
59+ assert . equal ( client , brokenClient )
60+ } ) )
61+
62+ client . query ( 'SELECT 1' , assert . calls ( ( err ) => {
63+ assert . equal ( err . code , 'EPIPE' )
64+
65+ done ( )
66+ pool . end ( )
67+ cb ( )
68+ } ) )
69+ } ) )
70+ } )
71+
72+ suite . test ( 'connection-level errors cause future queries to fail' , ( cb ) => {
73+ const pool = new pg . Pool ( )
74+ pool . connect ( assert . success ( ( client , done ) => {
75+ client . query ( 'SELECT pg_terminate_backend(pg_backend_pid())' , assert . calls ( ( err ) => {
76+ assert . equal ( err . code , '57P01' )
77+ } ) )
78+
79+ pool . once ( 'error' , assert . calls ( ( err , brokenClient ) => {
80+ assert . equal ( client , brokenClient )
81+
82+ client . query ( 'SELECT 1' , assert . calls ( ( err ) => {
83+ assert . equal ( err . message , 'Client has encountered a connection error and is not queryable' )
84+
85+ done ( )
86+ pool . end ( )
87+ cb ( )
88+ } ) )
89+ } ) )
90+ } ) )
91+ } )
0 commit comments