File tree Expand file tree Collapse file tree 2 files changed +36
-5
lines changed Expand file tree Collapse file tree 2 files changed +36
-5
lines changed Original file line number Diff line number Diff line change @@ -12,11 +12,28 @@ var p = Connection.prototype;
12
12
13
13
var nativeConnect = p . connect ;
14
14
15
- p . connect = function ( ) {
15
+ p . connect = function ( cb ) {
16
16
var self = this ;
17
17
utils . buildLibpqConnectionString ( this . _config , function ( err , conString ) {
18
- if ( err ) return self . emit ( 'error' , err ) ;
18
+ if ( err ) {
19
+ return cb ? cb ( err ) : self . emit ( 'error' , err ) ;
20
+ }
19
21
nativeConnect . call ( self , conString ) ;
22
+ if ( cb ) {
23
+ var errCallback ;
24
+ var connectCallback = function ( ) {
25
+ //remove single-fire connection error callback
26
+ self . removeListener ( 'error' , errCallback ) ;
27
+ cb ( null ) ;
28
+ }
29
+ errCallback = function ( err ) {
30
+ //remove singel-fire connection success callback
31
+ self . removeListener ( 'connect' , connectCallback ) ;
32
+ cb ( err ) ;
33
+ }
34
+ self . once ( 'connect' , connectCallback ) ;
35
+ self . once ( 'error' , errCallback ) ;
36
+ }
20
37
} )
21
38
}
22
39
Original file line number Diff line number Diff line change @@ -89,15 +89,29 @@ test('error handling', function(){
89
89
} ) ;
90
90
91
91
test ( 'non-query error with callback' , function ( ) {
92
-
93
92
var client = new Client ( {
94
93
user :'asldkfjsadlfkj'
95
94
} ) ;
96
- client . connect ( function ( error , client ) {
95
+ client . connect ( assert . calls ( function ( error , client ) {
97
96
assert . ok ( error ) ;
98
- } ) ;
97
+ } ) ) ;
98
+ } ) ;
99
+
100
+ } ) ;
101
+
102
+ test ( 'non-error calls supplied callback' , function ( ) {
103
+ var client = new Client ( {
104
+ user : helper . args . user ,
105
+ password : helper . args . password ,
106
+ host : helper . args . host ,
107
+ port : helper . args . port ,
108
+ database : helper . args . database
99
109
} ) ;
100
110
111
+ client . connect ( assert . calls ( function ( err ) {
112
+ assert . isNull ( err ) ;
113
+ client . end ( ) ;
114
+ } ) )
101
115
} ) ;
102
116
103
117
test ( 'when connecting to invalid host' , function ( ) {
You can’t perform that action at this time.
0 commit comments