aboutsummaryrefslogtreecommitdiffstats
path: root/models/action_test.go
diff options
context:
space:
mode:
authorDavid Schneiderbauer <daviian@users.noreply.github.com>2017-09-21 09:43:26 +0200
committerLauris BH <lauris@nix.lv>2017-09-21 10:43:26 +0300
commit1eedd983ea0f387b6e72264b1cd195a4d3ea1253 (patch)
treed4bbb070df7df0d6f38e2f20a8baf52598623a6a /models/action_test.go
parent0d80af649a50c4b9e5e4ba764399872fc92f70f2 (diff)
downloadgitea-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.go144
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) {