59 lines
2.3 KiB
Go
59 lines
2.3 KiB
Go
package trunk
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestSameRepository(t *testing.T) { // 1281/AC1
|
|
const forge = "novox/mesh-catalog"
|
|
for _, c := range []struct {
|
|
a, b string
|
|
same bool
|
|
}{
|
|
// the clone URL as a build record carries it (mesh-controller.command builds, 2026-10-19 ~21:20 local)
|
|
{forge, "http://novox.internal:20000/novox/mesh-catalog.git", true},
|
|
{forge, "http://novox.internal:20000/novox/mesh-catalog", true},
|
|
{forge, "http://novox.internal:20000/novox/mesh-catalog.git/", true},
|
|
{"http://novox.internal:20000/novox/mesh-catalog.git/", forge, true},
|
|
{forge, "novox/mesh-catalog", true},
|
|
{forge, "Novox/Mesh-Catalog", true},
|
|
{forge, "http://novox.internal:20000/novox/mesh-catalog-x.git", false},
|
|
{forge, "novox/mesh-catalog-x", false},
|
|
{forge, "http://novox.internal:20000/other/mesh-catalog.git", false},
|
|
{forge, "other/mesh-catalog", false},
|
|
{forge, "http://novox.internal:20000/novox/mesh-media-catalog.git", false},
|
|
{forge, "", false},
|
|
{"", "", false},
|
|
} {
|
|
if got := SameRepository(c.a, c.b); got != c.same {
|
|
t.Errorf("SameRepository(%q, %q) = %v, want %v", c.a, c.b, got, c.same)
|
|
}
|
|
}
|
|
if got := RepositoryName("http://novox.internal:20000/novox/mesh-catalog.git"); got != "novox/mesh-catalog" {
|
|
t.Errorf("RepositoryName = %q", got)
|
|
}
|
|
}
|
|
|
|
func TestAnImportSetHoldsMeshPackagesSortedAndEachOnce(t *testing.T) {
|
|
a, b := ForgeModulePrefix+"mesh-sdk/go", ForgeModulePrefix+"mesh-delivery/sdk"
|
|
if err := CheckImports([]string{b, a}); err != nil {
|
|
t.Errorf("a sorted set is refused: %v", err)
|
|
}
|
|
for name, bad := range map[string][]string{"unsorted": {a, b}, "twice": {a, a}, "not a mesh package": {"github.com/x/y"}, "a version": {a + "@v1"}} {
|
|
if CheckImports(bad) == nil {
|
|
t.Errorf("%s: %v is taken", name, bad)
|
|
}
|
|
}
|
|
}
|
|
|
|
// A repository keys the indexer's taken and the view's reach by its forge name, in lower case, from either spelling (ADR 0556).
|
|
func TestARepositoryIsKeyedByItsLowerCaseForgeName(t *testing.T) {
|
|
for in, want := range map[string]string{"novox/Mesh-SDK": "novox/mesh-sdk", "http://h:3000/novox/mesh-sdk.git": "novox/mesh-sdk",
|
|
"a/b.c": "a/b=2ec", "": "", "nope": "", "/x": ""} {
|
|
got, err := RepositoryKey(in)
|
|
if (want == "") != (err != nil) || got != want {
|
|
t.Errorf("RepositoryKey(%q) = %q, %v; want %q", in, got, err, want)
|
|
}
|
|
}
|
|
}
|