repo_test.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package db
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. "gogs.io/gogs/internal/markup"
  6. )
  7. func TestRepository_ComposeMetas(t *testing.T) {
  8. repo := &Repository{
  9. Name: "testrepo",
  10. Owner: &User{
  11. Name: "testuser",
  12. },
  13. ExternalTrackerFormat: "https://someurl.com/{user}/{repo}/{issue}",
  14. }
  15. t.Run("no external tracker is configured", func(t *testing.T) {
  16. repo.EnableExternalTracker = false
  17. assert.Equal(t, map[string]string(nil), repo.ComposeMetas())
  18. // Should be nil even if other settings are present
  19. repo.ExternalTrackerStyle = markup.ISSUE_NAME_STYLE_NUMERIC
  20. assert.Equal(t, map[string]string(nil), repo.ComposeMetas())
  21. })
  22. t.Run("an external issue tracker is configured", func(t *testing.T) {
  23. repo.EnableExternalTracker = true
  24. // Default to numeric issue style
  25. assert.Equal(t, markup.ISSUE_NAME_STYLE_NUMERIC, repo.ComposeMetas()["style"])
  26. repo.ExternalMetas = nil
  27. repo.ExternalTrackerStyle = markup.ISSUE_NAME_STYLE_NUMERIC
  28. assert.Equal(t, markup.ISSUE_NAME_STYLE_NUMERIC, repo.ComposeMetas()["style"])
  29. repo.ExternalMetas = nil
  30. repo.ExternalTrackerStyle = markup.ISSUE_NAME_STYLE_ALPHANUMERIC
  31. assert.Equal(t, markup.ISSUE_NAME_STYLE_ALPHANUMERIC, repo.ComposeMetas()["style"])
  32. repo.ExternalMetas = nil
  33. metas := repo.ComposeMetas()
  34. assert.Equal(t, "testuser", metas["user"])
  35. assert.Equal(t, "testrepo", metas["repo"])
  36. assert.Equal(t, "https://someurl.com/{user}/{repo}/{issue}", metas["format"])
  37. })
  38. }