mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-25 08:09:38 +02:00
Allow a self-hosted user to configure their SMTP settings directly from within the UI (#682)
* Add setting fields to model * Allow to configure SMTP settings * Normalize locales * Cleanup locales * Remove 'coming soon' * fix test * Reset credentials * Reset development config * Check smtp spelling * Use post instead of get method * TLS ENV variable is more descriptive * Rework application mailer * Follow rails convention for mailer action params * Reset schema.rb to main * Test WIP * Add test for controller and mailer * Move tests from controller to model * Custom error message if settings are not all present * Comment smtp config in development env * Add default tls enabled value * Rubocop * Fix controller test * Reset credentials * Normalize locales * Test * fix test * Fix application mailer test that fails randomly * Error flash message instead of notice * Rework application mailer tests
This commit is contained in:
parent
f0480e7ab7
commit
6fdb8e8d69
15 changed files with 200 additions and 15 deletions
45
test/mailers/application_mailer_test.rb
Normal file
45
test/mailers/application_mailer_test.rb
Normal file
|
@ -0,0 +1,45 @@
|
|||
require "test_helper"
|
||||
|
||||
class ApplicationMailerTest < ActionMailer::TestCase
|
||||
setup do
|
||||
class TestMailer < ApplicationMailer
|
||||
def test_email
|
||||
mail(to: "testto@email.com", from: "testfrom@email.com", subject: "Test email subject", body: "Test email body")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
test "should use self host settings when self host enabled" do
|
||||
ENV["SELF_HOSTING_ENABLED"] = "true"
|
||||
|
||||
smtp_host = "smtp.example.com"
|
||||
smtp_port = 466
|
||||
smtp_username = "user@example.com"
|
||||
smtp_password = "password"
|
||||
email_sender = "notification@example.com"
|
||||
|
||||
smtp_settings_from_settings = { address: smtp_host,
|
||||
port: smtp_port,
|
||||
user_name: smtp_username,
|
||||
password: smtp_password }
|
||||
|
||||
Setting.stubs(:smtp_host).returns(smtp_host)
|
||||
Setting.stubs(:smtp_port).returns(smtp_port)
|
||||
Setting.stubs(:smtp_username).returns(smtp_username)
|
||||
Setting.stubs(:smtp_password).returns(smtp_password)
|
||||
Setting.stubs(:email_sender).returns(email_sender)
|
||||
|
||||
TestMailer.test_email.deliver_now
|
||||
assert_emails 1
|
||||
assert_equal smtp_settings_from_settings, ActionMailer::Base.deliveries.first.delivery_method.settings.slice(:address, :port, :user_name, :password)
|
||||
end
|
||||
|
||||
test "should use regular env settings when self host disabled" do
|
||||
ENV["SELF_HOSTING_ENABLED"] = "false"
|
||||
|
||||
TestMailer.test_email.deliver_now
|
||||
|
||||
assert_emails 1
|
||||
assert_nil ActionMailer::Base.deliveries.first.delivery_method.settings[:address]
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue