@@ -579,4 +579,68 @@ mod tests {
579579 } )
580580 . await ;
581581 }
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+ }
582646}
0 commit comments