@@ -133,6 +133,30 @@ describe('parse', function(){
133133 subject . host . should . equal ( '/unix/socket' ) ;
134134 } ) ;
135135
136+ it ( 'url with encoded socket' , function ( ) {
137+ var subject = parse ( 'pg://user:pass@%2Funix%2Fsocket/dbname' ) ;
138+ subject . user . should . equal ( 'user' ) ;
139+ subject . password . should . equal ( 'pass' ) ;
140+ subject . host . should . equal ( '/unix/socket' ) ;
141+ subject . database . should . equal ( 'dbname' ) ;
142+ } ) ;
143+
144+ it ( 'url with real host and an encoded db name' , function ( ) {
145+ var subject = parse ( 'pg://user:pass@localhost/%2Fdbname' ) ;
146+ subject . user . should . equal ( 'user' ) ;
147+ subject . password . should . equal ( 'pass' ) ;
148+ subject . host . should . equal ( 'localhost' ) ;
149+ subject . database . should . equal ( '%2Fdbname' ) ;
150+ } ) ;
151+
152+ it ( 'configuration parameter host treats encoded socket as part of the db name' , function ( ) {
153+ var subject = parse ( 'pg://user:pass@%2Funix%2Fsocket/dbname?host=localhost' ) ;
154+ subject . user . should . equal ( 'user' ) ;
155+ subject . password . should . equal ( 'pass' ) ;
156+ subject . host . should . equal ( 'localhost' ) ;
157+ subject . database . should . equal ( '%2Funix%2Fsocket/dbname' ) ;
158+ } ) ;
159+
136160 it ( 'configuration parameter application_name' , function ( ) {
137161 var connectionString = 'pg:///?application_name=TheApp' ;
138162 var subject = parse ( connectionString ) ;
0 commit comments