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) } } }