1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-24 07:39:39 +02:00
Maybe/test/mailers/application_mailer_test.rb
Thibaut Gorioux 6fdb8e8d69
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
2024-04-29 16:44:24 -04:00

45 lines
1.5 KiB
Ruby

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