@@ -175,5 +175,134 @@ impl Builder {
175
175
}
176
176
}
177
177
178
+ #[ cfg( test) ]
179
+ mod tests {
180
+ use super :: * ;
181
+ use crate :: Postgrest ;
182
+
183
+ const REST_URL : & str = "http://localhost:3000" ;
184
+
185
+ #[ test]
186
+ fn only_accept_json ( ) {
187
+ let client = Postgrest :: new ( REST_URL ) ;
188
+ let builder = client. from ( "users" ) ;
189
+ assert_eq ! (
190
+ builder. headers. get( "Accept" ) . unwrap( ) ,
191
+ HeaderValue :: from_static( "application/json" )
192
+ ) ;
193
+ }
194
+
195
+ #[ test]
196
+ fn auth_with_token ( ) {
197
+ let client = Postgrest :: new ( REST_URL ) ;
198
+ let builder = client. from ( "users" ) . auth ( "$Up3rS3crET" ) ;
199
+ assert_eq ! (
200
+ builder. headers. get( "Authentication" ) . unwrap( ) ,
201
+ HeaderValue :: from_static( "Bearer $Up3rS3crET" )
202
+ ) ;
203
+ }
204
+
205
+ #[ test]
206
+ fn select_assert_query ( ) {
207
+ let client = Postgrest :: new ( REST_URL ) ;
208
+ let builder = client. from ( "users" ) . select ( "some_table" ) ;
209
+ assert_eq ! ( builder. method, Method :: GET ) ;
210
+ assert_eq ! (
211
+ builder
212
+ . queries
213
+ . contains( & ( "select" . to_string( ) , "some_table" . to_string( ) ) ) ,
214
+ true
215
+ ) ;
216
+ }
217
+
218
+ #[ test]
219
+ fn order_assert_query ( ) {
220
+ let client = Postgrest :: new ( REST_URL ) ;
221
+ let builder = client. from ( "users" ) . order ( "id" ) ;
222
+ assert_eq ! (
223
+ builder
224
+ . queries
225
+ . contains( & ( "order" . to_string( ) , "id" . to_string( ) ) ) ,
226
+ true
227
+ ) ;
228
+ }
229
+
230
+ #[ test]
231
+ fn limit_assert_range_header ( ) {
232
+ let client = Postgrest :: new ( REST_URL ) ;
233
+ let builder = client. from ( "users" ) . limit ( 20 ) ;
234
+ assert_eq ! (
235
+ builder. headers. get( "Range" ) . unwrap( ) ,
236
+ HeaderValue :: from_static( "0-19" )
237
+ ) ;
238
+ }
239
+
240
+ #[ test]
241
+ fn range_assert_range_header ( ) {
242
+ let client = Postgrest :: new ( REST_URL ) ;
243
+ let builder = client. from ( "users" ) . range ( 10 , 20 ) ;
244
+ assert_eq ! (
245
+ builder. headers. get( "Range" ) . unwrap( ) ,
246
+ HeaderValue :: from_static( "10-20" )
247
+ ) ;
248
+ }
249
+
250
+ #[ test]
251
+ fn single_assert_accept_header ( ) {
252
+ let client = Postgrest :: new ( REST_URL ) ;
253
+ let builder = client. from ( "users" ) . single ( ) ;
254
+ assert_eq ! (
255
+ builder. headers. get( "Accept" ) . unwrap( ) ,
256
+ HeaderValue :: from_static( "application/vnd.pgrst.object+json" )
257
+ ) ;
258
+ }
259
+
260
+ #[ test]
261
+ fn insert_csv_assert_content_type ( ) {
262
+ let client = Postgrest :: new ( REST_URL ) ;
263
+ let builder = client. from ( "users" ) . insert_csv ( "ignored" ) ;
264
+ assert_eq ! (
265
+ builder. headers. get( "Content-Type" ) . unwrap( ) ,
266
+ HeaderValue :: from_static( "text/csv" )
267
+ ) ;
268
+ }
269
+
270
+ #[ test]
271
+ fn upsert_assert_prefer_header ( ) {
272
+ let client = Postgrest :: new ( REST_URL ) ;
273
+ let builder = client. from ( "users" ) . upsert ( "ignored" ) ;
274
+ assert_eq ! (
275
+ builder. headers. get( "Prefer" ) . unwrap( ) ,
276
+ HeaderValue :: from_static( "return=representation; resolution=merge-duplicates" )
277
+ ) ;
278
+ }
279
+
280
+ #[ test]
281
+ fn single_upsert_assert_prefer_header ( ) {
282
+ let client = Postgrest :: new ( REST_URL ) ;
283
+ let builder = client
284
+ . from ( "users" )
285
+ . single_upsert ( "ignored" , "ignored" , "ignored" ) ;
286
+ assert_eq ! (
287
+ builder. headers. get( "Prefer" ) . unwrap( ) ,
288
+ HeaderValue :: from_static( "return=representation" )
289
+ ) ;
290
+ }
291
+
292
+ // filters...
293
+
294
+ #[ test]
295
+ fn not_rpc_should_not_have_flag ( ) {
296
+ let client = Postgrest :: new ( REST_URL ) ;
297
+ let builder = client. from ( "users" ) . select ( "column" ) ;
298
+ assert_eq ! ( builder. is_rpc, false ) ;
299
+ }
300
+
301
+ #[ test]
302
+ fn rpc_should_have_body_and_flag ( ) {
303
+ let client = Postgrest :: new ( REST_URL ) ;
304
+ let builder = client. from ( "users" ) . rpc ( "{\" a\" : 1, \" b\" : 2}" ) ;
305
+ assert_eq ! ( builder. body. unwrap( ) , "{\" a\" : 1, \" b\" : 2}" ) ;
306
+ assert_eq ! ( builder. is_rpc, true ) ;
178
307
}
179
308
}
0 commit comments