package main import ( "path/filepath" "strings" "testing" "github.com/novox/mesh-controller/internal/link" ) // **A pull request into a release branch reaches the check as one** (novox/hq ADR 0358): the build seat hands the // check the release branch and, beside it, the trunk each repository is read at when it has no branch of that name; // and it keeps the release branch's judge outside the workspace a check's containers mount. func TestTheBuildSeatHandsTheCheckItsReleaseBranch(t *testing.T) { spec := checkSpecOf(link.BuildRequest{ID: "b", Repository: "r", Ref: "abc", Check: &link.CheckRequest{ Owner: "novox", Repo: "mesh-catalog", Base: "feat/57", Release: "feat/57", Beside: map[string]link.CheckedOut{"mesh-host": {Repository: "h", Ref: "feat/57", Else: "main"}}}}) if spec.Release != "feat/57" || spec.Beside["mesh-host"].Ref != "feat/57" || spec.Beside["mesh-host"].Else != "main" { t.Fatalf("the check was handed release %q and mesh-host %+v", spec.Release, spec.Beside["mesh-host"]) } workspace := filepath.Join(t.TempDir(), "mesh-builder") cache := judgeCacheOf(workspace) if rel, err := filepath.Rel(workspace, cache); err != nil || !strings.HasPrefix(rel, "..") { t.Fatalf("the judge cache %s lies inside the workspace %s, which a check's containers mount", cache, workspace) } }