1
0
Fork 0
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:
Mike Moore 2012-09-24 14:31:05 -06:00
parent 52db1f9148
commit 0ce383db58
2 changed files with 44 additions and 0 deletions

View file

@ -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

View 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