fiber/addon/retry/config_test.go
2025-07-21 13:14:01 +02:00

70 lines
1.7 KiB
Go

package retry
import (
"testing"
"time"
"github.com/stretchr/testify/require"
)
func TestConfigDefault_NoConfig(t *testing.T) {
t.Parallel()
cfg := configDefault()
require.Equal(t, DefaultConfig, cfg)
}
func TestConfigDefault_Custom(t *testing.T) {
t.Parallel()
custom := Config{
InitialInterval: 2 * time.Second,
MaxBackoffTime: 64 * time.Second,
Multiplier: 3.0,
MaxRetryCount: 5,
currentInterval: 2 * time.Second,
}
cfg := configDefault(custom)
require.Equal(t, custom, cfg)
}
func TestConfigDefault_PartialAndNegative(t *testing.T) {
t.Parallel()
cfg := configDefault(Config{Multiplier: -1, MaxRetryCount: 0})
require.Equal(t, DefaultConfig, cfg)
}
func TestConfigDefault_CustomInitialInterval(t *testing.T) {
t.Parallel()
cfg := configDefault(Config{InitialInterval: 5 * time.Second})
require.Equal(t, 5*time.Second, cfg.currentInterval)
require.Equal(t, 5*time.Second, cfg.InitialInterval)
}
func TestConfigDefault_CustomCurrentInterval(t *testing.T) {
t.Parallel()
cfg := configDefault(Config{currentInterval: 3 * time.Second})
require.Equal(t, 3*time.Second, cfg.currentInterval)
require.Equal(t, DefaultConfig.InitialInterval, cfg.InitialInterval)
}
func TestConfigDefault_CurrentIntervalAndInitialDiffer(t *testing.T) {
t.Parallel()
cfg := configDefault(Config{InitialInterval: 5 * time.Second, currentInterval: 3 * time.Second})
require.Equal(t, 5*time.Second, cfg.InitialInterval)
require.Equal(t, 3*time.Second, cfg.currentInterval)
}
func TestNewExponentialBackoff_Config(t *testing.T) {
t.Parallel()
backoff := NewExponentialBackoff(Config{InitialInterval: 4 * time.Second})
require.Equal(t, 4*time.Second, backoff.InitialInterval)
require.Equal(t, 4*time.Second, backoff.currentInterval)
}