Skip to content

Commit 5b091c7

Browse files
committed
improve
1 parent 75d9631 commit 5b091c7

File tree

1 file changed

+19
-8
lines changed

1 file changed

+19
-8
lines changed

tests/integration/actions_trigger_test.go

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

657666
func 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

Comments
 (0)