outbox for gateways
This commit is contained in:
62
api/pkg/messaging/reliable/settings_test.go
Normal file
62
api/pkg/messaging/reliable/settings_test.go
Normal file
@@ -0,0 +1,62 @@
|
||||
package reliable
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"github.com/tech/sendico/pkg/model"
|
||||
)
|
||||
|
||||
func TestParseSettingsDefaultsWhenBlockMissing(t *testing.T) {
|
||||
got, err := ParseSettings(model.SettingsT{
|
||||
"url_env": "NATS_URL",
|
||||
})
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, DefaultSettings(), got)
|
||||
}
|
||||
|
||||
func TestParseSettingsOverrides(t *testing.T) {
|
||||
got, err := ParseSettings(model.SettingsT{
|
||||
SettingsBlockKey: map[string]any{
|
||||
"enabled": true,
|
||||
"batch_size": 250,
|
||||
"poll_interval_seconds": 3,
|
||||
"max_attempts": 7,
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.True(t, got.Enabled)
|
||||
assert.Equal(t, 250, got.BatchSize)
|
||||
assert.Equal(t, 3, got.PollIntervalSeconds)
|
||||
assert.Equal(t, 7, got.MaxAttempts)
|
||||
}
|
||||
|
||||
func TestParseSettingsAppliesDefaultsForInvalidNumbers(t *testing.T) {
|
||||
got, err := ParseSettings(model.SettingsT{
|
||||
SettingsBlockKey: map[string]any{
|
||||
"enabled": true,
|
||||
"batch_size": 0,
|
||||
"poll_interval_seconds": -1,
|
||||
"max_attempts": 0,
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.True(t, got.Enabled)
|
||||
assert.Equal(t, defaultBatchSize, got.BatchSize)
|
||||
assert.Equal(t, int(defaultPollInterval.Seconds()), got.PollIntervalSeconds)
|
||||
assert.Equal(t, defaultMaxAttempts, got.MaxAttempts)
|
||||
}
|
||||
|
||||
func TestParseSettingsCanDisableReliablePublisher(t *testing.T) {
|
||||
got, err := ParseSettings(model.SettingsT{
|
||||
SettingsBlockKey: map[string]any{
|
||||
"enabled": false,
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
assert.False(t, got.Enabled)
|
||||
}
|
||||
Reference in New Issue
Block a user