perf: expand gateway capacity and prevent receipt replay
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
package protocollog
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/alicebob/miniredis/v2"
|
||||
"github.com/redis/go-redis/v9"
|
||||
)
|
||||
|
||||
func TestNewUsesLocalRedisWhenURLIsEmpty(t *testing.T) {
|
||||
publisher, err := New("")
|
||||
if err != nil {
|
||||
t.Fatalf("New returned error: %v", err)
|
||||
}
|
||||
if publisher == nil || publisher.Redis == nil {
|
||||
t.Fatal("expected an initialized Redis client")
|
||||
}
|
||||
if got := publisher.Redis.Options().Addr; got != "127.0.0.1:6379" {
|
||||
t.Fatalf("expected local Redis fallback, got %q", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFailuresAreNeverSampledOut(t *testing.T) {
|
||||
mr := miniredis.RunT(t)
|
||||
client := redis.NewClient(&redis.Options{Addr: mr.Addr()})
|
||||
p := &Publisher{Redis: client, SuccessSampleRate: 1, MaxLen: 100}
|
||||
if err := p.Publish(context.Background(), Event{Protocol: "cmpp", EventType: "submit", Status: "failed", ResultCode: "TIMEOUT"}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if client.XLen(context.Background(), p.StreamName()).Val() != 1 {
|
||||
t.Fatal("failed protocol event must be retained")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user