35 lines
1.3 KiB
Go
35 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/novox/mesh-controller/internal/link"
|
|
)
|
|
|
|
// A build's outcome is taken in the same way whoever hears it (novox/hq issue 176): recorded, and
|
|
// the module registered with its source as the seat and path when the request said so — never the
|
|
// URL. A definition naming an installation is recorded and not registered; a failure is recorded
|
|
// and said.
|
|
|
|
// novox/hq 04-ISSUES/215: a build asked at a commit is recorded as built from that commit, and the
|
|
// module keeps following the branch it followed — a new one, the default branch.
|
|
|
|
// novox/hq 04-ISSUES/219: an older request heard after a newer one is recorded and not registered,
|
|
// so a push sends what the newer request built.
|
|
|
|
func TestABuildIDSaysWhenItWasAsked(t *testing.T) {
|
|
at := time.Date(2026, 10, 3, 21, 51, 57, 392539762, time.UTC)
|
|
if got, ok := link.BuildAskedAt(link.NewBuildID(at)); !ok || !got.Equal(at) {
|
|
t.Errorf("read back %v %v; want %v", got, ok, at)
|
|
}
|
|
if got, ok := link.BuildAskedAt("build-1791064317392539762"); !ok || got.Format(time.TimeOnly) != "21:51:57" {
|
|
t.Errorf("the incident's id reads as %v %v", got, ok)
|
|
}
|
|
for _, id := range []string{"b-1", "build-2", "build-", "build-x", ""} {
|
|
if _, ok := link.BuildAskedAt(id); ok {
|
|
t.Errorf("%q read as a request time", id)
|
|
}
|
|
}
|
|
}
|