diff options
Diffstat (limited to 'internal/db/repo_test.go')
-rw-r--r-- | internal/db/repo_test.go | 92 |
1 files changed, 39 insertions, 53 deletions
diff --git a/internal/db/repo_test.go b/internal/db/repo_test.go index c239e74d..f689f05d 100644 --- a/internal/db/repo_test.go +++ b/internal/db/repo_test.go @@ -1,63 +1,49 @@ -package db_test +package db import ( "testing" - . "github.com/smartystreets/goconvey/convey" + "github.com/stretchr/testify/assert" - "gogs.io/gogs/internal/db" "gogs.io/gogs/internal/markup" ) -func TestRepo(t *testing.T) { - Convey("The metas map", t, func() { - var repo = new(db.Repository) - repo.Name = "testrepo" - repo.Owner = new(db.User) - repo.Owner.Name = "testuser" - repo.ExternalTrackerFormat = "https://someurl.com/{user}/{repo}/{issue}" - - Convey("When no external tracker is configured", func() { - Convey("It should be nil", func() { - repo.EnableExternalTracker = false - So(repo.ComposeMetas(), ShouldEqual, map[string]string(nil)) - }) - Convey("It should be nil even if other settings are present", func() { - repo.EnableExternalTracker = false - repo.ExternalTrackerFormat = "http://someurl.com/{user}/{repo}/{issue}" - repo.ExternalTrackerStyle = markup.ISSUE_NAME_STYLE_NUMERIC - So(repo.ComposeMetas(), ShouldEqual, map[string]string(nil)) - }) - }) - - Convey("When an external issue tracker is configured", func() { - repo.EnableExternalTracker = true - Convey("It should default to numeric issue style", func() { - metas := repo.ComposeMetas() - So(metas["style"], ShouldEqual, markup.ISSUE_NAME_STYLE_NUMERIC) - }) - Convey("It should pass through numeric issue style setting", func() { - repo.ExternalTrackerStyle = markup.ISSUE_NAME_STYLE_NUMERIC - metas := repo.ComposeMetas() - So(metas["style"], ShouldEqual, markup.ISSUE_NAME_STYLE_NUMERIC) - }) - Convey("It should pass through alphanumeric issue style setting", func() { - repo.ExternalTrackerStyle = markup.ISSUE_NAME_STYLE_ALPHANUMERIC - metas := repo.ComposeMetas() - So(metas["style"], ShouldEqual, markup.ISSUE_NAME_STYLE_ALPHANUMERIC) - }) - Convey("It should contain the user name", func() { - metas := repo.ComposeMetas() - So(metas["user"], ShouldEqual, "testuser") - }) - Convey("It should contain the repo name", func() { - metas := repo.ComposeMetas() - So(metas["repo"], ShouldEqual, "testrepo") - }) - Convey("It should contain the URL format", func() { - metas := repo.ComposeMetas() - So(metas["format"], ShouldEqual, "https://someurl.com/{user}/{repo}/{issue}") - }) - }) +func TestRepository_ComposeMetas(t *testing.T) { + repo := &Repository{ + Name: "testrepo", + Owner: &User{ + Name: "testuser", + }, + ExternalTrackerFormat: "https://someurl.com/{user}/{repo}/{issue}", + } + + t.Run("no external tracker is configured", func(t *testing.T) { + repo.EnableExternalTracker = false + assert.Equal(t, map[string]string(nil), repo.ComposeMetas()) + + // Should be nil even if other settings are present + repo.ExternalTrackerStyle = markup.ISSUE_NAME_STYLE_NUMERIC + assert.Equal(t, map[string]string(nil), repo.ComposeMetas()) + }) + + t.Run("an external issue tracker is configured", func(t *testing.T) { + repo.EnableExternalTracker = true + + // Default to numeric issue style + assert.Equal(t, markup.ISSUE_NAME_STYLE_NUMERIC, repo.ComposeMetas()["style"]) + repo.ExternalMetas = nil + + repo.ExternalTrackerStyle = markup.ISSUE_NAME_STYLE_NUMERIC + assert.Equal(t, markup.ISSUE_NAME_STYLE_NUMERIC, repo.ComposeMetas()["style"]) + repo.ExternalMetas = nil + + repo.ExternalTrackerStyle = markup.ISSUE_NAME_STYLE_ALPHANUMERIC + assert.Equal(t, markup.ISSUE_NAME_STYLE_ALPHANUMERIC, repo.ComposeMetas()["style"]) + repo.ExternalMetas = nil + + metas := repo.ComposeMetas() + assert.Equal(t, "testuser", metas["user"]) + assert.Equal(t, "testrepo", metas["repo"]) + assert.Equal(t, "https://someurl.com/{user}/{repo}/{issue}", metas["format"]) }) } |