@@ -120,6 +120,43 @@ describe('parse', function(){
120120 ( subject . database === null ) . should . equal ( true ) ;
121121 } ) ;
122122
123+ it ( 'configuration parameter host' , function ( ) {
124+ var subject = parse ( 'pg://user:pass@/dbname?host=/unix/socket' ) ;
125+ subject . user . should . equal ( 'user' ) ;
126+ subject . password . should . equal ( 'pass' ) ;
127+ subject . host . should . equal ( '/unix/socket' ) ;
128+ subject . database . should . equal ( 'dbname' ) ;
129+ } ) ;
130+
131+ it ( 'configuration parameter host overrides url host' , function ( ) {
132+ var subject = parse ( 'pg://user:pass@localhost/dbname?host=/unix/socket' ) ;
133+ subject . host . should . equal ( '/unix/socket' ) ;
134+ } ) ;
135+
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+
123160 it ( 'configuration parameter application_name' , function ( ) {
124161 var connectionString = 'pg:///?application_name=TheApp' ;
125162 var subject = parse ( connectionString ) ;
0 commit comments