diff options
-rw-r--r-- | .github/autolabeler.yml | 22 | ||||
-rw-r--r-- | Gemfile.lock | 8 | ||||
-rw-r--r-- | actionmailer/CHANGELOG.md | 11 | ||||
-rw-r--r-- | actionmailer/lib/action_mailer/base.rb | 1 | ||||
-rw-r--r-- | actionmailer/lib/action_mailer/parameterized.rb | 3 | ||||
-rw-r--r-- | actionmailer/test/parameterized_test.rb | 13 | ||||
-rw-r--r-- | railties/test/application/bin_setup_test.rb | 18 |
7 files changed, 41 insertions, 35 deletions
diff --git a/.github/autolabeler.yml b/.github/autolabeler.yml index c8033d8c30..d73b2e3362 100644 --- a/.github/autolabeler.yml +++ b/.github/autolabeler.yml @@ -4,8 +4,6 @@ actionmailer: - "actionmailer/**/*" actionpack: - "actionpack/**/*" -routing: - - "actionpack/**/*routing*" actionview: - "actionview/**/*" activejob: @@ -14,12 +12,6 @@ activemodel: - "activemodel/**/*" activerecord: - "activerecord/**/*" -MySQL: - - "activerecord/**/*mysql*" -PostgreSQL: - - "activerecord/**/*postgresql*" -enum: - - "activerecord/**/*enum*" activestorage: - "activestorage/**/*" activesupport: @@ -28,19 +20,5 @@ rails-ujs: - "actionview/app/assets/javascripts/rails-ujs*/*" railties: - "railties/**/*" -engines: - - "railties/lib/rails/engine/**/*" - - "railties/test/railties/**/*engine*" docs: - "guides/**/*" -asset pipeline: - - "guides/source/asset_pipeline.md" -ci issues: - - "ci/**/*" -security: - - "**/*security*" - - "**/*secure*" - - "**/*sanitize*" - - "**/*sanitization*" -i18n: - - "**/*i18n*" diff --git a/Gemfile.lock b/Gemfile.lock index 727489b50a..b4f46698bc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -339,12 +339,12 @@ GEM mysql2 (0.5.2-x86-mingw32) nio4r (2.3.1) nio4r (2.3.1-java) - nokogiri (1.8.4) + nokogiri (1.8.5) mini_portile2 (~> 2.3.0) - nokogiri (1.8.4-java) - nokogiri (1.8.4-x64-mingw32) + nokogiri (1.8.5-java) + nokogiri (1.8.5-x64-mingw32) mini_portile2 (~> 2.3.0) - nokogiri (1.8.4-x86-mingw32) + nokogiri (1.8.5-x86-mingw32) mini_portile2 (~> 2.3.0) os (1.0.0) parallel (1.12.1) diff --git a/actionmailer/CHANGELOG.md b/actionmailer/CHANGELOG.md index 1aa7485d3e..db6fc7ee9c 100644 --- a/actionmailer/CHANGELOG.md +++ b/actionmailer/CHANGELOG.md @@ -1,3 +1,14 @@ +* Allow ActionMailer classes to configure the parameterized delivery job + Example: + ``` + class MyMailer < ApplicationMailer + self.parameterized_delivery_job = MyCustomDeliveryJob + ... + end + ``` + + *Luke Pearce* + * `ActionDispatch::IntegrationTest` includes `ActionMailer::TestHelper` module by default. *Ricardo Díaz* diff --git a/actionmailer/lib/action_mailer/base.rb b/actionmailer/lib/action_mailer/base.rb index 02e5ac2a3e..509d859ac3 100644 --- a/actionmailer/lib/action_mailer/base.rb +++ b/actionmailer/lib/action_mailer/base.rb @@ -462,6 +462,7 @@ module ActionMailer helper ActionMailer::MailHelper class_attribute :delivery_job, default: ::ActionMailer::DeliveryJob + class_attribute :parameterized_delivery_job, default: ::ActionMailer::Parameterized::DeliveryJob class_attribute :default_params, default: { mime_version: "1.0", charset: "UTF-8", diff --git a/actionmailer/lib/action_mailer/parameterized.rb b/actionmailer/lib/action_mailer/parameterized.rb index 5e768e7106..0fe417affe 100644 --- a/actionmailer/lib/action_mailer/parameterized.rb +++ b/actionmailer/lib/action_mailer/parameterized.rb @@ -140,7 +140,8 @@ module ActionMailer super else args = @mailer_class.name, @action.to_s, delivery_method.to_s, @params, *@args - ActionMailer::Parameterized::DeliveryJob.set(options).perform_later(*args) + job = @mailer_class.parameterized_delivery_job + job.set(options).perform_later(*args) end end end diff --git a/actionmailer/test/parameterized_test.rb b/actionmailer/test/parameterized_test.rb index ec6c5e9e67..d3b34fc3e3 100644 --- a/actionmailer/test/parameterized_test.rb +++ b/actionmailer/test/parameterized_test.rb @@ -53,4 +53,17 @@ class ParameterizedTest < ActiveSupport::TestCase invitation = mailer.method(:anything) end end + + test "should enqueue a parameterized request with the correct delivery job" do + old_delivery_job = ParamsMailer.parameterized_delivery_job + ParamsMailer.parameterized_delivery_job = ParameterizedDummyJob + + assert_performed_with(job: ParameterizedDummyJob, args: ["ParamsMailer", "invitation", "deliver_now", { inviter: "david@basecamp.com", invitee: "jason@basecamp.com" } ]) do + @mail.deliver_later + end + + ParamsMailer.parameterized_delivery_job = old_delivery_job + end + + class ParameterizedDummyJob < ActionMailer::Parameterized::DeliveryJob; end end diff --git a/railties/test/application/bin_setup_test.rb b/railties/test/application/bin_setup_test.rb index 54934dbe24..d02100d94c 100644 --- a/railties/test/application/bin_setup_test.rb +++ b/railties/test/application/bin_setup_test.rb @@ -43,18 +43,20 @@ module ApplicationTests # Ignore line that's only output by Bundler < 1.14 output.sub!(/^Resolving dependencies\.\.\.\n/, "") + # Suppress Bundler platform warnings from output + output.gsub!(/^The dependency .* will be unused .*\.\n/, "") - assert_equal(<<-OUTPUT, output) -== Installing dependencies == -The Gemfile's dependencies are satisfied + assert_equal(<<~OUTPUT, output) + == Installing dependencies == + The Gemfile's dependencies are satisfied -== Preparing database == -Created database 'db/development.sqlite3' -Created database 'db/test.sqlite3' + == Preparing database == + Created database 'db/development.sqlite3' + Created database 'db/test.sqlite3' -== Removing old logs and tempfiles == + == Removing old logs and tempfiles == -== Restarting application server == + == Restarting application server == OUTPUT end end |