@@ -620,9 +620,18 @@ func TestPullRequestCommitStatusEvent(t *testing.T) {
620620 assert .NoError (t , err )
621621 assert .NotEmpty (t , addFileResp )
622622 sha = addFileResp .Commit .SHA
623- // wait for the commit finished
624- time .Sleep (500 * time .Millisecond )
625- checkCommitStatusAndInsertFakeStatus (t , repo , sha )
623+ assert .Eventually (t , func () bool {
624+ latestCommitStatuses , _ , err := git_model .GetLatestCommitStatus (db .DefaultContext , repo .ID , sha , db .ListOptionsAll )
625+ assert .NoError (t , err )
626+ if len (latestCommitStatuses ) == 0 {
627+ return false
628+ }
629+ if latestCommitStatuses [0 ].State == api .CommitStatusPending {
630+ insertFakeStatus (t , repo , sha , latestCommitStatuses [0 ].TargetURL , latestCommitStatuses [0 ].Context )
631+ return true
632+ }
633+ return false
634+ }, 1 * time .Second , 100 * time .Millisecond )
626635
627636 // milestoned
628637 milestone := & issues_model.Milestone {
@@ -655,17 +664,19 @@ func TestPullRequestCommitStatusEvent(t *testing.T) {
655664}
656665
657666func checkCommitStatusAndInsertFakeStatus (t * testing.T , repo * repo_model.Repository , sha string ) {
658- // check current commit status
659667 latestCommitStatuses , _ , err := git_model .GetLatestCommitStatus (db .DefaultContext , repo .ID , sha , db .ListOptionsAll )
660668 assert .NoError (t , err )
661669 assert .Len (t , latestCommitStatuses , 1 )
662670 assert .Equal (t , api .CommitStatusPending , latestCommitStatuses [0 ].State )
663671
664- // insert fake commit status
665- err = commitstatus_service .CreateCommitStatus (db .DefaultContext , repo , user_model .NewActionsUser (), sha , & git_model.CommitStatus {
672+ insertFakeStatus (t , repo , sha , latestCommitStatuses [0 ].TargetURL , latestCommitStatuses [0 ].Context )
673+ }
674+
675+ func insertFakeStatus (t * testing.T , repo * repo_model.Repository , sha , targetURL , context string ) {
676+ err := commitstatus_service .CreateCommitStatus (db .DefaultContext , repo , user_model .NewActionsUser (), sha , & git_model.CommitStatus {
666677 State : api .CommitStatusSuccess ,
667- TargetURL : latestCommitStatuses [ 0 ]. TargetURL ,
668- Context : latestCommitStatuses [ 0 ]. Context ,
678+ TargetURL : targetURL ,
679+ Context : context ,
669680 })
670681 assert .NoError (t , err )
671682}
0 commit comments