diff options
Diffstat (limited to 'internal/db')
-rw-r--r-- | internal/db/repo.go | 25 | ||||
-rw-r--r-- | internal/db/repo_test.go | 13 |
2 files changed, 24 insertions, 14 deletions
diff --git a/internal/db/repo.go b/internal/db/repo.go index 2a887c7f..31ea9ac6 100644 --- a/internal/db/repo.go +++ b/internal/db/repo.go @@ -429,24 +429,29 @@ func (repo *Repository) UpdateSize() error { return nil } -// ComposeMetas composes a map of metas for rendering external issue tracker URL. +// ComposeMetas composes a map of metas for rendering SHA1 URL and external issue tracker URL. func (repo *Repository) ComposeMetas() map[string]string { - if !repo.EnableExternalTracker { - return nil - } else if repo.ExternalMetas == nil { - repo.ExternalMetas = map[string]string{ - "format": repo.ExternalTrackerFormat, - "user": repo.MustOwner().Name, - "repo": repo.Name, - } + if repo.ExternalMetas != nil { + return repo.ExternalMetas + } + + repo.ExternalMetas = map[string]string{ + "repoLink": repo.Link(), + } + + if repo.EnableExternalTracker { + repo.ExternalMetas["user"] = repo.MustOwner().Name + repo.ExternalMetas["repo"] = repo.Name + repo.ExternalMetas["format"] = repo.ExternalTrackerFormat + switch repo.ExternalTrackerStyle { case markup.ISSUE_NAME_STYLE_ALPHANUMERIC: repo.ExternalMetas["style"] = markup.ISSUE_NAME_STYLE_ALPHANUMERIC default: repo.ExternalMetas["style"] = markup.ISSUE_NAME_STYLE_NUMERIC } - } + return repo.ExternalMetas } diff --git a/internal/db/repo_test.go b/internal/db/repo_test.go index f689f05d..ad920be7 100644 --- a/internal/db/repo_test.go +++ b/internal/db/repo_test.go @@ -19,14 +19,19 @@ func TestRepository_ComposeMetas(t *testing.T) { 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()) + metas := repo.ComposeMetas() + assert.Equal(t, metas["repoLink"], repo.Link()) + + // Should no format and style if no external tracker is configured + _, ok := metas["format"] + assert.False(t, ok) + _, ok = metas["style"] + assert.False(t, ok) }) t.Run("an external issue tracker is configured", func(t *testing.T) { + repo.ExternalMetas = nil repo.EnableExternalTracker = true // Default to numeric issue style |