diff --git a/go/catalogue/seats.go b/go/catalogue/seats.go index a22827c..a0f73eb 100644 --- a/go/catalogue/seats.go +++ b/go/catalogue/seats.go @@ -118,7 +118,10 @@ var defaultSeats = append([]Seat{ "assignment-changed", "declared-config-changed", "predefined-changed", // A builder's key not taken in because the artifact store does not hold an artifact it names (novox/hq // issue 1937): the builder builds it again. - "artifacts-gone"}, + "artifacts-gone", + // A bucket of a state this release deleted, deleted at the controller's first start (novox/hq ADR 0539 + // clause 13): the merge window's, the silent sends' and the building plans' hold, each said once. + "bucket-deleted"}, Serves: ControllerVerbs}, // The store's first verbs (novox/hq ADR 0159): the smallest set that makes the store askable, // served by whichever module holds the seat with tools of these names. diff --git a/go/catalogue/verbs_r6_test.go b/go/catalogue/verbs_r6_test.go index 8e595db..ddad237 100644 --- a/go/catalogue/verbs_r6_test.go +++ b/go/catalogue/verbs_r6_test.go @@ -101,3 +101,15 @@ func TestTheDeliverySeatHasNoPlanVerbs(t *testing.T) { t.Errorf("the gate of release 5 cannot hold the seat: %v", err) } } + +// 1943 (for 1945/AC14): the controller's seat says a bucket it deleted at its first start as its event, bucket-deleted +// (ADR 0539 clause 13). +func TestTheControllerSaysABucketItDeleted(t *testing.T) { + seat, ok := SeatNamed(ControllerSeatName) + if !ok { + t.Fatal("no controller seat") + } + if !SeatSays(seat.Emits, "bucket-deleted") { + t.Errorf("the controller's seat does not emit bucket-deleted: %v", seat.Emits) + } +}