@@ -20,77 +20,87 @@ const {Client} = pg;
20
20
t . test ( 'open connection and retrieves standard pg tables' , async t => {
21
21
const connector = new Connector ( ) ;
22
22
const clientOpts = await connector . getOptions ( {
23
- instanceConnectionName : process . env . POSTGRES_CONNECTION_NAME ,
24
- ipType : 'PUBLIC' ,
25
- authType : 'PASSWORD' ,
23
+ instanceConnectionName : String ( process . env . POSTGRES_CONNECTION_NAME ) ,
26
24
} ) ;
27
25
const client = new Client ( {
28
26
...clientOpts ,
29
- user : process . env . POSTGRES_USER ,
30
- password : process . env . POSTGRES_PASS ,
31
- database : process . env . POSTGRES_DB ,
27
+ user : String ( process . env . POSTGRES_USER ) ,
28
+ password : String ( process . env . POSTGRES_PASS ) ,
29
+ database : String ( process . env . POSTGRES_DB ) ,
32
30
} ) ;
33
- client . connect ( ) ;
31
+ t . after ( async ( ) => {
32
+ try {
33
+ await client . end ( ) ;
34
+ } finally {
35
+ connector . close ( ) ;
36
+ }
37
+ } ) ;
38
+
39
+ await client . connect ( ) ;
34
40
35
41
const {
36
42
rows : [ result ] ,
37
43
} = await client . query ( 'SELECT NOW();' ) ;
38
44
const returnedDate = result [ 'now' ] ;
39
45
t . ok ( returnedDate . getTime ( ) , 'should have valid returned date object' ) ;
40
-
41
- await client . end ( ) ;
42
- connector . close ( ) ;
43
46
} ) ;
44
47
45
48
t . test ( 'open IAM connection and retrieves standard pg tables' , async t => {
46
49
const connector = new Connector ( ) ;
47
50
const clientOpts = await connector . getOptions ( {
48
- instanceConnectionName : process . env . POSTGRES_CONNECTION_NAME ,
49
- ipType : ' PUBLIC' ,
50
- authType : ' IAM' ,
51
+ instanceConnectionName : String ( process . env . POSTGRES_CONNECTION_NAME ) ,
52
+ ipType : " PUBLIC" ,
53
+ authType : " IAM" ,
51
54
} ) ;
52
55
const client = new Client ( {
53
56
...clientOpts ,
54
- user : process . env . POSTGRES_IAM_USER ,
55
- database : process . env . POSTGRES_DB ,
57
+ user : String ( process . env . POSTGRES_USER_IAM_NODE ) ,
58
+ database : String ( process . env . POSTGRES_DB ) ,
59
+ } ) ;
60
+ t . after ( async ( ) => {
61
+ try {
62
+ await client . end ( ) ;
63
+ } finally {
64
+ connector . close ( ) ;
65
+ }
56
66
} ) ;
57
- client . connect ( ) ;
67
+ await client . connect ( ) ;
58
68
59
69
const {
60
70
rows : [ result ] ,
61
71
} = await client . query ( 'SELECT NOW();' ) ;
62
72
const returnedDate = result [ 'now' ] ;
63
73
t . ok ( returnedDate . getTime ( ) , 'should have valid returned date object' ) ;
64
-
65
- await client . end ( ) ;
66
- connector . close ( ) ;
67
74
} ) ;
68
75
69
76
t . test (
70
77
'open connection to CAS-based CA instance and retrieves standard pg tables' ,
71
78
async t => {
72
79
const connector = new Connector ( ) ;
73
80
const clientOpts = await connector . getOptions ( {
74
- instanceConnectionName : process . env . POSTGRES_CAS_CONNECTION_NAME ,
75
- ipType : 'PUBLIC' ,
76
- authType : 'PASSWORD' ,
81
+ instanceConnectionName : String ( process . env . POSTGRES_CAS_CONNECTION_NAME ) ,
77
82
} ) ;
78
83
const client = new Client ( {
79
84
...clientOpts ,
80
- user : process . env . POSTGRES_USER ,
81
- password : process . env . POSTGRES_CAS_PASS ,
82
- database : process . env . POSTGRES_DB ,
85
+ user : String ( process . env . POSTGRES_USER ) ,
86
+ password : String ( process . env . POSTGRES_CAS_PASS ) ,
87
+ database : String ( process . env . POSTGRES_DB ) ,
83
88
} ) ;
84
- client . connect ( ) ;
89
+ t . after ( async ( ) => {
90
+ try {
91
+ await client . end ( ) ;
92
+ } finally {
93
+ connector . close ( ) ;
94
+ }
95
+ } ) ;
96
+
97
+ await client . connect ( ) ;
85
98
86
99
const {
87
100
rows : [ result ] ,
88
101
} = await client . query ( 'SELECT NOW();' ) ;
89
102
const returnedDate = result [ 'now' ] ;
90
103
t . ok ( returnedDate . getTime ( ) , 'should have valid returned date object' ) ;
91
-
92
- await client . end ( ) ;
93
- connector . close ( ) ;
94
104
}
95
105
) ;
96
106
@@ -109,13 +119,83 @@ t.test(
109
119
password : String ( process . env . POSTGRES_CUSTOMER_CAS_PASS ) ,
110
120
database : String ( process . env . POSTGRES_DB ) ,
111
121
} ) ;
112
- client . connect ( ) ;
122
+ t . after ( async ( ) => {
123
+ try {
124
+ await client . end ( ) ;
125
+ } finally {
126
+ connector . close ( ) ;
127
+ }
128
+ } ) ;
129
+
130
+ await client . connect ( ) ;
113
131
const {
114
132
rows : [ result ] ,
115
133
} = await client . query ( 'SELECT NOW();' ) ;
116
134
const returnedDate = result [ 'now' ] ;
117
135
t . ok ( returnedDate . getTime ( ) , 'should have valid returned date object' ) ;
118
- await client . end ( ) ;
119
- connector . close ( ) ;
120
136
}
121
137
) ;
138
+
139
+ t . test (
140
+ 'open connection to Domain Name instance retrieves standard pg tables' ,
141
+ async t => {
142
+ const connector = new Connector ( ) ;
143
+ const clientOpts = await connector . getOptions ( {
144
+ domainName : String ( process . env . POSTGRES_CUSTOMER_CAS_DOMAIN_NAME ) ,
145
+ } ) ;
146
+ const client = new Client ( {
147
+ ...clientOpts ,
148
+ user : String ( process . env . POSTGRES_USER ) ,
149
+ password : String ( process . env . POSTGRES_CUSTOMER_CAS_PASS ) ,
150
+ database : String ( process . env . POSTGRES_DB ) ,
151
+ } ) ;
152
+ t . after ( async ( ) => {
153
+ try {
154
+ await client . end ( ) ;
155
+ } finally {
156
+ connector . close ( ) ;
157
+ }
158
+ } ) ;
159
+
160
+ await client . connect ( ) ;
161
+ const {
162
+ rows : [ result ] ,
163
+ } = await client . query ( 'SELECT NOW();' ) ;
164
+ const returnedDate = result [ 'now' ] ;
165
+ t . ok ( returnedDate . getTime ( ) , 'should have valid returned date object' ) ;
166
+ }
167
+ ) ;
168
+
169
+ t . test (
170
+ 'open connection to Domain Name invalid domain name rejects connection' ,
171
+ async t => {
172
+ const connector = new Connector ( ) ;
173
+ const clientOpts = await connector . getOptions ( {
174
+ domainName : String ( process . env . POSTGRES_CUSTOMER_CAS_INVALID_DOMAIN_NAME ) ,
175
+ } ) ;
176
+ const client = new Client ( {
177
+ ...clientOpts ,
178
+ user : String ( process . env . POSTGRES_USER ) ,
179
+ password : String ( process . env . POSTGRES_CUSTOMER_CAS_PASS ) ,
180
+ database : String ( process . env . POSTGRES_DB ) ,
181
+ } ) ;
182
+ t . after ( async ( ) => {
183
+ console . log ( 'Ending...' ) ;
184
+ try {
185
+ await client . end ( ) ;
186
+ } finally {
187
+ connector . close ( ) ;
188
+ console . log ( 'Ended...' ) ;
189
+ }
190
+ } ) ;
191
+ try {
192
+ await client . connect ( ) ;
193
+ t . fail ( 'Should throw exception' ) ;
194
+ } catch ( e ) {
195
+ t . same ( e . code , 'ERR_TLS_CERT_ALTNAME_INVALID' ) ;
196
+ } finally {
197
+ t . end ( ) ;
198
+ }
199
+ }
200
+ ) ;
201
+
0 commit comments