mirror of
https://github.com/hanzo-fi/payments.git
synced 2026-10-30 20:31:20 +00:00
* Manage configuration of polling period in connectors manager and enable override via env variables * Treat connector validation errors as http 4xx * Perform strict config validation only if connector being loaded for install or update * Add flags to configure notification outbox schedules * Only configure outbox schedule creation in worker * Improve manager config validation test coverage
50 lines
1.4 KiB
Go
50 lines
1.4 KiB
Go
package connectors_test
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/formancehq/payments/internal/connectors"
|
|
"github.com/formancehq/payments/internal/models"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestNewConfigurer(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
defaultPeriod := 13 * time.Minute
|
|
minimumPeriod := 5 * time.Minute
|
|
|
|
configurer, err := connectors.NewConfigurer(defaultPeriod, minimumPeriod)
|
|
require.NoError(t, err)
|
|
assert.Equal(t, defaultPeriod, configurer.DefaultConfig().PollingPeriod)
|
|
|
|
_, err = connectors.NewConfigurer(minimumPeriod-time.Second, minimumPeriod)
|
|
require.Error(t, err)
|
|
}
|
|
|
|
func TestValidateConfig(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
defaultPeriod := 13 * time.Minute
|
|
minimumPeriod := 5 * time.Minute
|
|
|
|
configurer, err := connectors.NewConfigurer(defaultPeriod, minimumPeriod)
|
|
require.NoError(t, err)
|
|
|
|
validConfig := models.Config{Name: "name", PollingPeriod: 7 * time.Minute}
|
|
err = configurer.Validate(validConfig)
|
|
assert.NoError(t, err)
|
|
|
|
invalidConfig := models.Config{Name: "name2", PollingPeriod: 3 * time.Minute}
|
|
err = configurer.Validate(invalidConfig)
|
|
assert.Error(t, err)
|
|
assert.ErrorIs(t, err, connectors.ErrPollingPeriod)
|
|
|
|
invalidConfig = models.Config{Name: "n", PollingPeriod: 10 * time.Minute}
|
|
err = configurer.Validate(invalidConfig)
|
|
assert.Error(t, err)
|
|
assert.ErrorIs(t, err, models.ErrInvalidConfig)
|
|
}
|