Files
mesh-catalog/modules/zfs/cmd/zfs-tools/publish_event_test.go
T

31 lines
923 B
Go

package main
import (
"context"
"testing"
"github.com/nats-io/nats.go"
"github.com/nats-io/nats.go/jetstream"
"git.novox.be/novox/mesh-sdk/go/process"
)
type recordingPublisher struct{ msgs []*nats.Msg }
func (r *recordingPublisher) PublishMsg(_ context.Context, m *nats.Msg, _ ...jetstream.PublishOpt) (*jetstream.PubAck, error) {
r.msgs = append(r.msgs, m)
return &jetstream.PubAck{}, nil
}
// A-41, review finding 1: the keeper publishes on the subject the module's events stream captures.
func TestTheKeeperPublishesOnTheEventsStreamsSubject(t *testing.T) {
p := &recordingPublisher{}
acct := process.Account{Node: "n1", Module: "zfs"}
if err := publishEvent(p, acct, EventApplied, map[string]string{"key": "x"}); err != nil {
t.Fatal(err)
}
if len(p.msgs) != 1 || p.msgs[0].Subject != "mesh.bus.zfs.events."+EventApplied || p.msgs[0].Header.Get("x-event-id") == "" {
t.Errorf("%+v", p.msgs)
}
}