73 lines
1.8 KiB
Go
73 lines
1.8 KiB
Go
package dbx
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestConfigDefaults(t *testing.T) {
|
|
cfg := Config{}
|
|
cfg.defaults()
|
|
|
|
if cfg.Logger == nil {
|
|
t.Error("Logger should not be nil after defaults")
|
|
}
|
|
if cfg.Retry.MaxAttempts != 3 {
|
|
t.Errorf("MaxAttempts = %d, want 3", cfg.Retry.MaxAttempts)
|
|
}
|
|
if cfg.Retry.BaseDelay != 50*time.Millisecond {
|
|
t.Errorf("BaseDelay = %v, want 50ms", cfg.Retry.BaseDelay)
|
|
}
|
|
if cfg.Retry.MaxDelay != time.Second {
|
|
t.Errorf("MaxDelay = %v, want 1s", cfg.Retry.MaxDelay)
|
|
}
|
|
if cfg.HealthCheck.Interval != 5*time.Second {
|
|
t.Errorf("HealthCheck.Interval = %v, want 5s", cfg.HealthCheck.Interval)
|
|
}
|
|
if cfg.HealthCheck.Timeout != 2*time.Second {
|
|
t.Errorf("HealthCheck.Timeout = %v, want 2s", cfg.HealthCheck.Timeout)
|
|
}
|
|
if cfg.Master.Name != "master" {
|
|
t.Errorf("Master.Name = %q, want %q", cfg.Master.Name, "master")
|
|
}
|
|
}
|
|
|
|
func TestConfigDefaultsReplicaNames(t *testing.T) {
|
|
cfg := Config{
|
|
Replicas: []NodeConfig{
|
|
{DSN: "a"},
|
|
{Name: "custom", DSN: "b"},
|
|
{DSN: "c"},
|
|
},
|
|
}
|
|
cfg.defaults()
|
|
|
|
if cfg.Replicas[0].Name != "replica-1" {
|
|
t.Errorf("Replica[0].Name = %q, want %q", cfg.Replicas[0].Name, "replica-1")
|
|
}
|
|
if cfg.Replicas[1].Name != "custom" {
|
|
t.Errorf("Replica[1].Name = %q, want %q", cfg.Replicas[1].Name, "custom")
|
|
}
|
|
if cfg.Replicas[2].Name != "replica-3" {
|
|
t.Errorf("Replica[2].Name = %q, want %q", cfg.Replicas[2].Name, "replica-3")
|
|
}
|
|
}
|
|
|
|
func TestConfigDefaultsNoOverwrite(t *testing.T) {
|
|
cfg := Config{
|
|
Retry: RetryConfig{
|
|
MaxAttempts: 5,
|
|
BaseDelay: 100 * time.Millisecond,
|
|
MaxDelay: 2 * time.Second,
|
|
},
|
|
}
|
|
cfg.defaults()
|
|
|
|
if cfg.Retry.MaxAttempts != 5 {
|
|
t.Errorf("MaxAttempts = %d, want 5", cfg.Retry.MaxAttempts)
|
|
}
|
|
if cfg.Retry.BaseDelay != 100*time.Millisecond {
|
|
t.Errorf("BaseDelay = %v, want 100ms", cfg.Retry.BaseDelay)
|
|
}
|
|
}
|