mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Register mailer tests for minitest's spec DSL
This commit is contained in:
parent
52db1f9148
commit
0ce383db58
2 changed files with 44 additions and 0 deletions
|
@ -10,6 +10,13 @@ module ActionMailer
|
|||
end
|
||||
|
||||
class TestCase < ActiveSupport::TestCase
|
||||
|
||||
# Use AM::TestCase for the base class when describing a mailer
|
||||
register_spec_type(self) do |desc|
|
||||
Class === desc && desc < ActionMailer::Base
|
||||
end
|
||||
register_spec_type(/Mailer( ?Test)?\z/i, self)
|
||||
|
||||
module Behavior
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
|
|
37
actionmailer/test/spec_type_test.rb
Normal file
37
actionmailer/test/spec_type_test.rb
Normal file
|
@ -0,0 +1,37 @@
|
|||
require 'abstract_unit'
|
||||
|
||||
class NotificationMailer < ActionMailer::Base; end
|
||||
class Notifications < ActionMailer::Base; end
|
||||
|
||||
class SpecTypeTest < ActiveSupport::TestCase
|
||||
def assert_mailer actual
|
||||
assert_equal ActionMailer::TestCase, actual
|
||||
end
|
||||
|
||||
def refute_mailer actual
|
||||
refute_equal ActionMailer::TestCase, actual
|
||||
end
|
||||
|
||||
def test_spec_type_resolves_for_class_constants
|
||||
assert_mailer MiniTest::Spec.spec_type(NotificationMailer)
|
||||
assert_mailer MiniTest::Spec.spec_type(Notifications)
|
||||
end
|
||||
|
||||
def test_spec_type_resolves_for_matching_strings
|
||||
assert_mailer MiniTest::Spec.spec_type("WidgetMailer")
|
||||
assert_mailer MiniTest::Spec.spec_type("WidgetMailerTest")
|
||||
assert_mailer MiniTest::Spec.spec_type("Widget Mailer Test")
|
||||
# And is not case sensitive
|
||||
assert_mailer MiniTest::Spec.spec_type("widgetmailer")
|
||||
assert_mailer MiniTest::Spec.spec_type("widgetmailertest")
|
||||
assert_mailer MiniTest::Spec.spec_type("widget mailer test")
|
||||
end
|
||||
|
||||
def test_spec_type_wont_match_non_space_characters
|
||||
refute_mailer MiniTest::Spec.spec_type("Widget Mailer\tTest")
|
||||
refute_mailer MiniTest::Spec.spec_type("Widget Mailer\rTest")
|
||||
refute_mailer MiniTest::Spec.spec_type("Widget Mailer\nTest")
|
||||
refute_mailer MiniTest::Spec.spec_type("Widget Mailer\fTest")
|
||||
refute_mailer MiniTest::Spec.spec_type("Widget MailerXTest")
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue