38 lines
1.5 KiB
Go
38 lines
1.5 KiB
Go
package link
|
|
|
|
import (
|
|
"encoding/json"
|
|
"strings"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
// The start of a try names no repository and no commit (novox/hq issue 686): the forge's holder writes
|
|
// mesh/merge-gate pending on the open pull request whose head a start names, and nothing on the forge moves
|
|
// for a try. A pull request's check still names both.
|
|
func TestATrysStartNamesNoCommitTheForgeCouldMatch(t *testing.T) {
|
|
sha := strings.Repeat("c0ffee", 7)[:40]
|
|
at := time.Date(2026, 10, 14, 0, 0, 0, 0, time.UTC)
|
|
try := BuildRequest{ID: "build-1", Repository: "https://forge/novox/a.git", Ref: sha,
|
|
Check: &CheckRequest{Owner: "novox", Repo: "a", Try: true}}
|
|
body, _ := json.Marshal(startOf(try, "ace", 1, at))
|
|
if strings.Contains(string(body), sha) || strings.Contains(string(body), "novox/a") {
|
|
t.Fatalf("a try's start names what the forge matches a pull request by: %s", body)
|
|
}
|
|
if s := startOf(try, "ace", 2, at); s.ID != "build-1" || s.On != "ace" || !s.Try || s.Delivery != 2 || s.At == "" {
|
|
t.Fatalf("a try's start lost what the queue reads: %+v", s)
|
|
}
|
|
pull := try
|
|
pull.Check = &CheckRequest{Owner: "novox", Repo: "a", Number: 7}
|
|
if s := startOf(pull, "ace", 1, at); s.Ref != sha || s.Repository == "" || s.Try {
|
|
t.Fatalf("a pull request's check's start: %+v", s)
|
|
}
|
|
}
|
|
|
|
// An id that is a pattern never passes for a build's id.
|
|
func TestAnIdThatIsAPatternIsNoBuildId(t *testing.T) {
|
|
if !SafeBuildID("build-20261014T000000-1a2b") || SafeBuildID("x.>") || SafeBuildID("*") || SafeBuildID("") {
|
|
t.Fatal("an id that is a pattern passes for a build's id")
|
|
}
|
|
}
|