diff --git a/admin_setting_smtp.go b/admin_setting_smtp.go index 5afc98d72..679fc0c99 100644 --- a/admin_setting_smtp.go +++ b/admin_setting_smtp.go @@ -97,9 +97,12 @@ func (a *adminSMTPSettings) Update(ctx context.Context, options AdminSMTPSetting } func (o AdminSMTPSettingsUpdateOptions) valid() error { - _, isValidType := validSMTPAuthType[*o.Auth] - if !isValidType { - return ErrInvalidSMTPAuth + if validString((*string)(o.Auth)) { + _, isValidType := validSMTPAuthType[*o.Auth] + if !isValidType { + return ErrInvalidSMTPAuth + } } + return nil } diff --git a/admin_setting_smtp_integration_test.go b/admin_setting_smtp_integration_test.go index 1c337b6f1..1cbba14b3 100644 --- a/admin_setting_smtp_integration_test.go +++ b/admin_setting_smtp_integration_test.go @@ -36,11 +36,23 @@ func TestAdminSettings_SMTP_Update(t *testing.T) { ctx := context.Background() enabled := false - smtpSettings, err := client.Admin.Settings.SMTP.Update(ctx, AdminSMTPSettingsUpdateOptions{ - Enabled: Bool(enabled), - Auth: SMTPAuthValue(SMTPAuthNone), - }) - require.NoError(t, err) - assert.Equal(t, enabled, smtpSettings.Enabled) + t.Run("with Auth option defined", func(t *testing.T) { + smtpSettings, err := client.Admin.Settings.SMTP.Update(ctx, AdminSMTPSettingsUpdateOptions{ + Enabled: Bool(enabled), + Auth: SMTPAuthValue(SMTPAuthNone), + }) + + require.NoError(t, err) + assert.Equal(t, enabled, smtpSettings.Enabled) + }) + t.Run("with no Auth option", func(t *testing.T) { + smtpSettings, err := client.Admin.Settings.SMTP.Update(ctx, AdminSMTPSettingsUpdateOptions{ + Enabled: Bool(enabled), + }) + + require.NoError(t, err) + assert.Equal(t, SMTPAuthNone, smtpSettings.Auth) + assert.Equal(t, enabled, smtpSettings.Enabled) + }) }