@@ -86,9 +86,6 @@ async fn test_sorting() {
8686 . expect_build ( conn) ;
8787 } ) ;
8888
89- // Sort by semver
90- let url = "/api/v1/crates/foo_versions/versions?sort=semver" ;
91- let json: AllVersions = anon. get ( url) . await . good ( ) ;
9289 let expects = [
9390 "2.0.0-alpha" ,
9491 "1.0.0" ,
@@ -100,19 +97,29 @@ async fn test_sorting() {
10097 "1.0.0-alpha.1" ,
10198 "1.0.0-alpha" ,
10299 ] ;
100+ let release_tracks = Some ( json ! ( { "1.x" : { "highest" : "1.0.0" } } ) ) ;
101+
102+ // Sort by semver
103+ let url = "/api/v1/crates/foo_versions/versions?sort=semver" ;
104+ let json: AllVersions = anon. get ( url) . await . good ( ) ;
103105 for ( num, expect) in nums ( & json. versions ) . iter ( ) . zip ( expects) {
104106 assert_eq ! ( num, expect) ;
105107 }
106- let ( resp, calls) = page_with_seek ( & anon, url) . await ;
107- for ( json, expect) in resp. iter ( ) . zip ( expects) {
108- assert_eq ! ( json. versions[ 0 ] . num, expect) ;
109- assert_eq ! ( json. meta. total as usize , expects. len( ) ) ;
110- assert_eq ! (
111- json. meta. release_tracks,
112- Some ( json!( { "1.x" : { "highest" : "1.0.0" } } ) )
113- ) ;
108+ for ( url, release_tracks) in [
109+ ( url, None ) ,
110+ (
111+ & format ! ( "{url}&include=release_tracks" ) ,
112+ release_tracks. as_ref ( ) ,
113+ ) ,
114+ ] {
115+ let ( resp, calls) = page_with_seek ( & anon, url) . await ;
116+ for ( json, expect) in resp. iter ( ) . zip ( expects) {
117+ assert_eq ! ( json. versions[ 0 ] . num, expect) ;
118+ assert_eq ! ( json. meta. total as usize , expects. len( ) ) ;
119+ assert_eq ! ( json. meta. release_tracks. as_ref( ) , release_tracks) ;
120+ }
121+ assert_eq ! ( calls as usize , expects. len( ) + 1 ) ;
114122 }
115- assert_eq ! ( calls as usize , expects. len( ) + 1 ) ;
116123
117124 // Sort by date
118125 let url = "/api/v1/crates/foo_versions/versions?sort=date" ;
@@ -121,16 +128,21 @@ async fn test_sorting() {
121128 for ( num, expect) in nums ( & json. versions ) . iter ( ) . zip ( & expects) {
122129 assert_eq ! ( num, * expect) ;
123130 }
124- let ( resp, calls) = page_with_seek ( & anon, url) . await ;
125- for ( json, expect) in resp. iter ( ) . zip ( & expects) {
126- assert_eq ! ( json. versions[ 0 ] . num, * expect) ;
127- assert_eq ! ( json. meta. total as usize , expects. len( ) ) ;
128- assert_eq ! (
129- json. meta. release_tracks,
130- Some ( json!( { "1.x" : { "highest" : "1.0.0" } } ) )
131- ) ;
131+ for ( url, release_tracks) in [
132+ ( url, None ) ,
133+ (
134+ & format ! ( "{url}&include=release_tracks" ) ,
135+ release_tracks. as_ref ( ) ,
136+ ) ,
137+ ] {
138+ let ( resp, calls) = page_with_seek ( & anon, url) . await ;
139+ for ( json, expect) in resp. iter ( ) . zip ( & expects) {
140+ assert_eq ! ( json. versions[ 0 ] . num, * expect) ;
141+ assert_eq ! ( json. meta. total as usize , expects. len( ) ) ;
142+ assert_eq ! ( json. meta. release_tracks. as_ref( ) , release_tracks) ;
143+ }
144+ assert_eq ! ( calls as usize , expects. len( ) + 1 ) ;
132145 }
133- assert_eq ! ( calls as usize , expects. len( ) + 1 ) ;
134146}
135147
136148#[ tokio:: test( flavor = "multi_thread" ) ]
@@ -167,10 +179,10 @@ async fn test_seek_based_pagination_semver_sorting() {
167179 . good ( ) ;
168180 assert_eq ! ( nums( & json. versions) , expects) ;
169181 assert_eq ! ( json. meta. total as usize , expects. len( ) ) ;
170- assert_eq ! ( json. meta. release_tracks, release_tracks ) ;
182+ assert_eq ! ( json. meta. release_tracks, None ) ;
171183
172184 let json: VersionList = anon
173- . get_with_query ( url, "per_page=1&sort=semver" )
185+ . get_with_query ( url, "per_page=1&sort=semver&include=release_tracks " )
174186 . await
175187 . good ( ) ;
176188 assert_eq ! ( nums( & json. versions) , expects[ 0 ..1 ] ) ;
@@ -192,7 +204,7 @@ async fn test_seek_based_pagination_semver_sorting() {
192204 assert_eq ! ( nums( & json. versions) , expects[ 1 ..] ) ;
193205 assert ! ( json. meta. next_page. is_none( ) ) ;
194206 assert_eq ! ( json. meta. total as usize , expects. len( ) ) ;
195- assert_eq ! ( json. meta. release_tracks, release_tracks ) ;
207+ assert_eq ! ( json. meta. release_tracks, None ) ;
196208
197209 // per_page euqal to the number of remain versions
198210 let json: VersionList = anon
@@ -202,7 +214,7 @@ async fn test_seek_based_pagination_semver_sorting() {
202214 assert_eq ! ( nums( & json. versions) , expects[ 1 ..] ) ;
203215 assert ! ( json. meta. next_page. is_some( ) ) ;
204216 assert_eq ! ( json. meta. total as usize , expects. len( ) ) ;
205- assert_eq ! ( json. meta. release_tracks, release_tracks ) ;
217+ assert_eq ! ( json. meta. release_tracks, None ) ;
206218
207219 // A decodable seek value, MTAwCg (100), but doesn't actually exist
208220 let json: VersionList = anon
@@ -212,7 +224,7 @@ async fn test_seek_based_pagination_semver_sorting() {
212224 assert_eq ! ( json. versions. len( ) , 0 ) ;
213225 assert ! ( json. meta. next_page. is_none( ) ) ;
214226 assert_eq ! ( json. meta. total, 0 ) ;
215- assert_eq ! ( json. meta. release_tracks, release_tracks ) ;
227+ assert_eq ! ( json. meta. release_tracks, None ) ;
216228}
217229
218230#[ tokio:: test( flavor = "multi_thread" ) ]
@@ -249,10 +261,10 @@ async fn test_seek_based_pagination_date_sorting() {
249261 . good ( ) ;
250262 assert_eq ! ( nums( & json. versions) , expects) ;
251263 assert_eq ! ( json. meta. total as usize , expects. len( ) ) ;
252- assert_eq ! ( json. meta. release_tracks, release_tracks ) ;
264+ assert_eq ! ( json. meta. release_tracks, None ) ;
253265
254266 let json: VersionList = anon
255- . get_with_query ( url, "per_page=1&sort=date" )
267+ . get_with_query ( url, "per_page=1&sort=date&include=release_tracks " )
256268 . await
257269 . good ( ) ;
258270 assert_eq ! ( nums( & json. versions) , expects[ 0 ..1 ] ) ;
@@ -274,7 +286,7 @@ async fn test_seek_based_pagination_date_sorting() {
274286 assert_eq ! ( nums( & json. versions) , expects[ 1 ..] ) ;
275287 assert ! ( json. meta. next_page. is_none( ) ) ;
276288 assert_eq ! ( json. meta. total as usize , expects. len( ) ) ;
277- assert_eq ! ( json. meta. release_tracks, release_tracks ) ;
289+ assert_eq ! ( json. meta. release_tracks, None ) ;
278290
279291 // per_page euqal to the number of remain versions
280292 let json: VersionList = anon
@@ -284,7 +296,7 @@ async fn test_seek_based_pagination_date_sorting() {
284296 assert_eq ! ( nums( & json. versions) , expects[ 1 ..] ) ;
285297 assert ! ( json. meta. next_page. is_some( ) ) ;
286298 assert_eq ! ( json. meta. total as usize , expects. len( ) ) ;
287- assert_eq ! ( json. meta. release_tracks, release_tracks ) ;
299+ assert_eq ! ( json. meta. release_tracks, None ) ;
288300
289301 // A decodable seek value, WzE3Mjg1NjE5OTI3MzQ2NzMsNV0K ([1728561992734673,5]), but doesn't actually exist
290302 let json: VersionList = anon
@@ -297,7 +309,7 @@ async fn test_seek_based_pagination_date_sorting() {
297309 assert_eq ! ( json. versions. len( ) , 0 ) ;
298310 assert ! ( json. meta. next_page. is_none( ) ) ;
299311 assert_eq ! ( json. meta. total, 0 ) ;
300- assert_eq ! ( json. meta. release_tracks, release_tracks ) ;
312+ assert_eq ! ( json. meta. release_tracks, None ) ;
301313}
302314
303315#[ tokio:: test( flavor = "multi_thread" ) ]
0 commit comments