@@ -124,3 +124,67 @@ test('pathname of "/" returns null database', function (t) {
124124
125125 t . end ( ) ;
126126} ) ;
127+
128+ test ( 'configuration parameter application_name' , function ( t ) {
129+ var connectionString = 'pg:///?application_name=TheApp' ;
130+ var subject = parse ( connectionString ) ;
131+ t . equal ( subject . application_name , 'TheApp' ) ;
132+ t . end ( ) ;
133+ } ) ;
134+
135+ test ( 'configuration parameter fallback_application_name' , function ( t ) {
136+ var connectionString = 'pg:///?fallback_application_name=TheAppFallback' ;
137+ var subject = parse ( connectionString ) ;
138+ t . equal ( subject . fallback_application_name , 'TheAppFallback' ) ;
139+ t . end ( ) ;
140+ } ) ;
141+
142+ test ( 'configuration parameter fallback_application_name' , function ( t ) {
143+ var connectionString = 'pg:///?fallback_application_name=TheAppFallback' ;
144+ var subject = parse ( connectionString ) ;
145+ t . equal ( subject . fallback_application_name , 'TheAppFallback' ) ;
146+ t . end ( ) ;
147+ } ) ;
148+
149+ test ( 'configuration parameter ssl=true' , function ( t ) {
150+ var connectionString = 'pg:///?ssl=true' ;
151+ var subject = parse ( connectionString ) ;
152+ t . equal ( subject . ssl , true ) ;
153+ t . end ( ) ;
154+ } ) ;
155+
156+ test ( 'configuration parameter ssl=1' , function ( t ) {
157+ var connectionString = 'pg:///?ssl=1' ;
158+ var subject = parse ( connectionString ) ;
159+ t . equal ( subject . ssl , true ) ;
160+ t . end ( ) ;
161+ } ) ;
162+
163+ test ( 'configuration parameter keepalives' , function ( t ) {
164+ var connectionString = 'pg:///?keepalives=1' ;
165+ var subject = parse ( connectionString ) ;
166+ t . equal ( subject . keepalives , '1' ) ;
167+ t . end ( ) ;
168+ } ) ;
169+
170+ test ( 'unknown configuration parameter is passed into client' , function ( t ) {
171+ var connectionString = 'pg:///?ThereIsNoSuchPostgresParameter=1234' ;
172+ var subject = parse ( connectionString ) ;
173+ t . equal ( subject . ThereIsNoSuchPostgresParameter , '1234' ) ;
174+ t . end ( ) ;
175+ } ) ;
176+
177+ test ( 'do not override a config field with value from query string' , function ( t ) {
178+ var subject = parse ( 'socket:/some path/?db=my[db]&encoding=utf8&client_encoding=bogus' ) ;
179+ t . equal ( subject . host , '/some path/' ) ;
180+ t . equal ( subject . database , 'my[db]' , 'must to be escaped and unescaped trough "my%5Bdb%5D"' ) ;
181+ t . equal ( subject . client_encoding , 'utf8' ) ;
182+ t . end ( ) ;
183+ } ) ;
184+
185+ test ( 'return last value of repeated parameter' , function ( t ) {
186+ var connectionString = 'pg:///?keepalives=1&keepalives=0' ;
187+ var subject = parse ( connectionString ) ;
188+ t . equal ( subject . keepalives , '0' ) ;
189+ t . end ( ) ;
190+ } ) ;
0 commit comments