Simplify SMTP auth method selection

Instead of using the auth method name, let's just not supply username
and password when we don't want to authenticate. The two affected
servers AU and CA don't have credentials set anyway. This is compatible.

The specs needed changing though.
This commit is contained in:
Maikel Linke
2024-04-16 15:41:15 +10:00
parent d6f2a531aa
commit a41019fbff
2 changed files with 21 additions and 37 deletions

View File

@@ -8,12 +8,12 @@ module Spree
let!(:subject) { MailSettings.new }
context "overrides appplication defaults" do
context "authentication method is none" do
context "authentication method is login" do
before do
Config.mail_host = "smtp.example.com"
Config.mail_domain = "example.com"
Config.mail_port = 123
Config.mail_auth_type = MailSettings::SECURE_CONNECTION_TYPES[0]
Config.mail_auth_type = "login"
Config.smtp_username = "schof"
Config.smtp_password = "hellospree!"
Config.secure_connection_type = "TLS"
@@ -23,31 +23,22 @@ module Spree
it { expect(ActionMailer::Base.smtp_settings[:address]).to eq "smtp.example.com" }
it { expect(ActionMailer::Base.smtp_settings[:domain]).to eq "example.com" }
it { expect(ActionMailer::Base.smtp_settings[:port]).to eq 123 }
it { expect(ActionMailer::Base.smtp_settings[:authentication]).to eq nil }
it { expect(ActionMailer::Base.smtp_settings[:authentication]).to eq "login" }
it { expect(ActionMailer::Base.smtp_settings[:enable_starttls_auto]).to be_truthy }
it "doesnt touch user name config" do
expect(ActionMailer::Base.smtp_settings[:user_name]).to be_nil
end
it "doesnt touch password config" do
expect(ActionMailer::Base.smtp_settings[:password]).to be_nil
end
end
end
context "when mail_auth_type is other than none" do
before do
Config.mail_auth_type = "login"
Config.smtp_username = "schof"
Config.smtp_password = "hellospree!"
subject.override!
end
context "overrides user credentials" do
it { expect(ActionMailer::Base.smtp_settings[:user_name]).to eq "schof" }
it { expect(ActionMailer::Base.smtp_settings[:password]).to eq "hellospree!" }
end
context "authentication method is none" do
before do
Config.mail_auth_type = "None"
subject.override!
end
it "doesn't store 'None' as auth method" do
expect(ActionMailer::Base.smtp_settings[:authentication]).to eq nil
end
end
end
end
end