Skip to content

Commit

Permalink
Merge pull request #717 from wallyqs/jsm-stream-name
Browse files Browse the repository at this point in the history
jsm: Check that stream name is valid on AddStream // StreamInfo
  • Loading branch information
wallyqs committed Apr 21, 2021
2 parents 2052752 + 66d9b77 commit 2339257
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
8 changes: 8 additions & 0 deletions jsm.go
Expand Up @@ -532,6 +532,10 @@ func (js *js) AddStream(cfg *StreamConfig, opts ...JSOpt) (*StreamInfo, error) {
return nil, ErrStreamNameRequired
}

if strings.Contains(cfg.Name, ".") {
return nil, ErrInvalidStreamName
}

req, err := json.Marshal(cfg)
if err != nil {
return nil, err
Expand All @@ -555,6 +559,10 @@ func (js *js) AddStream(cfg *StreamConfig, opts ...JSOpt) (*StreamInfo, error) {
type streamInfoResponse = streamCreateResponse

func (js *js) StreamInfo(stream string, opts ...JSOpt) (*StreamInfo, error) {
if strings.Contains(stream, ".") {
return nil, ErrInvalidStreamName
}

o, cancel, err := getJSContextOpts(js.opts, opts...)
if err != nil {
return nil, err
Expand Down
14 changes: 14 additions & 0 deletions test/js_test.go
Expand Up @@ -1584,6 +1584,20 @@ func TestJetStreamManagement(t *testing.T) {
}
})

t.Run("create bad stream", func(t *testing.T) {
_, err := js.AddStream(&nats.StreamConfig{Name: "foo.invalid"})
if err != nats.ErrInvalidStreamName {
t.Fatalf("Unexpected error: %v", err)
}
})

t.Run("bad stream info", func(t *testing.T) {
_, err := js.StreamInfo("foo.invalid")
if err != nats.ErrInvalidStreamName {
t.Fatalf("Unexpected error: %v", err)
}
})

t.Run("stream update", func(t *testing.T) {
if _, err := js.UpdateStream(nil); err == nil {
t.Fatal("Unexpected success")
Expand Down

0 comments on commit 2339257

Please sign in to comment.