@@ -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,26 @@ 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+ ( & format ! ( "{url}&include=release_tracks" ) , release_tracks. as_ref ( ) ) ,
111+ ] {
112+ let ( resp, calls) = page_with_seek ( & anon, url) . await ;
113+ for ( json, expect) in resp. iter ( ) . zip ( expects) {
114+ assert_eq ! ( json. versions[ 0 ] . num, expect) ;
115+ assert_eq ! ( json. meta. total as usize , expects. len( ) ) ;
116+ assert_eq ! ( json. meta. release_tracks. as_ref( ) , release_tracks) ;
117+ }
118+ assert_eq ! ( calls as usize , expects. len( ) + 1 ) ;
114119 }
115- assert_eq ! ( calls as usize , expects. len( ) + 1 ) ;
116120
117121 // Sort by date
118122 let url = "/api/v1/crates/foo_versions/versions?sort=date" ;
@@ -121,16 +125,19 @@ async fn test_sorting() {
121125 for ( num, expect) in nums ( & json. versions ) . iter ( ) . zip ( & expects) {
122126 assert_eq ! ( num, * expect) ;
123127 }
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- ) ;
128+ for ( url, release_tracks) in [
129+ ( url, None ) ,
130+ ( & format ! ( "{url}&include=release_tracks" ) , release_tracks. as_ref ( ) ) ,
131+ ] {
132+ let ( resp, calls) = page_with_seek ( & anon, url) . await ;
133+ for ( json, expect) in resp. iter ( ) . zip ( & expects) {
134+ assert_eq ! ( json. versions[ 0 ] . num, * expect) ;
135+ assert_eq ! ( json. meta. total as usize , expects. len( ) ) ;
136+ assert_eq ! ( json. meta. release_tracks. as_ref( ) , release_tracks) ;
137+ }
138+ assert_eq ! ( calls as usize , expects. len( ) + 1 ) ;
132139 }
133- assert_eq ! ( calls as usize , expects . len ( ) + 1 ) ;
140+
134141}
135142
136143#[ tokio:: test( flavor = "multi_thread" ) ]
@@ -167,10 +174,10 @@ async fn test_seek_based_pagination_semver_sorting() {
167174 . good ( ) ;
168175 assert_eq ! ( nums( & json. versions) , expects) ;
169176 assert_eq ! ( json. meta. total as usize , expects. len( ) ) ;
170- assert_eq ! ( json. meta. release_tracks, release_tracks ) ;
177+ assert_eq ! ( json. meta. release_tracks, None ) ;
171178
172179 let json: VersionList = anon
173- . get_with_query ( url, "per_page=1&sort=semver" )
180+ . get_with_query ( url, "per_page=1&sort=semver&include=release_tracks " )
174181 . await
175182 . good ( ) ;
176183 assert_eq ! ( nums( & json. versions) , expects[ 0 ..1 ] ) ;
@@ -192,7 +199,7 @@ async fn test_seek_based_pagination_semver_sorting() {
192199 assert_eq ! ( nums( & json. versions) , expects[ 1 ..] ) ;
193200 assert ! ( json. meta. next_page. is_none( ) ) ;
194201 assert_eq ! ( json. meta. total as usize , expects. len( ) ) ;
195- assert_eq ! ( json. meta. release_tracks, release_tracks ) ;
202+ assert_eq ! ( json. meta. release_tracks, None ) ;
196203
197204 // per_page euqal to the number of remain versions
198205 let json: VersionList = anon
@@ -202,7 +209,7 @@ async fn test_seek_based_pagination_semver_sorting() {
202209 assert_eq ! ( nums( & json. versions) , expects[ 1 ..] ) ;
203210 assert ! ( json. meta. next_page. is_some( ) ) ;
204211 assert_eq ! ( json. meta. total as usize , expects. len( ) ) ;
205- assert_eq ! ( json. meta. release_tracks, release_tracks ) ;
212+ assert_eq ! ( json. meta. release_tracks, None ) ;
206213
207214 // A decodable seek value, MTAwCg (100), but doesn't actually exist
208215 let json: VersionList = anon
@@ -212,7 +219,7 @@ async fn test_seek_based_pagination_semver_sorting() {
212219 assert_eq ! ( json. versions. len( ) , 0 ) ;
213220 assert ! ( json. meta. next_page. is_none( ) ) ;
214221 assert_eq ! ( json. meta. total, 0 ) ;
215- assert_eq ! ( json. meta. release_tracks, release_tracks ) ;
222+ assert_eq ! ( json. meta. release_tracks, None ) ;
216223}
217224
218225#[ tokio:: test( flavor = "multi_thread" ) ]
@@ -249,10 +256,10 @@ async fn test_seek_based_pagination_date_sorting() {
249256 . good ( ) ;
250257 assert_eq ! ( nums( & json. versions) , expects) ;
251258 assert_eq ! ( json. meta. total as usize , expects. len( ) ) ;
252- assert_eq ! ( json. meta. release_tracks, release_tracks ) ;
259+ assert_eq ! ( json. meta. release_tracks, None ) ;
253260
254261 let json: VersionList = anon
255- . get_with_query ( url, "per_page=1&sort=date" )
262+ . get_with_query ( url, "per_page=1&sort=date&include=release_tracks " )
256263 . await
257264 . good ( ) ;
258265 assert_eq ! ( nums( & json. versions) , expects[ 0 ..1 ] ) ;
@@ -274,7 +281,7 @@ async fn test_seek_based_pagination_date_sorting() {
274281 assert_eq ! ( nums( & json. versions) , expects[ 1 ..] ) ;
275282 assert ! ( json. meta. next_page. is_none( ) ) ;
276283 assert_eq ! ( json. meta. total as usize , expects. len( ) ) ;
277- assert_eq ! ( json. meta. release_tracks, release_tracks ) ;
284+ assert_eq ! ( json. meta. release_tracks, None ) ;
278285
279286 // per_page euqal to the number of remain versions
280287 let json: VersionList = anon
@@ -284,7 +291,7 @@ async fn test_seek_based_pagination_date_sorting() {
284291 assert_eq ! ( nums( & json. versions) , expects[ 1 ..] ) ;
285292 assert ! ( json. meta. next_page. is_some( ) ) ;
286293 assert_eq ! ( json. meta. total as usize , expects. len( ) ) ;
287- assert_eq ! ( json. meta. release_tracks, release_tracks ) ;
294+ assert_eq ! ( json. meta. release_tracks, None ) ;
288295
289296 // A decodable seek value, WzE3Mjg1NjE5OTI3MzQ2NzMsNV0K ([1728561992734673,5]), but doesn't actually exist
290297 let json: VersionList = anon
@@ -297,7 +304,7 @@ async fn test_seek_based_pagination_date_sorting() {
297304 assert_eq ! ( json. versions. len( ) , 0 ) ;
298305 assert ! ( json. meta. next_page. is_none( ) ) ;
299306 assert_eq ! ( json. meta. total, 0 ) ;
300- assert_eq ! ( json. meta. release_tracks, release_tracks ) ;
307+ assert_eq ! ( json. meta. release_tracks, None ) ;
301308}
302309
303310#[ tokio:: test( flavor = "multi_thread" ) ]
0 commit comments