mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-03 21:08:25 +00:00 
			
		
		
		
	* Add units concept for modulable functions of a repository * remove unused comment codes & fix lints and tests * remove unused comment codes * use struct config instead of map * fix lint * rm wrong files * fix tests
		
			
				
	
	
		
			71 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package models_test
 | 
						|
 | 
						|
import (
 | 
						|
	"testing"
 | 
						|
 | 
						|
	. "code.gitea.io/gitea/models"
 | 
						|
	"code.gitea.io/gitea/modules/markdown"
 | 
						|
	. "github.com/smartystreets/goconvey/convey"
 | 
						|
)
 | 
						|
 | 
						|
func TestRepo(t *testing.T) {
 | 
						|
	Convey("The metas map", t, func() {
 | 
						|
		var repo = new(Repository)
 | 
						|
		repo.Name = "testrepo"
 | 
						|
		repo.Owner = new(User)
 | 
						|
		repo.Owner.Name = "testuser"
 | 
						|
		externalTracker := RepoUnit{
 | 
						|
			Type: UnitTypeExternalTracker,
 | 
						|
			Config: &ExternalTrackerConfig{
 | 
						|
				ExternalTrackerFormat: "https://someurl.com/{user}/{repo}/{issue}",
 | 
						|
			},
 | 
						|
		}
 | 
						|
		repo.Units = []*RepoUnit{
 | 
						|
			&externalTracker,
 | 
						|
		}
 | 
						|
 | 
						|
		Convey("When no external tracker is configured", func() {
 | 
						|
			Convey("It should be nil", func() {
 | 
						|
				repo.Units = nil
 | 
						|
				So(repo.ComposeMetas(), ShouldEqual, map[string]string(nil))
 | 
						|
			})
 | 
						|
			Convey("It should be nil even if other settings are present", func() {
 | 
						|
				repo.Units = nil
 | 
						|
				So(repo.ComposeMetas(), ShouldEqual, map[string]string(nil))
 | 
						|
			})
 | 
						|
		})
 | 
						|
 | 
						|
		Convey("When an external issue tracker is configured", func() {
 | 
						|
			repo.Units = []*RepoUnit{
 | 
						|
				&externalTracker,
 | 
						|
			}
 | 
						|
			Convey("It should default to numeric issue style", func() {
 | 
						|
				metas := repo.ComposeMetas()
 | 
						|
				So(metas["style"], ShouldEqual, markdown.IssueNameStyleNumeric)
 | 
						|
			})
 | 
						|
			Convey("It should pass through numeric issue style setting", func() {
 | 
						|
				externalTracker.ExternalTrackerConfig().ExternalTrackerStyle = markdown.IssueNameStyleNumeric
 | 
						|
				metas := repo.ComposeMetas()
 | 
						|
				So(metas["style"], ShouldEqual, markdown.IssueNameStyleNumeric)
 | 
						|
			})
 | 
						|
			Convey("It should pass through alphanumeric issue style setting", func() {
 | 
						|
				externalTracker.ExternalTrackerConfig().ExternalTrackerStyle = markdown.IssueNameStyleAlphanumeric
 | 
						|
				metas := repo.ComposeMetas()
 | 
						|
				So(metas["style"], ShouldEqual, markdown.IssueNameStyleAlphanumeric)
 | 
						|
			})
 | 
						|
			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}")
 | 
						|
			})
 | 
						|
		})
 | 
						|
	})
 | 
						|
}
 |