Files
Gogs/internal/repox/repox_test.go
ᴊᴏᴇ ᴄʜᴇɴ 36d56d5525 all: rename packages ending with "util" to end with "x" (#8182)
Co-authored-by: JSS <jss@unknwon.dev>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 13:25:19 -05:00

160 lines
3.0 KiB
Go

package repox
import (
"runtime"
"testing"
"github.com/stretchr/testify/assert"
"gogs.io/gogs/internal/conf"
)
func TestNewCloneLink(t *testing.T) {
conf.SetMockApp(t,
conf.AppOpts{
RunUser: "git",
},
)
conf.SetMockServer(t,
conf.ServerOpts{
ExternalURL: "https://example.com/",
},
)
t.Run("regular SSH port", func(t *testing.T) {
conf.SetMockSSH(t,
conf.SSHOpts{
Domain: "example.com",
Port: 22,
},
)
got := NewCloneLink("alice", "example", false)
want := &CloneLink{
SSH: "git@example.com:alice/example.git",
HTTPS: "https://example.com/alice/example.git",
}
assert.Equal(t, want, got)
})
t.Run("irregular SSH port", func(t *testing.T) {
conf.SetMockSSH(t,
conf.SSHOpts{
Domain: "example.com",
Port: 2222,
},
)
got := NewCloneLink("alice", "example", false)
want := &CloneLink{
SSH: "ssh://git@example.com:2222/alice/example.git",
HTTPS: "https://example.com/alice/example.git",
}
assert.Equal(t, want, got)
})
t.Run("wiki", func(t *testing.T) {
conf.SetMockSSH(t,
conf.SSHOpts{
Domain: "example.com",
Port: 22,
},
)
got := NewCloneLink("alice", "example", true)
want := &CloneLink{
SSH: "git@example.com:alice/example.wiki.git",
HTTPS: "https://example.com/alice/example.wiki.git",
}
assert.Equal(t, want, got)
})
}
func TestHTMLURL(t *testing.T) {
conf.SetMockServer(t,
conf.ServerOpts{
ExternalURL: "https://example.com/",
},
)
got := HTMLURL("alice", "example")
want := "https://example.com/alice/example"
assert.Equal(t, want, got)
}
func TestCompareCommitsPath(t *testing.T) {
got := CompareCommitsPath("alice", "example", "old", "new")
want := "alice/example/compare/old...new"
assert.Equal(t, want, got)
}
func TestUserPath(t *testing.T) {
if runtime.GOOS == "windows" {
t.Skip("Skipping testing on Windows")
return
}
conf.SetMockRepository(t,
conf.RepositoryOpts{
Root: "/home/git/gogs-repositories",
},
)
got := UserPath("alice")
want := "/home/git/gogs-repositories/alice"
assert.Equal(t, want, got)
}
func TestRepositoryPath(t *testing.T) {
if runtime.GOOS == "windows" {
t.Skip("Skipping testing on Windows")
return
}
conf.SetMockRepository(t,
conf.RepositoryOpts{
Root: "/home/git/gogs-repositories",
},
)
got := RepositoryPath("alice", "example")
want := "/home/git/gogs-repositories/alice/example.git"
assert.Equal(t, want, got)
}
func TestRepositoryLocalPath(t *testing.T) {
if runtime.GOOS == "windows" {
t.Skip("Skipping testing on Windows")
return
}
conf.SetMockServer(
t,
conf.ServerOpts{
AppDataPath: "data",
},
)
got := RepositoryLocalPath(1)
want := "data/tmp/local-repo/1"
assert.Equal(t, want, got)
}
func TestRepositoryLocalWikiPath(t *testing.T) {
if runtime.GOOS == "windows" {
t.Skip("Skipping testing on Windows")
return
}
conf.SetMockServer(
t,
conf.ServerOpts{
AppDataPath: "data",
},
)
got := RepositoryLocalWikiPath(1)
want := "data/tmp/local-wiki/1"
assert.Equal(t, want, got)
}