Skip to content

Commit

Permalink
Fix nats_jetstream input stream without subject
Browse files Browse the repository at this point in the history
  • Loading branch information
maxarndt committed May 10, 2024
1 parent 88c01d1 commit 44f3071
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 2 deletions.
4 changes: 2 additions & 2 deletions internal/impl/nats/input_jetstream.go
Original file line number Diff line number Diff line change
Expand Up @@ -180,8 +180,8 @@ func newJetStreamReaderFromConfig(conf *service.ParsedConfig, mgr *service.Resou
return nil, errors.New("stream or durable is required, when bind is true")
}
} else {
if j.subject == "" {
return nil, errors.New("subject is empty")
if j.subject == "" && j.stream == "" {
return nil, errors.New("subject and stream is empty")
}
}

Expand Down
41 changes: 41 additions & 0 deletions internal/impl/nats/input_jetstream_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,4 +110,45 @@ bind: true
_, err = newJetStreamReaderFromConfig(conf, service.MockResources())
require.NoError(t, err)
})

t.Run("Stream set without subject", func(t *testing.T) {
inputConfig := `
urls: [ url1 ]
stream: foostream
bind: false
`

conf, err := spec.ParseYAML(inputConfig, env)
require.NoError(t, err)

_, err = newJetStreamReaderFromConfig(conf, service.MockResources())
require.NoError(t, err)
})

t.Run("Subject set without stream", func(t *testing.T) {
inputConfig := `
urls: [ url1 ]
subject: testsubject
bind: false
`

conf, err := spec.ParseYAML(inputConfig, env)
require.NoError(t, err)

_, err = newJetStreamReaderFromConfig(conf, service.MockResources())
require.NoError(t, err)
})

t.Run("Stream and subject empty", func(t *testing.T) {
inputConfig := `
urls: [ url1 ]
bind: false
`

conf, err := spec.ParseYAML(inputConfig, env)
require.NoError(t, err)

_, err = newJetStreamReaderFromConfig(conf, service.MockResources())
require.Error(t, err)
})
}

0 comments on commit 44f3071

Please sign in to comment.