@@ -35,6 +35,7 @@ import (
3535 "code.gitea.io/gitea/modules/test"
3636 "code.gitea.io/gitea/modules/translation"
3737 "code.gitea.io/gitea/services/automerge"
38+ "code.gitea.io/gitea/services/automergequeue"
3839 pull_service "code.gitea.io/gitea/services/pull"
3940 repo_service "code.gitea.io/gitea/services/repository"
4041 commitstatus_service "code.gitea.io/gitea/services/repository/commitstatus"
@@ -727,7 +728,7 @@ func TestPullAutoMergeAfterCommitStatusSucceed(t *testing.T) {
727728
728729 // add protected branch for commit status
729730 csrf := GetUserCSRFToken (t , session )
730- // Change master branch to protected
731+ // Change the " master" branch to " protected"
731732 req := NewRequestWithValues (t , "POST" , "/user2/repo1/settings/branches/edit" , map [string ]string {
732733 "_csrf" : csrf ,
733734 "rule_name" : "master" ,
@@ -737,10 +738,22 @@ func TestPullAutoMergeAfterCommitStatusSucceed(t *testing.T) {
737738 })
738739 session .MakeRequest (t , req , http .StatusSeeOther )
739740
741+ oldAutoMergeAddToQueue := automergequeue .AddToQueue
742+ addToQueueShaChan := make (chan string , 1 )
743+ automergequeue .AddToQueue = func (pr * issues_model.PullRequest , sha string ) {
744+ addToQueueShaChan <- sha
745+ }
740746 // first time insert automerge record, return true
741747 scheduled , err := automerge .ScheduleAutoMerge (db .DefaultContext , user1 , pr , repo_model .MergeStyleMerge , "auto merge test" , false )
742748 assert .NoError (t , err )
743749 assert .True (t , scheduled )
750+ // and the pr should be added to automergequeue, in case it is already "mergeable"
751+ select {
752+ case <- addToQueueShaChan :
753+ case <- time .After (time .Second ):
754+ assert .FailNow (t , "Timeout: nothing was added to automergequeue" )
755+ }
756+ automergequeue .AddToQueue = oldAutoMergeAddToQueue
744757
745758 // second time insert automerge record, return false because it does exist
746759 scheduled , err = automerge .ScheduleAutoMerge (db .DefaultContext , user1 , pr , repo_model .MergeStyleMerge , "auto merge test" , false )
@@ -775,13 +788,11 @@ func TestPullAutoMergeAfterCommitStatusSucceed(t *testing.T) {
775788 })
776789 assert .NoError (t , err )
777790
778- time .Sleep (2 * time .Second )
779-
780- // realod pr again
781- pr = unittest .AssertExistsAndLoadBean (t , & issues_model.PullRequest {ID : pr .ID })
782- assert .True (t , pr .HasMerged )
791+ assert .Eventually (t , func () bool {
792+ pr = unittest .AssertExistsAndLoadBean (t , & issues_model.PullRequest {ID : pr .ID })
793+ return pr .HasMerged
794+ }, 2 * time .Second , 100 * time .Millisecond )
783795 assert .NotEmpty (t , pr .MergedCommitID )
784-
785796 unittest .AssertNotExistsBean (t , & pull_model.AutoMerge {PullID : pr .ID })
786797 })
787798}
0 commit comments