diff options
author | David Schneiderbauer <daviian@users.noreply.github.com> | 2017-09-21 09:43:26 +0200 |
---|---|---|
committer | Lauris BH <lauris@nix.lv> | 2017-09-21 10:43:26 +0300 |
commit | 1eedd983ea0f387b6e72264b1cd195a4d3ea1253 (patch) | |
tree | d4bbb070df7df0d6f38e2f20a8baf52598623a6a /models/action_test.go | |
parent | 0d80af649a50c4b9e5e4ba764399872fc92f70f2 (diff) | |
download | gitea-1eedd983ea0f387b6e72264b1cd195a4d3ea1253.tar.gz gitea-1eedd983ea0f387b6e72264b1cd195a4d3ea1253.zip |
Complete push webhooks (#2530)
* implemented missing 'delete' push webhooks
moreover created ActionDeleteBranch and ActionDeleteTag
* add CommitRepoAction tests for tag/branch creation/deletion
* fixed error where push webhook not called if is new branch or tag
removed unnecessary code
* moved prepare unit test environment into separate method to be used across unit tests
* add missing if clause in pushUpdate
Signed-off-by: David Schneiderbauer <dschneiderbauer@gmail.com>
Diffstat (limited to 'models/action_test.go')
-rw-r--r-- | models/action_test.go | 144 |
1 files changed, 103 insertions, 41 deletions
diff --git a/models/action_test.go b/models/action_test.go index cecc83f86b..66400cd50c 100644 --- a/models/action_test.go +++ b/models/action_test.go @@ -5,6 +5,7 @@ import ( "strings" "testing" + "code.gitea.io/git" "code.gitea.io/gitea/modules/setting" "github.com/stretchr/testify/assert" @@ -202,55 +203,116 @@ func TestUpdateIssuesCommit(t *testing.T) { CheckConsistencyFor(t, &Action{}) } -func TestCommitRepoAction(t *testing.T) { - assert.NoError(t, PrepareTestDatabase()) - - user := AssertExistsAndLoadBean(t, &User{ID: 2}).(*User) - repo := AssertExistsAndLoadBean(t, &Repository{ID: 2, OwnerID: user.ID}).(*Repository) - repo.Owner = user +func testCorrectRepoAction(t *testing.T, opts CommitRepoActionOptions, actionBean *Action) { + AssertNotExistsBean(t, actionBean) + assert.NoError(t, CommitRepoAction(opts)) + AssertExistsAndLoadBean(t, actionBean) + CheckConsistencyFor(t, &Action{}) +} - pushCommits := NewPushCommits() - pushCommits.Commits = []*PushCommit{ +func TestCommitRepoAction(t *testing.T) { + samples := []struct { + userID int64 + repositoryID int64 + commitRepoActionOptions CommitRepoActionOptions + action Action + }{ { - Sha1: "abcdef1", - CommitterEmail: "user2@example.com", - CommitterName: "User Two", - AuthorEmail: "user4@example.com", - AuthorName: "User Four", - Message: "message1", + userID: 2, + repositoryID: 2, + commitRepoActionOptions: CommitRepoActionOptions{ + RefFullName: "refName", + OldCommitID: "oldCommitID", + NewCommitID: "newCommitID", + Commits: &PushCommits{ + avatars: make(map[string]string), + Commits: []*PushCommit{ + { + Sha1: "abcdef1", + CommitterEmail: "user2@example.com", + CommitterName: "User Two", + AuthorEmail: "user4@example.com", + AuthorName: "User Four", + Message: "message1", + }, + { + Sha1: "abcdef2", + CommitterEmail: "user2@example.com", + CommitterName: "User Two", + AuthorEmail: "user2@example.com", + AuthorName: "User Two", + Message: "message2", + }, + }, + Len: 2, + }, + }, + action: Action{ + OpType: ActionCommitRepo, + RefName: "refName", + }, }, { - Sha1: "abcdef2", - CommitterEmail: "user2@example.com", - CommitterName: "User Two", - AuthorEmail: "user2@example.com", - AuthorName: "User Two", - Message: "message2", + userID: 2, + repositoryID: 1, + commitRepoActionOptions: CommitRepoActionOptions{ + RefFullName: git.TagPrefix + "v1.1", + OldCommitID: git.EmptySHA, + NewCommitID: "newCommitID", + Commits: &PushCommits{}, + }, + action: Action{ + OpType: ActionPushTag, + RefName: "v1.1", + }, + }, + { + userID: 2, + repositoryID: 1, + commitRepoActionOptions: CommitRepoActionOptions{ + RefFullName: git.TagPrefix + "v1.1", + OldCommitID: "oldCommitID", + NewCommitID: git.EmptySHA, + Commits: &PushCommits{}, + }, + action: Action{ + OpType: ActionDeleteTag, + RefName: "v1.1", + }, + }, + { + userID: 2, + repositoryID: 1, + commitRepoActionOptions: CommitRepoActionOptions{ + RefFullName: git.BranchPrefix + "feature/1", + OldCommitID: "oldCommitID", + NewCommitID: git.EmptySHA, + Commits: &PushCommits{}, + }, + action: Action{ + OpType: ActionDeleteBranch, + RefName: "feature/1", + }, }, } - pushCommits.Len = len(pushCommits.Commits) - actionBean := &Action{ - OpType: ActionCommitRepo, - ActUserID: user.ID, - ActUser: user, - RepoID: repo.ID, - Repo: repo, - RefName: "refName", - IsPrivate: repo.IsPrivate, + for _, s := range samples { + prepareTestEnv(t) + + user := AssertExistsAndLoadBean(t, &User{ID: s.userID}).(*User) + repo := AssertExistsAndLoadBean(t, &Repository{ID: s.repositoryID, OwnerID: user.ID}).(*Repository) + repo.Owner = user + + s.commitRepoActionOptions.PusherName = user.Name + s.commitRepoActionOptions.RepoOwnerID = user.ID + s.commitRepoActionOptions.RepoName = repo.Name + + s.action.ActUserID = user.ID + s.action.RepoID = repo.ID + s.action.IsPrivate = repo.IsPrivate + + testCorrectRepoAction(t, s.commitRepoActionOptions, &s.action) } - AssertNotExistsBean(t, actionBean) - assert.NoError(t, CommitRepoAction(CommitRepoActionOptions{ - PusherName: user.Name, - RepoOwnerID: user.ID, - RepoName: repo.Name, - RefFullName: "refName", - OldCommitID: "oldCommitID", - NewCommitID: "newCommitID", - Commits: pushCommits, - })) - AssertExistsAndLoadBean(t, actionBean) - CheckConsistencyFor(t, &Action{}) } func TestTransferRepoAction(t *testing.T) { |