package sinks import ( "strings" "testing" "gitea.maximumdirect.net/ejr/feedkit/config" ) func TestNewNATSSinkFromConfigRequiresSubject(t *testing.T) { sink, err := NewNATSSinkFromConfig(config.SinkConfig{ Name: "nats-main", Driver: "nats", Params: map[string]any{ "url": "nats://localhost:4222", "subject": "feedkit.events", }, }) if err != nil { t.Fatalf("NewNATSSinkFromConfig() error = %v", err) } natsSink, ok := sink.(*NATSSink) if !ok { t.Fatalf("sink type = %T, want *NATSSink", sink) } if natsSink.subject != "feedkit.events" { t.Fatalf("subject = %q, want feedkit.events", natsSink.subject) } } func TestNewNATSSinkFromConfigRejectsLegacyExchange(t *testing.T) { _, err := NewNATSSinkFromConfig(config.SinkConfig{ Name: "nats-main", Driver: "nats", Params: map[string]any{ "url": "nats://localhost:4222", "exchange": "feedkit.events", }, }) if err == nil { t.Fatalf("NewNATSSinkFromConfig() expected error") } if !strings.Contains(err.Error(), "params.subject is required") { t.Fatalf("error = %q, want params.subject is required", err) } }