48 lines
1.1 KiB
Go
48 lines
1.1 KiB
Go
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)
|
|
}
|
|
}
|