(t *testing.T)
| 705 | } |
| 706 | |
| 707 | func 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 | |
| 746 | func TestPublishAsyncWithTTL(t *testing.T) { |
| 747 | srv := RunBasicJetStreamServer() |
nothing calls this directly
no test coverage detected