@@ -755,7 +755,7 @@ pub fn build_queue_handler(req: &mut Request) -> IronResult<Response> {
755
755
mod tests {
756
756
use super :: * ;
757
757
use crate :: test:: { assert_redirect, assert_success, wrapper, TestFrontend } ;
758
- use chrono:: TimeZone ;
758
+ use chrono:: { Duration , TimeZone } ;
759
759
use failure:: Error ;
760
760
use kuchiki:: traits:: TendrilSink ;
761
761
use std:: collections:: HashSet ;
@@ -1344,7 +1344,44 @@ mod tests {
1344
1344
fn release_activity ( ) {
1345
1345
wrapper ( |env| {
1346
1346
let web = env. frontend ( ) ;
1347
- assert_success ( "/releases/activity" , web) ?;
1347
+
1348
+ let empty_data = format ! ( "data: [{}]" , vec![ "0" ; 30 ] . join( "," ) ) ;
1349
+
1350
+ // no data / only zeros without releases
1351
+ let response = web. get ( "/releases/activity/" ) . send ( ) ?;
1352
+ assert ! ( response. status( ) . is_success( ) ) ;
1353
+ assert_eq ! ( response. text( ) . unwrap( ) . matches( & empty_data) . count( ) , 2 ) ;
1354
+
1355
+ env. fake_release ( ) . name ( "some_random_crate" ) . create ( ) ?;
1356
+ env. fake_release ( )
1357
+ . name ( "some_random_crate_that_failed" )
1358
+ . build_result_failed ( )
1359
+ . create ( ) ?;
1360
+
1361
+ // same when the release is on the current day, since we ignore today.
1362
+ let response = web. get ( "/releases/activity/" ) . send ( ) ?;
1363
+ assert ! ( response. status( ) . is_success( ) ) ;
1364
+ assert_eq ! ( response. text( ) . unwrap( ) . matches( & empty_data) . count( ) , 2 ) ;
1365
+
1366
+ env. fake_release ( )
1367
+ . name ( "some_random_crate_yesterday" )
1368
+ . release_time ( Utc :: now ( ) - Duration :: days ( 1 ) )
1369
+ . create ( ) ?;
1370
+ env. fake_release ( )
1371
+ . name ( "some_random_crate_that_failed_yesterday" )
1372
+ . build_result_failed ( )
1373
+ . release_time ( Utc :: now ( ) - Duration :: days ( 1 ) )
1374
+ . create ( ) ?;
1375
+
1376
+ // with releases yesterday we get the data we want
1377
+ let response = web. get ( "/releases/activity/" ) . send ( ) ?;
1378
+ assert ! ( response. status( ) . is_success( ) ) ;
1379
+ let text = response. text ( ) . unwrap ( ) ;
1380
+ // counts contain both releases
1381
+ assert ! ( text. contains( & format!( "data: [{},2]" , vec![ "0" ; 29 ] . join( "," ) ) ) ) ;
1382
+ // failures only one
1383
+ assert ! ( text. contains( & format!( "data: [{},1]" , vec![ "0" ; 29 ] . join( "," ) ) ) ) ;
1384
+
1348
1385
Ok ( ( ) )
1349
1386
} )
1350
1387
}
0 commit comments