Merge pull request 'Test that times is optional on the delivery seat (hq issue 382)' (#207) from test/382-times-optional into main
This commit was merged in pull request #207.
This commit is contained in:
@@ -97,3 +97,39 @@ func TestTheDeliverySeatPromisesRetireHistoryOptionally(t *testing.T) {
|
|||||||
t.Fatalf("a holder serving retire-history: %v", err)
|
t.Fatalf("a holder serving retire-history: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The seat says delivery times (novox/hq ADR 0282, issue 382): `times`, over some days or for one delivery. Added
|
||||||
|
// after the holder shipped, it is optional, so the holder that does not serve it yet still holds the seat, and one
|
||||||
|
// that does is not refused for a verb the seat lacks.
|
||||||
|
func TestTheDeliverySeatPromisesTimesOptionally(t *testing.T) {
|
||||||
|
seat, _ := SeatNamed(DeliverySeat)
|
||||||
|
var times *Verb
|
||||||
|
for i := range seat.Serves {
|
||||||
|
if seat.Serves[i].Name == "times" {
|
||||||
|
times = &seat.Serves[i]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if times == nil || !times.Optional {
|
||||||
|
t.Fatalf("the delivery seat promises %v, times optionally", VerbNames(seat.Serves))
|
||||||
|
}
|
||||||
|
props, _ := times.Input["properties"].(map[string]any)
|
||||||
|
for _, arg := range []string{"days", "id"} {
|
||||||
|
if _, has := props[arg]; !has {
|
||||||
|
t.Errorf("times takes no %q", arg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var without []string
|
||||||
|
for _, v := range VerbNames(seat.Serves) {
|
||||||
|
if v != "times" {
|
||||||
|
without = append(without, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m := Manifest{Module: "mesh-delivery", Claims: []Claim{{Name: DeliverySeat, Scope: ScopeMesh, Serves: without}}}
|
||||||
|
if err := CanHold(m, seat); err != nil {
|
||||||
|
t.Fatalf("a holder without times yet: %v", err)
|
||||||
|
}
|
||||||
|
m.Claims[0].Serves = VerbNames(seat.Serves)
|
||||||
|
if err := CanHold(m, seat); err != nil {
|
||||||
|
t.Fatalf("a holder serving times: %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user