package runtime import ( "testing" "git.novox.be/novox/mesh-sdk/go/seatdef" ) // Design 47 G A-249: a bundle's seat call is received by the runner in chunks only for a verb whose definition says `chunks`, // of any machine: a verb a node holds is asked of the node that ran the ask (A-254). func TestOnlyAChunkedSeatVerbIsAskedInChunks(t *testing.T) { c := &consumers{definitions: func() map[string]seatdef.Definition { return map[string]seatdef.Definition{"mesh-catalog": {Verbs: []seatdef.Verb{{Name: "input", Chunks: true}, {Name: "entry"}}}} }} for key, want := range map[string]bool{ "seat:mesh-catalog.input": true, "seat:mesh-catalog.entry": false, "seat:mesh-catalog.input@ace": true, "seat:mesh-catalog.entry@ace": false, "seat:mesh-unread.input": false, "mesh-delivery-indexer.indexer": false, } { if got := c.chunked(key); got != want { t.Errorf("chunked(%s) = %v, want %v", key, got, want) } } if (&consumers{}).chunked("seat:mesh-catalog.input") { t.Error("a runner that holds no seat definitions asks no chunks") } }