@@ -68,21 +68,53 @@ fn index_queries() {
68
68
// Query containing a space
69
69
assert_eq ! ( anon. search( "q=foo%20kw3" ) . meta. total, 1 ) ;
70
70
71
- assert_eq ! ( anon. search_by_user_id( user. id) . crates. len( ) , 4 ) ;
72
- assert_eq ! ( anon. search_by_user_id( 0 ) . crates. len( ) , 0 ) ;
71
+ let json = anon. search_by_user_id ( user. id ) ;
72
+ assert_eq ! ( json. crates. len( ) , 4 ) ;
73
+ assert_eq ! ( json. meta. total, 4 ) ;
74
+
75
+ let json = anon. search_by_user_id ( 0 ) ;
76
+ assert_eq ! ( json. crates. len( ) , 0 ) ;
77
+ assert_eq ! ( json. meta. total, 0 ) ;
78
+
79
+ let json = anon. search ( "letter=F" ) ;
80
+ assert_eq ! ( json. crates. len( ) , 2 ) ;
81
+ assert_eq ! ( json. meta. total, 2 ) ;
82
+
83
+ let json = anon. search ( "letter=B" ) ;
84
+ assert_eq ! ( json. crates. len( ) , 1 ) ;
85
+ assert_eq ! ( json. meta. total, 1 ) ;
86
+
87
+ let json = anon. search ( "letter=b" ) ;
88
+ assert_eq ! ( json. crates. len( ) , 1 ) ;
89
+ assert_eq ! ( json. meta. total, 1 ) ;
90
+
91
+ let json = anon. search ( "letter=c" ) ;
92
+ assert_eq ! ( json. crates. len( ) , 0 ) ;
93
+ assert_eq ! ( json. meta. total, 0 ) ;
94
+
95
+ let json = anon. search ( "keyword=kw1" ) ;
96
+ assert_eq ! ( json. crates. len( ) , 3 ) ;
97
+ assert_eq ! ( json. meta. total, 3 ) ;
98
+
99
+ let json = anon. search ( "keyword=KW1" ) ;
100
+ assert_eq ! ( json. crates. len( ) , 3 ) ;
101
+ assert_eq ! ( json. meta. total, 3 ) ;
102
+
103
+ let json = anon. search ( "keyword=kw2" ) ;
104
+ assert_eq ! ( json. crates. len( ) , 0 ) ;
105
+ assert_eq ! ( json. meta. total, 0 ) ;
73
106
74
- assert_eq ! ( anon. search( "letter=F" ) . crates. len( ) , 2 ) ;
75
- assert_eq ! ( anon. search( "letter=B" ) . crates. len( ) , 1 ) ;
76
- assert_eq ! ( anon. search( "letter=b" ) . crates. len( ) , 1 ) ;
77
- assert_eq ! ( anon. search( "letter=c" ) . crates. len( ) , 0 ) ;
107
+ let json = anon. search ( "all_keywords=kw1%20kw3" ) ;
108
+ assert_eq ! ( json. crates. len( ) , 1 ) ;
109
+ assert_eq ! ( json. meta. total, 1 ) ;
78
110
79
- assert_eq ! ( anon. search( "keyword=kw1" ) . crates. len( ) , 3 ) ;
80
- assert_eq ! ( anon. search( "keyword=KW1" ) . crates. len( ) , 3 ) ;
81
- assert_eq ! ( anon. search( "keyword=kw2" ) . crates. len( ) , 0 ) ;
82
- assert_eq ! ( anon. search( "all_keywords=kw1%20kw3" ) . crates. len( ) , 1 ) ;
111
+ let json = anon. search ( "q=foo&keyword=kw1" ) ;
112
+ assert_eq ! ( json. crates. len( ) , 1 ) ;
113
+ assert_eq ! ( json. meta. total, 1 ) ;
83
114
84
- assert_eq ! ( anon. search( "q=foo&keyword=kw1" ) . crates. len( ) , 1 ) ;
85
- assert_eq ! ( anon. search( "q=foo2&keyword=kw1" ) . crates. len( ) , 0 ) ;
115
+ let json = anon. search ( "q=foo2&keyword=kw1" ) ;
116
+ assert_eq ! ( json. crates. len( ) , 0 ) ;
117
+ assert_eq ! ( json. meta. total, 0 ) ;
86
118
87
119
app. db ( |conn| {
88
120
new_category ( "Category 1" , "cat1" , "Category 1 crates" )
@@ -727,6 +759,10 @@ fn pagination_links_included_if_applicable() {
727
759
Some ( "?letter=p&page=2&per_page=1" . to_string( ) ) ,
728
760
page3. meta. prev_page
729
761
) ;
762
+ assert ! ( [ page1. meta. total, page2. meta. total, page3. meta. total]
763
+ . iter( )
764
+ . all( |w| * w == 3 ) ) ;
765
+ assert_eq ! ( page4. meta. total, 0 ) ;
730
766
}
731
767
732
768
#[ test]
@@ -791,10 +827,12 @@ fn test_pages_work_even_with_seek_based_pagination() {
791
827
// The next_page returned by the request is seek-based
792
828
let first = anon. search ( "per_page=1" ) ;
793
829
assert ! ( first. meta. next_page. unwrap( ) . contains( "seek=" ) ) ;
830
+ assert_eq ! ( first. meta. total, 3 ) ;
794
831
795
832
// Calling with page=2 will revert to offset-based pagination
796
833
let second = anon. search ( "page=2&per_page=1" ) ;
797
834
assert ! ( second. meta. next_page. unwrap( ) . contains( "page=3" ) ) ;
835
+ assert_eq ! ( second. meta. total, 3 ) ;
798
836
}
799
837
800
838
#[ test]
@@ -844,6 +882,7 @@ fn crates_by_user_id() {
844
882
845
883
let response = user. search_by_user_id ( id) ;
846
884
assert_eq ! ( response. crates. len( ) , 1 ) ;
885
+ assert_eq ! ( response. meta. total, 1 ) ;
847
886
}
848
887
849
888
#[ test]
@@ -858,4 +897,5 @@ fn crates_by_user_id_not_including_deleted_owners() {
858
897
859
898
let response = anon. search_by_user_id ( user. id ) ;
860
899
assert_eq ! ( response. crates. len( ) , 0 ) ;
900
+ assert_eq ! ( response. meta. total, 0 ) ;
861
901
}
0 commit comments