@@ -65,21 +65,53 @@ fn index_queries() {
65
65
assert_eq ! ( anon. search( "q=readme" ) . meta. total, 1 ) ;
66
66
assert_eq ! ( anon. search( "q=description" ) . meta. total, 1 ) ;
67
67
68
- assert_eq ! ( anon. search_by_user_id( user. id) . crates. len( ) , 4 ) ;
69
- assert_eq ! ( anon. search_by_user_id( 0 ) . crates. len( ) , 0 ) ;
68
+ let json = anon. search_by_user_id ( user. id ) ;
69
+ assert_eq ! ( json. crates. len( ) , 4 ) ;
70
+ assert_eq ! ( json. meta. total, 4 ) ;
71
+
72
+ let json = anon. search_by_user_id ( 0 ) ;
73
+ assert_eq ! ( json. crates. len( ) , 0 ) ;
74
+ assert_eq ! ( json. meta. total, 0 ) ;
75
+
76
+ let json = anon. search ( "letter=F" ) ;
77
+ assert_eq ! ( json. crates. len( ) , 2 ) ;
78
+ assert_eq ! ( json. meta. total, 2 ) ;
79
+
80
+ let json = anon. search ( "letter=B" ) ;
81
+ assert_eq ! ( json. crates. len( ) , 1 ) ;
82
+ assert_eq ! ( json. meta. total, 1 ) ;
83
+
84
+ let json = anon. search ( "letter=b" ) ;
85
+ assert_eq ! ( json. crates. len( ) , 1 ) ;
86
+ assert_eq ! ( json. meta. total, 1 ) ;
87
+
88
+ let json = anon. search ( "letter=c" ) ;
89
+ assert_eq ! ( json. crates. len( ) , 0 ) ;
90
+ assert_eq ! ( json. meta. total, 0 ) ;
91
+
92
+ let json = anon. search ( "keyword=kw1" ) ;
93
+ assert_eq ! ( json. crates. len( ) , 3 ) ;
94
+ assert_eq ! ( json. meta. total, 3 ) ;
95
+
96
+ let json = anon. search ( "keyword=KW1" ) ;
97
+ assert_eq ! ( json. crates. len( ) , 3 ) ;
98
+ assert_eq ! ( json. meta. total, 3 ) ;
99
+
100
+ let json = anon. search ( "keyword=kw2" ) ;
101
+ assert_eq ! ( json. crates. len( ) , 0 ) ;
102
+ assert_eq ! ( json. meta. total, 0 ) ;
70
103
71
- assert_eq ! ( anon. search( "letter=F" ) . crates. len( ) , 2 ) ;
72
- assert_eq ! ( anon. search( "letter=B" ) . crates. len( ) , 1 ) ;
73
- assert_eq ! ( anon. search( "letter=b" ) . crates. len( ) , 1 ) ;
74
- assert_eq ! ( anon. search( "letter=c" ) . crates. len( ) , 0 ) ;
104
+ let json = anon. search ( "all_keywords=kw1%20kw3" ) ;
105
+ assert_eq ! ( json. crates. len( ) , 1 ) ;
106
+ assert_eq ! ( json. meta. total, 1 ) ;
75
107
76
- assert_eq ! ( anon. search( "keyword=kw1" ) . crates. len( ) , 3 ) ;
77
- assert_eq ! ( anon. search( "keyword=KW1" ) . crates. len( ) , 3 ) ;
78
- assert_eq ! ( anon. search( "keyword=kw2" ) . crates. len( ) , 0 ) ;
79
- assert_eq ! ( anon. search( "all_keywords=kw1%20kw3" ) . crates. len( ) , 1 ) ;
108
+ let json = anon. search ( "q=foo&keyword=kw1" ) ;
109
+ assert_eq ! ( json. crates. len( ) , 1 ) ;
110
+ assert_eq ! ( json. meta. total, 1 ) ;
80
111
81
- assert_eq ! ( anon. search( "q=foo&keyword=kw1" ) . crates. len( ) , 1 ) ;
82
- assert_eq ! ( anon. search( "q=foo2&keyword=kw1" ) . crates. len( ) , 0 ) ;
112
+ let json = anon. search ( "q=foo2&keyword=kw1" ) ;
113
+ assert_eq ! ( json. crates. len( ) , 0 ) ;
114
+ assert_eq ! ( json. meta. total, 0 ) ;
83
115
84
116
app. db ( |conn| {
85
117
new_category ( "Category 1" , "cat1" , "Category 1 crates" )
@@ -724,6 +756,10 @@ fn pagination_links_included_if_applicable() {
724
756
Some ( "?letter=p&page=2&per_page=1" . to_string( ) ) ,
725
757
page3. meta. prev_page
726
758
) ;
759
+ assert ! ( [ page1. meta. total, page2. meta. total, page3. meta. total]
760
+ . iter( )
761
+ . all( |w| * w == 3 ) ) ;
762
+ assert_eq ! ( page4. meta. total, 0 ) ;
727
763
}
728
764
729
765
#[ test]
@@ -788,10 +824,12 @@ fn test_pages_work_even_with_seek_based_pagination() {
788
824
// The next_page returned by the request is seek-based
789
825
let first = anon. search ( "per_page=1" ) ;
790
826
assert ! ( first. meta. next_page. unwrap( ) . contains( "seek=" ) ) ;
827
+ assert_eq ! ( first. meta. total, 3 ) ;
791
828
792
829
// Calling with page=2 will revert to offset-based pagination
793
830
let second = anon. search ( "page=2&per_page=1" ) ;
794
831
assert ! ( second. meta. next_page. unwrap( ) . contains( "page=3" ) ) ;
832
+ assert_eq ! ( second. meta. total, 3 ) ;
795
833
}
796
834
797
835
#[ test]
@@ -841,6 +879,7 @@ fn crates_by_user_id() {
841
879
842
880
let response = user. search_by_user_id ( id) ;
843
881
assert_eq ! ( response. crates. len( ) , 1 ) ;
882
+ assert_eq ! ( response. meta. total, 1 ) ;
844
883
}
845
884
846
885
#[ test]
@@ -855,4 +894,5 @@ fn crates_by_user_id_not_including_deleted_owners() {
855
894
856
895
let response = anon. search_by_user_id ( user. id ) ;
857
896
assert_eq ! ( response. crates. len( ) , 0 ) ;
897
+ assert_eq ! ( response. meta. total, 0 ) ;
858
898
}
0 commit comments