diff options
author | Jimmy Bourassa <jimmy.bourassa@hooktstudios.com> | 2017-08-24 01:13:54 -0400 |
---|---|---|
committer | Jimmy Bourassa <jimmy.bourassa@hooktstudios.com> | 2017-08-29 09:42:28 -0400 |
commit | fbb2fc8aa7d17fd86ad9c3fbbe60ef84a4cde950 (patch) | |
tree | cc7db1c38e4dc64c437b1be50d49192af826cfed /actionmailer/test | |
parent | 9a66a22102db76896f400939165ec92280e092e7 (diff) | |
download | rails-fbb2fc8aa7d17fd86ad9c3fbbe60ef84a4cde950.tar.gz rails-fbb2fc8aa7d17fd86ad9c3fbbe60ef84a4cde950.tar.bz2 rails-fbb2fc8aa7d17fd86ad9c3fbbe60ef84a4cde950.zip |
Fix AM::Base.default proc arity breaking change
PR #29270 changed the number of arguments that gets passed to Procs
defined in ActionMail::Base.default. With this changeset, Procs can
now have 1 or 0 arguments
Also adds test coverage for AM::Base.default Proc arity.
Diffstat (limited to 'actionmailer/test')
-rw-r--r-- | actionmailer/test/base_test.rb | 9 | ||||
-rw-r--r-- | actionmailer/test/mailers/proc_mailer.rb | 9 |
2 files changed, 17 insertions, 1 deletions
diff --git a/actionmailer/test/base_test.rb b/actionmailer/test/base_test.rb index 0da969c349..6f3b638994 100644 --- a/actionmailer/test/base_test.rb +++ b/actionmailer/test/base_test.rb @@ -726,6 +726,15 @@ class BaseTest < ActiveSupport::TestCase assert(ProcMailer.welcome["x-has-to-proc"].to_s == "symbol") end + test "proc default values can have arity of 1 where arg is a mailer instance" do + assert_equal(ProcMailer.welcome['X-Lambda-Arity-1-arg'].to_s, "complex_value") + assert_equal(ProcMailer.welcome['X-Lambda-Arity-1-self'].to_s, "complex_value") + end + + test "proc default values with fixed arity of 0 can be called" do + assert_equal("0", ProcMailer.welcome["X-Lambda-Arity-0"].to_s) + end + test "we can call other defined methods on the class as needed" do mail = ProcMailer.welcome assert_equal("Thanks for signing up this afternoon", mail.subject) diff --git a/actionmailer/test/mailers/proc_mailer.rb b/actionmailer/test/mailers/proc_mailer.rb index b7cf53eb4a..76e730bb79 100644 --- a/actionmailer/test/mailers/proc_mailer.rb +++ b/actionmailer/test/mailers/proc_mailer.rb @@ -4,12 +4,19 @@ class ProcMailer < ActionMailer::Base default to: "system@test.lindsaar.net", "X-Proc-Method" => Proc.new { Time.now.to_i.to_s }, subject: Proc.new { give_a_greeting }, - "x-has-to-proc" => :symbol + "x-has-to-proc" => :symbol, + "X-Lambda-Arity-0" => ->() { "0" }, + "X-Lambda-Arity-1-arg" => ->(arg) { arg.computed_value }, + "X-Lambda-Arity-1-self" => ->(_) { self.computed_value } def welcome mail end + def computed_value + "complex_value" + end + private def give_a_greeting |