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

Function TestJetStreamPublishExpectZero

test/js_test.go:8706–8783  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

8704}
8705
8706func TestJetStreamPublishExpectZero(t *testing.T) {
8707 s := RunBasicJetStreamServer()
8708 defer shutdownJSServerAndRemoveStorage(t, s)
8709
8710 nc, js := jsClient(t, s)
8711 defer nc.Close()
8712
8713 var err error
8714
8715 // Create the stream using our client API.
8716 _, err = js.AddStream(&nats.StreamConfig{
8717 Name: "TEST",
8718 Subjects: []string{"test", "foo", "bar"},
8719 })
8720 if err != nil {
8721 t.Fatalf("Unexpected error: %v", err)
8722 }
8723
8724 sub, err := nc.SubscribeSync("foo")
8725 if err != nil {
8726 t.Errorf("Error: %s", err)
8727 }
8728
8729 // Explicitly set the header to zero.
8730 _, err = js.Publish("foo", []byte("bar"),
8731 nats.ExpectLastSequence(0),
8732 nats.ExpectLastSequencePerSubject(0),
8733 )
8734 if err != nil {
8735 t.Errorf("Error: %v", err)
8736 }
8737
8738 rawMsg, err := js.GetMsg("TEST", 1)
8739 if err != nil {
8740 t.Fatalf("Error: %s", err)
8741 }
8742 hdr, ok := rawMsg.Header["Nats-Expected-Last-Sequence"]
8743 if !ok {
8744 t.Fatal("Missing header")
8745 }
8746 got := hdr[0]
8747 expected := "0"
8748 if got != expected {
8749 t.Fatalf("Expected %v, got: %v", expected, got)
8750 }
8751 hdr, ok = rawMsg.Header["Nats-Expected-Last-Subject-Sequence"]
8752 if !ok {
8753 t.Fatal("Missing header")
8754 }
8755 got = hdr[0]
8756 expected = "0"
8757 if got != expected {
8758 t.Fatalf("Expected %v, got: %v", expected, got)
8759 }
8760
8761 msg, err := sub.NextMsg(1 * time.Second)
8762 if err != nil {
8763 t.Fatalf("Error: %s", err)

Callers

nothing calls this directly

Calls 11

FatalfMethod · 0.80
ErrorfMethod · 0.80
NextMsgMethod · 0.80
RunBasicJetStreamServerFunction · 0.70
jsClientFunction · 0.70
AddStreamMethod · 0.65
SubscribeSyncMethod · 0.65
PublishMethod · 0.65
GetMsgMethod · 0.65
CloseMethod · 0.45

Tested by

no test coverage detected