@@ -716,7 +716,8 @@ mod tests {
716
716
use super :: * ;
717
717
use crate :: index:: api:: CrateOwner ;
718
718
use crate :: test:: {
719
- assert_redirect, assert_redirect_unchecked, assert_success, wrapper, TestFrontend ,
719
+ assert_redirect, assert_redirect_unchecked, assert_success, wrapper, FakeBuild ,
720
+ TestFrontend ,
720
721
} ;
721
722
use anyhow:: Error ;
722
723
use chrono:: { Duration , TimeZone } ;
@@ -732,12 +733,36 @@ mod tests {
732
733
wrapper ( |env| {
733
734
let db = env. db ( ) ;
734
735
735
- env . fake_release ( ) . name ( "foo" ) . version ( "1.0.0" ) . create ( ) ? ;
736
+ let now = Utc :: now ( ) ;
736
737
737
- assert ! (
738
- !get_releases( & mut db. conn( ) , 1 , 10 , Order :: ReleaseTime , true , false ) . is_empty( )
738
+ env. fake_release ( )
739
+ . name ( "recent" )
740
+ . version ( "1.0.0" )
741
+ . builds ( vec ! [ FakeBuild :: default ( ) . build_time( now) ] )
742
+ . create ( ) ?;
743
+
744
+ env. fake_release ( )
745
+ . name ( "old" )
746
+ . version ( "1.0.0" )
747
+ . builds ( vec ! [
748
+ FakeBuild :: default ( ) . build_time( now - Duration :: minutes( 21 ) )
749
+ ] )
750
+ . create ( ) ?;
751
+
752
+ assert_eq ! (
753
+ get_releases( & mut db. conn( ) , 1 , 10 , Order :: ReleaseTime , true , false )
754
+ . iter( )
755
+ . map( |r| r. name. clone( ) )
756
+ . collect:: <Vec <_>>( ) ,
757
+ vec![ "recent" , "old" ] ,
758
+ ) ;
759
+ assert_eq ! (
760
+ get_releases( & mut db. conn( ) , 1 , 10 , Order :: ReleaseTime , true , true )
761
+ . iter( )
762
+ . map( |r| r. name. clone( ) )
763
+ . collect:: <Vec <_>>( ) ,
764
+ vec![ "old" ] ,
739
765
) ;
740
- assert ! ( get_releases( & mut db. conn( ) , 1 , 10 , Order :: ReleaseTime , true , true ) . is_empty( ) ) ;
741
766
Ok ( ( ) )
742
767
} )
743
768
}
@@ -1255,25 +1280,44 @@ mod tests {
1255
1280
. version ( "0.1.0" )
1256
1281
. github_stats ( "some/repo" , 33 , 22 , 11 )
1257
1282
. release_time ( Utc . ymd ( 2020 , 4 , 16 ) . and_hms ( 4 , 33 , 50 ) )
1283
+ . builds ( vec ! [
1284
+ FakeBuild :: default ( ) . build_time( Utc . ymd( 2020 , 4 , 16 ) . and_hms( 4 , 33 , 50 ) )
1285
+ ] )
1258
1286
. create ( ) ?;
1259
1287
env. fake_release ( )
1260
1288
. name ( "crate_that_succeeded_with_github" )
1261
1289
. version ( "0.2.0-rc" )
1262
1290
. github_stats ( "some/repo" , 33 , 22 , 11 )
1263
1291
. release_time ( Utc . ymd ( 2020 , 4 , 16 ) . and_hms ( 8 , 33 , 50 ) )
1264
- . build_result_failed ( )
1292
+ . has_docs ( false )
1293
+ . builds ( vec ! [ FakeBuild :: default ( )
1294
+ . build_time( Utc . ymd( 2020 , 4 , 16 ) . and_hms( 8 , 33 , 50 ) )
1295
+ . successful( false ) ] )
1265
1296
. create ( ) ?;
1266
1297
env. fake_release ( )
1267
1298
. name ( "crate_that_succeeded_with_github" )
1268
1299
. github_stats ( "some/repo" , 33 , 22 , 11 )
1269
1300
. release_time ( Utc . ymd ( 2020 , 5 , 16 ) . and_hms ( 4 , 33 , 50 ) )
1301
+ . builds ( vec ! [
1302
+ FakeBuild :: default ( ) . build_time( Utc . ymd( 2020 , 5 , 16 ) . and_hms( 4 , 33 , 50 ) )
1303
+ ] )
1270
1304
. version ( "0.2.0" )
1271
1305
. create ( ) ?;
1272
1306
env. fake_release ( )
1273
1307
. name ( "crate_that_failed" )
1274
1308
. version ( "0.1.0" )
1275
1309
. release_time ( Utc . ymd ( 2020 , 6 , 16 ) . and_hms ( 4 , 33 , 50 ) )
1276
- . build_result_failed ( )
1310
+ . has_docs ( false )
1311
+ . builds ( vec ! [ FakeBuild :: default ( )
1312
+ . build_time( Utc . ymd( 2020 , 6 , 16 ) . and_hms( 4 , 33 , 50 ) )
1313
+ . successful( false ) ] )
1314
+ . create ( ) ?;
1315
+ let now = Utc :: now ( ) ;
1316
+ env. fake_release ( )
1317
+ . name ( "crate_that_was_just_deployed_and_will_not_be_shown" )
1318
+ . version ( "0.1.0" )
1319
+ . release_time ( now)
1320
+ . builds ( vec ! [ FakeBuild :: default ( ) . build_time( now) ] )
1277
1321
. create ( ) ?;
1278
1322
1279
1323
// make sure that crates get at most one release shown, so they don't crowd the homepage
@@ -1289,6 +1333,7 @@ mod tests {
1289
1333
assert_eq ! (
1290
1334
get_release_links( "/releases" , env. frontend( ) ) ?,
1291
1335
[
1336
+ "/crate_that_was_just_deployed_and_will_not_be_shown/0.1.0/crate_that_was_just_deployed_and_will_not_be_shown/" ,
1292
1337
"/crate/crate_that_failed/0.1.0" ,
1293
1338
"/crate_that_succeeded_with_github/0.2.0/crate_that_succeeded_with_github/" ,
1294
1339
"/crate/crate_that_succeeded_with_github/0.2.0-rc" ,
0 commit comments