summaryrefslogtreecommitdiffstats
path: root/models/action_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/action_test.go')
-rw-r--r--models/action_test.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/models/action_test.go b/models/action_test.go
index 3f29e1556c..0169179050 100644
--- a/models/action_test.go
+++ b/models/action_test.go
@@ -1,6 +1,7 @@
package models
import (
+ "fmt"
"path"
"strings"
"testing"
@@ -154,6 +155,35 @@ func TestPushCommits_AvatarLink(t *testing.T) {
pushCommits.AvatarLink("nonexistent@example.com"))
}
+func Test_getIssueFromRef(t *testing.T) {
+ assert.NoError(t, PrepareTestDatabase())
+ repo := AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
+ for _, test := range []struct {
+ Ref string
+ ExpectedIssueID int64
+ }{
+ {"#2", 2},
+ {"reopen #2", 2},
+ {"user2/repo2#1", 4},
+ {"fixes user2/repo2#1", 4},
+ } {
+ issue, err := getIssueFromRef(repo, test.Ref)
+ assert.NoError(t, err)
+ if assert.NotNil(t, issue) {
+ assert.EqualValues(t, test.ExpectedIssueID, issue.ID)
+ }
+ }
+
+ for _, badRef := range []string{
+ "doesnotexist/doesnotexist#1",
+ fmt.Sprintf("#%d", NonexistentID),
+ } {
+ issue, err := getIssueFromRef(repo, badRef)
+ assert.NoError(t, err)
+ assert.Nil(t, issue)
+ }
+}
+
func TestUpdateIssuesCommit(t *testing.T) {
assert.NoError(t, PrepareTestDatabase())
pushCommits := []*PushCommit{