@@ -579,4 +579,68 @@ mod tests {
579
579
} )
580
580
. await ;
581
581
}
582
+
583
+ #[ tokio:: test]
584
+ async fn adding_try_commit_to_completed_request ( ) {
585
+ run_postgres_test ( |ctx| async {
586
+ let db = ctx. db_client ( ) ;
587
+ let db = db. connection ( ) . await ;
588
+ let time = chrono:: DateTime :: from_str ( "2021-09-01T00:00:00.000Z" ) . unwrap ( ) ;
589
+ let pr = 42 ;
590
+
591
+ let completed_try = BenchmarkRequest :: create_try (
592
+ Some ( "sha-2" ) ,
593
+ Some ( "p-sha-1" ) ,
594
+ pr,
595
+ time,
596
+ BenchmarkRequestStatus :: Completed ,
597
+ "cranelift" ,
598
+ "" ,
599
+ ) ;
600
+ db. insert_benchmark_request ( & completed_try) . await ;
601
+
602
+ let try_benchmark_request = BenchmarkRequest :: create_try (
603
+ None ,
604
+ None ,
605
+ pr,
606
+ time,
607
+ BenchmarkRequestStatus :: WaitingForArtifacts ,
608
+ "cranelift" ,
609
+ "" ,
610
+ ) ;
611
+ // deliberately insert twice
612
+ db. insert_benchmark_request ( & try_benchmark_request) . await ;
613
+ // this one should fail
614
+ db. insert_benchmark_request ( & try_benchmark_request) . await ;
615
+ db. attach_shas_to_try_benchmark_request ( pr, "foo" , "bar" )
616
+ . await
617
+ . unwrap ( ) ;
618
+
619
+ let requests = db
620
+ . get_benchmark_requests_by_status ( & [
621
+ BenchmarkRequestStatus :: WaitingForArtifacts ,
622
+ BenchmarkRequestStatus :: ArtifactsReady ,
623
+ BenchmarkRequestStatus :: InProgress ,
624
+ BenchmarkRequestStatus :: Completed ,
625
+ ] )
626
+ . await
627
+ . unwrap ( ) ;
628
+
629
+ assert_eq ! ( requests. len( ) , 2 ) ;
630
+ let completed_try = requests
631
+ . iter ( )
632
+ . find ( |req| req. status == BenchmarkRequestStatus :: Completed ) ;
633
+ assert ! ( completed_try. is_some( ) ) ;
634
+ assert_eq ! ( completed_try. unwrap( ) . pr( ) , Some ( & pr) ) ;
635
+
636
+ let artifacts_ready_try = requests
637
+ . iter ( )
638
+ . find ( |req| req. status == BenchmarkRequestStatus :: ArtifactsReady ) ;
639
+ assert ! ( artifacts_ready_try. is_some( ) ) ;
640
+ assert_eq ! ( artifacts_ready_try. unwrap( ) . pr( ) , Some ( & pr) ) ;
641
+
642
+ Ok ( ctx)
643
+ } )
644
+ . await ;
645
+ }
582
646
}
0 commit comments