package service import ( "context" "testing" ) // ============================================================================= // Settings Service Tests // ============================================================================= func TestSettingsService_GetSettings(t *testing.T) { svc := NewSettingsService() ctx := context.Background() settings, err := svc.GetSettings(ctx) if err != nil { t.Fatalf("GetSettings failed: %v", err) } if settings == nil { t.Fatal("Expected non-nil settings") } if settings.System.Name == "" { t.Error("Expected system name to be set") } if settings.Security.PasswordMinLength <= 0 { t.Error("Expected password min length to be positive") } if len(settings.Features.OAuthProviders) == 0 { t.Error("Expected at least one OAuth provider") } } func TestNewSettingsService(t *testing.T) { svc := NewSettingsService() if svc == nil { t.Error("Expected non-nil service") } } func TestSystemSettings_Fields(t *testing.T) { svc := NewSettingsService() ctx := context.Background() settings, _ := svc.GetSettings(ctx) t.Run("System info fields", func(t *testing.T) { if settings.System.Name == "" { t.Error("Expected System.Name to be set") } if settings.System.Version == "" { t.Error("Expected System.Version to be set") } if settings.System.Environment == "" { t.Error("Expected System.Environment to be set") } if settings.System.Description == "" { t.Error("Expected System.Description to be set") } }) t.Run("Security info fields", func(t *testing.T) { if settings.Security.PasswordMinLength <= 0 { t.Error("Expected Security.PasswordMinLength to be positive") } if settings.Security.PasswordHistory < 0 { t.Error("Expected Security.PasswordHistory to be non-negative") } if settings.Security.LoginFailThreshold <= 0 { t.Error("Expected Security.LoginFailThreshold to be positive") } if settings.Security.LoginFailDuration <= 0 { t.Error("Expected Security.LoginFailDuration to be positive") } if settings.Security.SessionTimeout <= 0 { t.Error("Expected Security.SessionTimeout to be positive") } if settings.Security.DeviceTrustDuration <= 0 { t.Error("Expected Security.DeviceTrustDuration to be positive") } }) t.Run("Features info fields", func(t *testing.T) { // Just verify the fields exist and are accessible _ = settings.Features.EmailVerification _ = settings.Features.PhoneVerification _ = settings.Features.SSOEnabled _ = settings.Features.OperationLogEnabled _ = settings.Features.LoginLogEnabled _ = settings.Features.DataExportEnabled _ = settings.Features.DataImportEnabled }) }