Initial commit on Forgejo
Some checks failed
CI and releases / Test and vet (push) Failing after 1s
CI and releases / Build release binaries (push) Has been skipped
CI and releases / Publish GitHub release (push) Has been skipped

Fresh repository history for elektrine/tarakan-client hosted at
https://git.elektrine.com/elektrine/tarakan-client.
This commit is contained in:
Maxfield Luke 2026-07-29 04:56:36 -04:00
commit 58b29a7f84
70 changed files with 12994 additions and 0 deletions

View file

@ -0,0 +1,102 @@
package app
import (
"strings"
"testing"
"github.com/atomine-elektrine/tarakan-client/internal/api"
repoctx "github.com/atomine-elektrine/tarakan-client/internal/context"
)
func TestCloneRemoteURLTarakanPrefersAPIBase(t *testing.T) {
repo := api.Repository{
Host: "tarakan.lol",
Owner: "max",
Name: "elektrine",
CanonicalURL: "https://tarakan.lol/max/elektrine",
}
got, err := cloneRemoteURL(repo, "http://localhost:4000")
if err != nil {
t.Fatal(err)
}
if got != "http://localhost:4000/max/elektrine.git" {
t.Fatalf("clone URL = %q", got)
}
}
func TestCloneRemoteURLTarakanFallsBackToPublic(t *testing.T) {
repo := api.Repository{
Host: "tarakan.lol",
Owner: "max",
Name: "elektrine",
}
got, err := cloneRemoteURL(repo, "")
if err != nil {
t.Fatal(err)
}
if got != "https://tarakan.lol/max/elektrine.git" {
t.Fatalf("clone URL = %q", got)
}
}
func TestCloneRemoteURLUsesCanonicalURL(t *testing.T) {
repo := api.Repository{
Host: "tarakan.lol",
Owner: "max",
Name: "elektrine",
CanonicalURL: "https://tarakan.lol/max/elektrine",
}
// Empty apiBase falls through to CanonicalURL (with .git).
got, err := cloneRemoteURL(repo, " ")
if err != nil {
t.Fatal(err)
}
if got != "https://tarakan.lol/max/elektrine.git" {
t.Fatalf("clone URL = %q", got)
}
}
func TestCloneRemoteURLGitHub(t *testing.T) {
repo := api.Repository{Host: "github", Owner: "openai", Name: "codex"}
got, err := cloneRemoteURL(repo, "http://localhost:4000")
if err != nil {
t.Fatal(err)
}
if got != "https://github.com/openai/codex.git" {
t.Fatalf("clone URL = %q", got)
}
}
func TestCloneRemoteURLUnsupported(t *testing.T) {
repo := api.Repository{Host: "gitlab.com", Owner: "o", Name: "n"}
_, err := cloneRemoteURL(repo, "")
if err == nil || !strings.Contains(err.Error(), "not supported for auto-clone") {
t.Fatalf("error = %v", err)
}
}
func TestLocalMatchesTaskTarakanAndLoopback(t *testing.T) {
task := api.Task{
Repository: api.Repository{Host: "tarakan.lol", Owner: "max", Name: "elektrine"},
}
local := repoctx.Info{Host: "localhost", Owner: "max", Repo: "elektrine", IsGit: true}
if !localMatchesTask(local, task) {
t.Fatal("localhost clone should match tarakan.lol job")
}
mismatch := repoctx.Info{Host: "github.com", Owner: "max", Repo: "elektrine", IsGit: true}
if localMatchesTask(mismatch, task) {
t.Fatal("github.com should not match tarakan.lol job")
}
}
func TestNormalizeTaskHost(t *testing.T) {
if got := normalizeTaskHost("tarakan"); got != "tarakan.lol" {
t.Fatalf("normalize tarakan = %q", got)
}
if got := normalizeTaskHost("github"); got != "github.com" {
t.Fatalf("normalize github = %q", got)
}
if !isTarakanHost("tarakan.lol") || !isTarakanHost("tarakan") {
t.Fatal("isTarakanHost failed")
}
}