23 lines
1003 B
Go
23 lines
1003 B
Go
package main
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/novox/mesh-host/internal/selfcompose"
|
|
)
|
|
|
|
// ADR 0636 §1: when the node's reader of the seat list could not start, the composer is gated by a reader that never
|
|
// allows, where a missing reader would let the node act on everything; the shadow, which applies nothing, stays ungated.
|
|
func TestAReaderThatCouldNotStartHoldsTheComposer(t *testing.T) {
|
|
failed := composerEnv(nil, "n1", func(string) {}, composerHooks{seatListFailed: true})
|
|
if failed.SeatList == nil || failed.SeatList.MayAct() || failed.SeatList.MayAct("node-engine") {
|
|
t.Fatalf("the composer of a node whose reader did not start is gated by %v, want a gate that allows nothing", failed.SeatList)
|
|
}
|
|
if _, ok := failed.SeatList.(selfcompose.Unread); !ok {
|
|
t.Errorf("gate is %T", failed.SeatList)
|
|
}
|
|
if got := composerEnv(nil, "n1", func(string) {}, composerHooks{}).SeatList; got != nil {
|
|
t.Errorf("a composer with no reader asked for gates by %v, want none (the shadow)", got)
|
|
}
|
|
}
|