MCPcopy
hub / github.com/nats-io/nats.go / TestMsgDeleteMarkerMaxAge

Function TestMsgDeleteMarkerMaxAge

jetstream/test/publish_test.go:707–744  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

705}
706
707func TestMsgDeleteMarkerMaxAge(t *testing.T) {
708 srv := RunBasicJetStreamServer()
709 defer shutdownJSServerAndRemoveStorage(t, srv)
710 nc, err := nats.Connect(srv.ClientURL())
711 if err != nil {
712 t.Fatalf("Unexpected error: %v", err)
713 }
714
715 js, err := jetstream.New(nc)
716 if err != nil {
717 t.Fatalf("Unexpected error: %v", err)
718 }
719 defer nc.Close()
720
721 ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
722 defer cancel()
723 stream, err := js.CreateStream(ctx, jetstream.StreamConfig{
724 Name: "foo", Subjects: []string{"FOO.*"}, AllowMsgTTL: true, SubjectDeleteMarkerTTL: 50 * time.Second, MaxAge: 1 * time.Second})
725 if err != nil {
726 t.Fatalf("Unexpected error: %v", err)
727 }
728
729 _, err = js.Publish(ctx, "FOO.1", []byte("msg1"))
730 if err != nil {
731 t.Fatalf("Unexpected error: %v", err)
732 }
733 time.Sleep(1500 * time.Millisecond)
734 gotMsg, err := stream.GetLastMsgForSubject(ctx, "FOO.1")
735 if err != nil {
736 t.Fatalf("Unexpected error: %v", err)
737 }
738 if ttlMarker := gotMsg.Header.Get("Nats-Marker-Reason"); ttlMarker != "MaxAge" {
739 t.Fatalf("Expected message to have Marker-Reason header set to MaxAge; got: %s", ttlMarker)
740 }
741 if ttl := gotMsg.Header.Get("Nats-TTL"); ttl != "50s" {
742 t.Fatalf("Expected message to have Nats-TTL header set to 50s; got: %s", ttl)
743 }
744}
745
746func TestPublishAsyncWithTTL(t *testing.T) {
747 srv := RunBasicJetStreamServer()

Callers

nothing calls this directly

Calls 10

NewFunction · 0.92
ConnectMethod · 0.80
FatalfMethod · 0.80
RunBasicJetStreamServerFunction · 0.70
CreateStreamMethod · 0.65
PublishMethod · 0.65
GetLastMsgForSubjectMethod · 0.65
GetMethod · 0.65
CloseMethod · 0.45

Tested by

no test coverage detected