39 lines
1.8 KiB
Go
39 lines
1.8 KiB
Go
package main
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/novox/mesh-controller/internal/builder"
|
|
"github.com/novox/mesh-controller/internal/link"
|
|
)
|
|
|
|
// The build seat hands the check the judge cache the build agent declares (MESH_JUDGE_CACHE), never a path of its own.
|
|
func TestTheBuildSeatHandsTheCheckTheJudgeCacheItDeclares(t *testing.T) {
|
|
t.Setenv("MESH_JUDGE_CACHE", "/var/lib/mesh/build-agent/judge-cache")
|
|
if got := judgeCache(); got != "/var/lib/mesh/build-agent/judge-cache" {
|
|
t.Fatalf("the judge cache the manifest declares is read as %q", got)
|
|
}
|
|
t.Setenv("MESH_JUDGE_CACHE", "")
|
|
if got := judgeCache(); got != "" {
|
|
t.Fatalf("with no judge cache declared, %q is used", got)
|
|
}
|
|
}
|
|
|
|
// The siblings a check is asked to read reach the build seat's spec and, as read, the outcome (novox/hq ADR 0382).
|
|
func TestTheSiblingsAnAskNamesReachTheSpecAndTheOutcome(t *testing.T) {
|
|
spec := checkSpecOf(link.BuildRequest{Check: &link.CheckRequest{Owner: "novox", Repo: "mesh-host", Base: "main",
|
|
Siblings: []link.CheckSibling{{Repository: "novox/mesh-controller", Number: 346, Head: "a", Base: "main", Dir: "mesh-controller"}},
|
|
SiblingsUnknown: "why"}})
|
|
if len(spec.Siblings) != 1 || spec.Siblings[0] != (builder.Sibling{Repository: "novox/mesh-controller", Number: 346,
|
|
Head: "a", Base: "main", Dir: "mesh-controller"}) || spec.SiblingsUnknown != "why" {
|
|
t.Fatalf("the spec reads %+v", spec)
|
|
}
|
|
out := siblingsOut([]builder.JudgedSibling{{Repository: "novox/mesh-controller", Number: 346, Head: "a", Base: "main", BaseCommit: "b"}})
|
|
if len(out) != 1 || out[0].BaseCommit != "b" || out[0].Number != 346 {
|
|
t.Fatalf("the outcome reads %+v", out)
|
|
}
|
|
if plain := checkSpecOf(link.BuildRequest{Check: &link.CheckRequest{Owner: "o", Repo: "r"}}); plain.Siblings != nil {
|
|
t.Fatalf("a request that names none has siblings %+v", plain.Siblings)
|
|
}
|
|
}
|