InstallationProblems judges every value the mesh acts on for a name under a public top-level domain
or a public address, with prose, the world's registries, resolvers and certificate authorities
exempt, and a name a resource means on purpose declared with its reason (names-on-purpose). Run by
module check and a catalogue-wide test, not yet at registration, while the declared list shrinks.
${setting:<key>} fills a file from the assignment's settings and is refused when nothing set it.
A build context may live on the git seat; the request carries the seat's clone base (novox/hq ADR
0112, ADR 0155, issues 122 and 134).
27 lines
1.1 KiB
Go
27 lines
1.1 KiB
Go
package builder
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/novox/mesh-controller/internal/catalogue"
|
|
)
|
|
|
|
// A context on a seat is cloned from the base the mesh sent, joined to the repository's path; a
|
|
// context by URL is itself; a seat the mesh sent no base for is refused by name (novox/hq ADR 0155).
|
|
func TestAContextOnASeatIsClonedFromTheBaseTheMeshSent(t *testing.T) {
|
|
seats := map[string]string{"git": "http://forge.example.tld:3000"}
|
|
got, err := contextURL(catalogue.ArtifactContext{Seat: "git", Repository: "org/controller"}, seats)
|
|
if err != nil || got != "http://forge.example.tld:3000/org/controller.git" {
|
|
t.Fatalf("got %q, %v", got, err)
|
|
}
|
|
got, err = contextURL(catalogue.ArtifactContext{Repository: "https://elsewhere.example/x.git"}, seats)
|
|
if err != nil || got != "https://elsewhere.example/x.git" {
|
|
t.Fatalf("a URL context was changed: %q, %v", got, err)
|
|
}
|
|
_, err = contextURL(catalogue.ArtifactContext{Seat: "git", Repository: "org/controller"}, nil)
|
|
if err == nil || !strings.Contains(err.Error(), "git seat") {
|
|
t.Fatalf("a seat with no base was not refused by name: %v", err)
|
|
}
|
|
}
|