@@ -210,28 +210,29 @@ mod test {
210
210
use std:: time:: Duration ;
211
211
212
212
use chrono:: TimeZone ;
213
- use primitives:: config:: configuration;
214
- use primitives:: event_submission:: { RateLimit , Rule } ;
215
- use primitives:: sentry:: Event ;
216
- use primitives:: targeting:: Rules ;
217
- use primitives:: util:: tests:: prep_db:: { DUMMY_CHANNEL , IDS } ;
218
- use primitives:: { Channel , Config , EventSubmission } ;
213
+ use primitives:: {
214
+ config:: configuration,
215
+ event_submission:: { RateLimit , Rule } ,
216
+ sentry:: Event ,
217
+ targeting:: Rules ,
218
+ util:: tests:: prep_db:: { DUMMY_CHANNEL , IDS } ,
219
+ Channel , Config , EventSubmission ,
220
+ } ;
221
+
222
+ use deadpool:: managed:: Object ;
219
223
220
- use crate :: db:: redis_connection;
221
- use crate :: Session ;
224
+ use crate :: {
225
+ db:: redis_pool:: { Database , TESTS_POOL } ,
226
+ Session ,
227
+ } ;
222
228
223
229
use super :: * ;
224
230
225
- async fn setup ( ) -> ( Config , MultiplexedConnection ) {
226
- let mut redis = redis_connection ( ) . await . expect ( "Couldn't connect to Redis " ) ;
231
+ async fn setup ( ) -> ( Config , Object < Database , crate :: db :: redis_pool :: Error > ) {
232
+ let connection = TESTS_POOL . get ( ) . await . expect ( "Should return Object " ) ;
227
233
let config = configuration ( "development" , None ) . expect ( "Failed to get dev configuration" ) ;
228
234
229
- // run `FLUSHALL` to clean any leftovers of other tests
230
- let _ = redis:: cmd ( "FLUSHALL" )
231
- . query_async :: < _ , String > ( & mut redis)
232
- . await ;
233
-
234
- ( config, redis)
235
+ ( config, connection)
235
236
}
236
237
237
238
fn get_channel ( with_rule : Rule ) -> Channel {
@@ -269,7 +270,7 @@ mod test {
269
270
270
271
#[ tokio:: test]
271
272
async fn session_uid_rate_limit ( ) {
272
- let ( config, redis ) = setup ( ) . await ;
273
+ let ( config, database ) = setup ( ) . await ;
273
274
274
275
let auth = Auth {
275
276
era : 0 ,
@@ -294,7 +295,7 @@ mod test {
294
295
let channel = get_channel ( rule) ;
295
296
296
297
let response = check_access (
297
- & redis ,
298
+ & database ,
298
299
& session,
299
300
Some ( & auth) ,
300
301
& config. ip_rate_limit ,
@@ -305,7 +306,7 @@ mod test {
305
306
assert_eq ! ( Ok ( ( ) ) , response) ;
306
307
307
308
let err_response = check_access (
308
- & & redis ,
309
+ & database ,
309
310
& session,
310
311
Some ( & auth) ,
311
312
& config. ip_rate_limit ,
@@ -323,7 +324,7 @@ mod test {
323
324
324
325
#[ tokio:: test]
325
326
async fn ip_rate_limit ( ) {
326
- let ( config, redis ) = setup ( ) . await ;
327
+ let ( config, database ) = setup ( ) . await ;
327
328
328
329
let auth = Auth {
329
330
era : 0 ,
@@ -347,7 +348,7 @@ mod test {
347
348
let channel = get_channel ( rule) ;
348
349
349
350
let err_response = check_access (
350
- & redis ,
351
+ & database ,
351
352
& session,
352
353
Some ( & auth) ,
353
354
& config. ip_rate_limit ,
@@ -364,7 +365,7 @@ mod test {
364
365
) ;
365
366
366
367
let response = check_access (
367
- & redis ,
368
+ & database ,
368
369
& session,
369
370
Some ( & auth) ,
370
371
& config. ip_rate_limit ,
@@ -376,9 +377,8 @@ mod test {
376
377
}
377
378
378
379
#[ tokio:: test]
379
- #[ ignore]
380
380
async fn check_access_past_channel_valid_until ( ) {
381
- let ( config, redis ) = setup ( ) . await ;
381
+ let ( config, database ) = setup ( ) . await ;
382
382
383
383
let auth = Auth {
384
384
era : 0 ,
@@ -403,7 +403,7 @@ mod test {
403
403
channel. valid_until = Utc . ymd ( 1970 , 1 , 1 ) . and_hms ( 12 , 00 , 9 ) ;
404
404
405
405
let err_response = check_access (
406
- & redis ,
406
+ & database ,
407
407
& session,
408
408
Some ( & auth) ,
409
409
& config. ip_rate_limit ,
@@ -416,9 +416,8 @@ mod test {
416
416
}
417
417
418
418
#[ tokio:: test]
419
- #[ ignore]
420
419
async fn check_access_close_event_in_withdraw_period ( ) {
421
- let ( config, redis ) = setup ( ) . await ;
420
+ let ( config, database ) = setup ( ) . await ;
422
421
423
422
let auth = Auth {
424
423
era : 0 ,
@@ -443,7 +442,7 @@ mod test {
443
442
channel. spec . withdraw_period_start = Utc . ymd ( 1970 , 1 , 1 ) . and_hms ( 12 , 0 , 9 ) ;
444
443
445
444
let ok_response = check_access (
446
- & redis ,
445
+ & database ,
447
446
& session,
448
447
Some ( & auth) ,
449
448
& config. ip_rate_limit ,
@@ -456,9 +455,8 @@ mod test {
456
455
}
457
456
458
457
#[ tokio:: test]
459
- #[ ignore]
460
458
async fn check_access_close_event_and_is_creator ( ) {
461
- let ( config, redis ) = setup ( ) . await ;
459
+ let ( config, database ) = setup ( ) . await ;
462
460
463
461
let auth = Auth {
464
462
era : 0 ,
@@ -483,7 +481,7 @@ mod test {
483
481
channel. creator = IDS [ "follower" ] ;
484
482
485
483
let ok_response = check_access (
486
- & redis ,
484
+ & database ,
487
485
& session,
488
486
Some ( & auth) ,
489
487
& config. ip_rate_limit ,
@@ -496,9 +494,8 @@ mod test {
496
494
}
497
495
498
496
#[ tokio:: test]
499
- #[ ignore]
500
497
async fn check_access_update_targeting_event_and_is_creator ( ) {
501
- let ( config, redis ) = setup ( ) . await ;
498
+ let ( config, database ) = setup ( ) . await ;
502
499
503
500
let auth = Auth {
504
501
era : 0 ,
@@ -523,7 +520,7 @@ mod test {
523
520
channel. creator = IDS [ "follower" ] ;
524
521
525
522
let ok_response = check_access (
526
- & redis ,
523
+ & database ,
527
524
& session,
528
525
Some ( & auth) ,
529
526
& config. ip_rate_limit ,
@@ -536,9 +533,8 @@ mod test {
536
533
}
537
534
538
535
#[ tokio:: test]
539
- #[ ignore]
540
536
async fn not_creator_and_there_are_close_events ( ) {
541
- let ( config, redis ) = setup ( ) . await ;
537
+ let ( config, database ) = setup ( ) . await ;
542
538
543
539
let auth = Auth {
544
540
era : 0 ,
@@ -574,7 +570,7 @@ mod test {
574
570
} ,
575
571
] ;
576
572
let err_response = check_access (
577
- & redis ,
573
+ & database ,
578
574
& session,
579
575
Some ( & auth) ,
580
576
& config. ip_rate_limit ,
@@ -587,9 +583,8 @@ mod test {
587
583
}
588
584
589
585
#[ tokio:: test]
590
- #[ ignore]
591
586
async fn not_creator_and_there_are_update_targeting_events ( ) {
592
- let ( config, redis ) = setup ( ) . await ;
587
+ let ( config, database ) = setup ( ) . await ;
593
588
594
589
let auth = Auth {
595
590
era : 0 ,
@@ -624,7 +619,7 @@ mod test {
624
619
} ,
625
620
] ;
626
621
let err_response = check_access (
627
- & redis ,
622
+ & database ,
628
623
& session,
629
624
Some ( & auth) ,
630
625
& config. ip_rate_limit ,
@@ -637,9 +632,8 @@ mod test {
637
632
}
638
633
639
634
#[ tokio:: test]
640
- #[ ignore]
641
635
async fn in_withdraw_period_no_close_events ( ) {
642
- let ( config, redis ) = setup ( ) . await ;
636
+ let ( config, database ) = setup ( ) . await ;
643
637
644
638
let auth = Auth {
645
639
era : 0 ,
@@ -664,7 +658,7 @@ mod test {
664
658
channel. spec . withdraw_period_start = Utc . ymd ( 1970 , 1 , 1 ) . and_hms ( 12 , 0 , 9 ) ;
665
659
666
660
let err_response = check_access (
667
- & redis ,
661
+ & database ,
668
662
& session,
669
663
Some ( & auth) ,
670
664
& config. ip_rate_limit ,
@@ -677,9 +671,8 @@ mod test {
677
671
}
678
672
679
673
#[ tokio:: test]
680
- #[ ignore]
681
674
async fn with_forbidden_country ( ) {
682
- let ( config, redis ) = setup ( ) . await ;
675
+ let ( config, database ) = setup ( ) . await ;
683
676
684
677
let auth = Auth {
685
678
era : 0 ,
@@ -703,7 +696,7 @@ mod test {
703
696
let channel = get_channel ( rule) ;
704
697
705
698
let err_response = check_access (
706
- & redis ,
699
+ & database ,
707
700
& session,
708
701
Some ( & auth) ,
709
702
& config. ip_rate_limit ,
@@ -716,9 +709,8 @@ mod test {
716
709
}
717
710
718
711
#[ tokio:: test]
719
- #[ ignore]
720
712
async fn with_forbidden_referrer ( ) {
721
- let ( config, redis ) = setup ( ) . await ;
713
+ let ( config, database ) = setup ( ) . await ;
722
714
723
715
let auth = Auth {
724
716
era : 0 ,
@@ -742,7 +734,7 @@ mod test {
742
734
let channel = get_channel ( rule) ;
743
735
744
736
let err_response = check_access (
745
- & redis ,
737
+ & database ,
746
738
& session,
747
739
Some ( & auth) ,
748
740
& config. ip_rate_limit ,
@@ -755,9 +747,8 @@ mod test {
755
747
}
756
748
757
749
#[ tokio:: test]
758
- #[ ignore]
759
750
async fn no_rate_limit ( ) {
760
- let ( config, redis ) = setup ( ) . await ;
751
+ let ( config, database ) = setup ( ) . await ;
761
752
762
753
let auth = Auth {
763
754
era : 0 ,
@@ -778,7 +769,7 @@ mod test {
778
769
let channel = get_channel ( rule) ;
779
770
780
771
let ok_response = check_access (
781
- & redis ,
772
+ & database ,
782
773
& session,
783
774
Some ( & auth) ,
784
775
& config. ip_rate_limit ,
@@ -791,9 +782,8 @@ mod test {
791
782
}
792
783
793
784
#[ tokio:: test]
794
- #[ ignore]
795
785
async fn applied_rules ( ) {
796
- let ( config, redis ) = setup ( ) . await ;
786
+ let ( config, mut database ) = setup ( ) . await ;
797
787
798
788
let auth = Auth {
799
789
era : 0 ,
@@ -817,7 +807,7 @@ mod test {
817
807
let channel = get_channel ( rule) ;
818
808
819
809
let ok_response = check_access (
820
- & redis ,
810
+ & database ,
821
811
& session,
822
812
Some ( & auth) ,
823
813
& config. ip_rate_limit ,
@@ -833,7 +823,8 @@ mod test {
833
823
834
824
let value_in_redis = redis:: cmd ( "GET" )
835
825
. arg ( & key)
836
- . query_async :: < _ , String > ( & mut redis. clone ( ) )
826
+ // Deref can't work here, so we need to call the `Object` -> `Database.connection`
827
+ . query_async :: < _ , String > ( & mut database. connection )
837
828
. await
838
829
. expect ( "should exist in redis" ) ;
839
830
assert_eq ! ( & value, & value_in_redis) ;
0 commit comments