@@ -26,6 +26,7 @@ var compare = function(actual, expected, type) {
26
26
test ( 'ConnectionParameters initializing from defaults' , function ( ) {
27
27
var subject = new ConnectionParameters ( ) ;
28
28
compare ( subject , defaults , 'defaults' ) ;
29
+ assert . ok ( subject . isDomainSocket === false ) ;
29
30
} ) ;
30
31
31
32
test ( 'ConnectionParameters initializing from config' , function ( ) {
@@ -43,4 +44,98 @@ test('ConnectionParameters initializing from config', function() {
43
44
} ;
44
45
var subject = new ConnectionParameters ( config ) ;
45
46
compare ( subject , config , 'config' ) ;
47
+ assert . ok ( subject . isDomainSocket === false ) ;
46
48
} ) ;
49
+
50
+ test ( 'initializing with unix domain socket' , function ( ) {
51
+ var subject = new ConnectionParameters ( '/var/run/pg.sock' ) ;
52
+ assert . ok ( subject . isDomainSocket ) ;
53
+ assert . equal ( subject . host , '/var/run/pg.sock' ) ;
54
+ } ) ;
55
+
56
+ test ( 'libpq connection string building' , function ( ) {
57
+ var checkForPart = function ( array , part ) {
58
+ assert . ok ( array . indexOf ( part ) > - 1 , array . join ( " " ) + " did not contain " + part ) ;
59
+ }
60
+
61
+ test ( 'builds simple string' , function ( ) {
62
+ var config = {
63
+ user : 'brian' ,
64
+ password : 'xyz' ,
65
+ port : 888 ,
66
+ host : 'localhost' ,
67
+ database : 'bam'
68
+ }
69
+ var subject = new ConnectionParameters ( config ) ;
70
+ subject . getLibpqConnectionString ( assert . calls ( function ( err , constring ) {
71
+ assert . isNull ( err ) ;
72
+ var parts = constring . split ( " " ) ;
73
+ checkForPart ( parts , "user='brian'" ) ;
74
+ checkForPart ( parts , "password='xyz'" ) ;
75
+ checkForPart ( parts , "port='888'" ) ;
76
+ checkForPart ( parts , "hostaddr=127.0.0.1" ) ;
77
+ checkForPart ( parts , "dbname='bam'" ) ;
78
+ } ) ) ;
79
+ } ) ;
80
+
81
+ test ( 'builds dns string' , function ( ) {
82
+ var config = {
83
+ user : 'brian' ,
84
+ password : 'asdf' ,
85
+ port : 5432 ,
86
+ host : 'localhost'
87
+ } ;
88
+ var subject = new ConnectionParameters ( config ) ;
89
+ subject . getLibpqConnectionString ( assert . calls ( function ( err , constring ) {
90
+ assert . isNull ( err ) ;
91
+ var parts = constring . split ( " " ) ;
92
+ checkForPart ( parts , "user='brian'" ) ;
93
+ checkForPart ( parts , "hostaddr=127.0.0.1" ) ;
94
+ } ) ) ;
95
+ } ) ;
96
+
97
+ test ( 'error when dns fails' , function ( ) {
98
+ var config = {
99
+ user : 'brian' ,
100
+ password : 'asf' ,
101
+ port : 5432 ,
102
+ host : 'asdlfkjasldfkksfd#!$!!!!..com'
103
+ } ;
104
+ var subject = new ConnectionParameters ( config ) ;
105
+ subject . getLibpqConnectionString ( assert . calls ( function ( err , constring ) {
106
+ assert . ok ( err ) ;
107
+ assert . isNull ( constring )
108
+ } ) ) ;
109
+ } ) ;
110
+
111
+ test ( 'connecting to unix domain socket' , function ( ) {
112
+ var config = {
113
+ user : 'brian' ,
114
+ password : 'asf' ,
115
+ port : 5432 ,
116
+ host : '/var/run/pgsockbla'
117
+ } ;
118
+ var subject = new ConnectionParameters ( config ) ;
119
+ subject . getLibpqConnectionString ( assert . calls ( function ( err , constring ) {
120
+ assert . isNull ( err ) ;
121
+ var parts = constring . split ( " " ) ;
122
+ checkForPart ( parts , "user='brian'" ) ;
123
+ checkForPart ( parts , "host=/var/run/pgsockbla" ) ;
124
+ } ) ) ;
125
+ } ) ;
126
+
127
+ test ( 'password contains < and/or > characters' , function ( ) {
128
+ return false ;
129
+ var sourceConfig = {
130
+ user :'brian' ,
131
+ password : 'hello<ther>e' ,
132
+ port : 5432 ,
133
+ host : 'localhost' ,
134
+ database : 'postgres'
135
+ }
136
+ var connectionString = 'pg://' + sourceConfig . user + ':' + sourceConfig . password + '@' + sourceConfig . host + ':' + sourceConfig . port + '/' + sourceConfig . database ;
137
+ var subject = new ConnectionParameters ( connectionString ) ;
138
+ assert . equal ( subject . password , sourceConfig . password ) ;
139
+ } ) ;
140
+
141
+ } )
0 commit comments