minitest-spec-rails 3.1.2 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. data/.travis.yml +9 -6
  2. data/Appraisals +17 -0
  3. data/CHANGELOG.md +3 -12
  4. data/Gemfile +1 -3
  5. data/README.md +111 -2
  6. data/Rakefile +8 -0
  7. data/gemfiles/rails30.gemfile +7 -0
  8. data/gemfiles/rails30.gemfile.lock +94 -0
  9. data/gemfiles/rails31.gemfile +7 -0
  10. data/gemfiles/rails31.gemfile.lock +105 -0
  11. data/gemfiles/rails32.gemfile +7 -0
  12. data/gemfiles/rails32.gemfile.lock +104 -0
  13. data/gemfiles/rails40.gemfile +7 -0
  14. data/gemfiles/rails40.gemfile.lock +107 -0
  15. data/lib/minitest-spec-rails.rb +4 -5
  16. data/lib/minitest-spec-rails/init/action_controller.rb +11 -19
  17. data/lib/minitest-spec-rails/init/action_mailer.rb +5 -22
  18. data/lib/minitest-spec-rails/init/action_view.rb +15 -33
  19. data/lib/minitest-spec-rails/init/active_support.rb +11 -19
  20. data/lib/minitest-spec-rails/railtie.rb +17 -0
  21. data/lib/minitest-spec-rails/version.rb +1 -1
  22. data/lib/test/unit.rb +5 -0
  23. data/lib/test/unit/assertions.rb +5 -0
  24. data/lib/test/unit/testcase.rb +31 -0
  25. data/minitest-spec-rails.gemspec +3 -4
  26. data/test/cases/action_dispatch_test.rb +2 -2
  27. data/test/cases/active_support_test.rb +5 -17
  28. data/test/cases/minitest_spec_rails_test.rb +11 -0
  29. data/test/dummy_app/app/controllers/users_controller.rb +0 -4
  30. data/test/dummy_app/app/helpers/application_helper.rb +1 -0
  31. data/test/dummy_app/app/mailers/user_mailer.rb +10 -0
  32. data/test/dummy_app/app/models/user.rb +0 -3
  33. data/test/dummy_app/app/views/users/{index.rhtml → index.html.erb} +0 -0
  34. data/test/dummy_app/config/database.yml +5 -2
  35. data/test/dummy_app/config/routes.rb +3 -5
  36. data/test/dummy_app/init.rb +32 -8
  37. data/test/dummy_app/{db/schema.rb → tmp/.gitkeep} +0 -0
  38. data/test/dummy_tests/application_controller_test.rb +23 -67
  39. data/test/dummy_tests/integration_test.rb +22 -13
  40. data/test/dummy_tests/user_mailer_test.rb +27 -65
  41. data/test/dummy_tests/user_test.rb +14 -50
  42. data/test/dummy_tests/users_controller_test.rb +6 -13
  43. data/test/dummy_tests/users_helper_test.rb +19 -55
  44. data/test/support/shared_test_case_behavior.rb +16 -10
  45. data/test/test_helper.rb +2 -2
  46. data/test/test_helper_dummy.rb +2 -0
  47. metadata +33 -75
  48. data/Guardfile +0 -7
  49. data/lib/minitest-spec-rails/dsl.rb +0 -52
  50. data/lib/minitest-spec-rails/init/action_dispatch.rb +0 -17
  51. data/lib/minitest-spec-rails/init/mini_shoulda.rb +0 -47
  52. data/lib/minitest-spec-rails/rails.rb +0 -7
  53. data/test/cases/mini_shoulda_test.rb +0 -38
  54. data/test/dummy_app/app/helpers/foos_helper.rb +0 -5
  55. data/test/dummy_app/app/models/post.rb +0 -6
  56. data/test/dummy_app/app/models/user_mailer.rb +0 -10
  57. data/test/dummy_app/app/views/user_mailer/welcome.erb +0 -1
  58. data/test/dummy_app/config/boot.rb +0 -126
  59. data/test/dummy_app/config/environment.rb +0 -12
  60. data/test/dummy_app/config/environments/test.rb +0 -28
  61. data/test/dummy_app/config/initializers/new_rails_defaults.rb +0 -15
  62. data/test/dummy_app/lib/library.rb +0 -2
  63. data/test/dummy_app/log/.keep +0 -0
  64. data/test/dummy_app/public/.htaccess +0 -40
  65. data/test/dummy_app/public/404.html +0 -30
  66. data/test/dummy_app/public/422.html +0 -30
  67. data/test/dummy_app/public/500.html +0 -30
  68. data/test/dummy_app/script/console +0 -3
  69. data/test/dummy_app/script/generate +0 -3
  70. data/test/dummy_tests/foo_helper_test.rb +0 -12
  71. data/test/dummy_tests/library_test.rb +0 -16
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source :rubygems
4
+
5
+ gem "rails", :github=>"rails/rails"
6
+
7
+ gemspec :path=>"../"
@@ -0,0 +1,107 @@
1
+ GIT
2
+ remote: git://github.com/rails/rails.git
3
+ revision: 555cb0afb5a8a8e98fc982edb9e09dfaafd46380
4
+ specs:
5
+ actionmailer (4.0.0.beta)
6
+ actionpack (= 4.0.0.beta)
7
+ mail (~> 2.5.3)
8
+ actionpack (4.0.0.beta)
9
+ activesupport (= 4.0.0.beta)
10
+ builder (~> 3.1.0)
11
+ erubis (~> 2.7.0)
12
+ rack (~> 1.4.3)
13
+ rack-test (~> 0.6.1)
14
+ activemodel (4.0.0.beta)
15
+ activesupport (= 4.0.0.beta)
16
+ builder (~> 3.1.0)
17
+ activerecord (4.0.0.beta)
18
+ activemodel (= 4.0.0.beta)
19
+ activerecord-deprecated_finders (= 0.0.1)
20
+ activesupport (= 4.0.0.beta)
21
+ arel (~> 3.0.2)
22
+ activesupport (4.0.0.beta)
23
+ i18n (~> 0.6)
24
+ minitest (~> 4.1)
25
+ multi_json (~> 1.3)
26
+ thread_safe (~> 0.1)
27
+ tzinfo (~> 0.3.33)
28
+ rails (4.0.0.beta)
29
+ actionmailer (= 4.0.0.beta)
30
+ actionpack (= 4.0.0.beta)
31
+ activerecord (= 4.0.0.beta)
32
+ activesupport (= 4.0.0.beta)
33
+ bundler (>= 1.2.2, < 2.0)
34
+ railties (= 4.0.0.beta)
35
+ sprockets-rails (~> 2.0.0.rc1)
36
+ railties (4.0.0.beta)
37
+ actionpack (= 4.0.0.beta)
38
+ activesupport (= 4.0.0.beta)
39
+ rake (>= 0.8.7)
40
+ rdoc (~> 3.4)
41
+ thor (>= 0.15.4, < 2.0)
42
+
43
+ PATH
44
+ remote: /Users/kencollins/Repositories/minitest-spec-rails
45
+ specs:
46
+ minitest-spec-rails (4.3.0)
47
+ minitest (~> 4.3)
48
+ rails (>= 3.0)
49
+
50
+ GEM
51
+ remote: http://rubygems.org/
52
+ specs:
53
+ activerecord-deprecated_finders (0.0.1)
54
+ appraisal (0.5.1)
55
+ bundler
56
+ rake
57
+ arel (3.0.2)
58
+ atomic (1.0.1)
59
+ builder (3.1.4)
60
+ erubis (2.7.0)
61
+ hike (1.2.1)
62
+ i18n (0.6.1)
63
+ json (1.7.6)
64
+ mail (2.5.3)
65
+ i18n (>= 0.4.0)
66
+ mime-types (~> 1.16)
67
+ treetop (~> 1.4.8)
68
+ mime-types (1.19)
69
+ minitest (4.4.0)
70
+ minitest-emoji (1.0.0)
71
+ multi_json (1.5.0)
72
+ polyglot (0.3.3)
73
+ rack (1.4.4)
74
+ rack-test (0.6.2)
75
+ rack (>= 1.0)
76
+ rake (10.0.3)
77
+ rdoc (3.12)
78
+ json (~> 1.4)
79
+ sprockets (2.8.2)
80
+ hike (~> 1.2)
81
+ multi_json (~> 1.0)
82
+ rack (~> 1.0)
83
+ tilt (~> 1.1, != 1.3.0)
84
+ sprockets-rails (2.0.0.rc1)
85
+ actionpack (>= 3.0)
86
+ activesupport (>= 3.0)
87
+ sprockets (~> 2.8)
88
+ sqlite3 (1.3.7)
89
+ thor (0.16.0)
90
+ thread_safe (0.1.0)
91
+ atomic
92
+ tilt (1.3.3)
93
+ treetop (1.4.12)
94
+ polyglot
95
+ polyglot (>= 0.3.1)
96
+ tzinfo (0.3.35)
97
+
98
+ PLATFORMS
99
+ ruby
100
+
101
+ DEPENDENCIES
102
+ appraisal
103
+ minitest-emoji
104
+ minitest-spec-rails!
105
+ rails!
106
+ rake
107
+ sqlite3
@@ -1,10 +1,9 @@
1
1
  module MiniTestSpecRails
2
2
  end
3
3
 
4
- require 'rubygems'
5
- require 'active_support/all'
6
- require 'active_support/test_case'
4
+ require 'rails'
7
5
  require 'minitest/spec'
8
6
  require 'minitest-spec-rails/version'
9
- require 'minitest-spec-rails/dsl'
10
- require 'minitest-spec-rails/rails' if Rails.env.test?
7
+ require 'minitest-spec-rails/railtie'
8
+ require 'test/unit/testcase'
9
+
@@ -1,24 +1,16 @@
1
- module MiniTestSpecRails
2
- module Init
3
- module ActionControllerBehavior
1
+ ActionController::TestCase.instance_eval do
4
2
 
5
- def self.included(klass)
6
- klass.class_eval do
7
- register_spec_type(/Controller( ?Test)?\z/i, self)
8
- register_spec_type(self) { |desc| Class === desc && desc < self }
9
- register_rails_test_case self
10
- end
11
- end
12
-
13
- private
3
+ register_spec_type(self) do |desc|
4
+ Class === desc && desc < ActionController::Metal
5
+ end
14
6
 
15
- def setup_controller_request_and_response
16
- describing_class.tests described_class
17
- super
18
- end
7
+ register_spec_type(/Controller( ?Test)?\z/i, self)
19
8
 
20
- end
21
- end
22
9
  end
23
10
 
24
- ActionController::TestCase.send :include, MiniTestSpecRails::Init::ActionControllerBehavior
11
+ require 'action_dispatch/testing/integration' # For Rails 3.0 loading.
12
+ ActionDispatch::IntegrationTest.instance_eval do
13
+
14
+ register_spec_type(/(Acceptance|Integration) ?Test\z/i, self)
15
+
16
+ end
@@ -1,26 +1,9 @@
1
- module MiniTestSpecRails
2
- module Init
3
- module ActionMailerBehavior
1
+ ActionMailer::TestCase.instance_eval do
4
2
 
5
- def self.included(klass)
6
- klass.class_eval do
7
- register_spec_type(self) { |desc| Class === desc && desc < ActionMailer::Base }
8
- register_spec_type(/Mailer( ?Test)?\z/i, self)
9
- register_spec_type(self) { |desc| Class === desc && desc < self }
10
- register_rails_test_case self
11
- before { setup_minitest_spec_rails_mailer_class }
12
- end
13
- end
14
-
15
- private
16
-
17
- def setup_minitest_spec_rails_mailer_class
18
- describing_class.tests described_class
19
- end
20
-
21
- end
3
+ register_spec_type(self) do |desc|
4
+ Class === desc && desc < ActionMailer::Base
22
5
  end
23
- end
24
6
 
25
- ActionMailer::TestCase.send :include, MiniTestSpecRails::Init::ActionMailerBehavior
7
+ register_spec_type(/Mailer( ?Test)?\z/i, self)
26
8
 
9
+ end
@@ -1,38 +1,20 @@
1
- module MiniTestSpecRails
2
- module Init
3
- module ActionViewBehavior
1
+ ActionView::TestCase.instance_eval do
4
2
 
5
- def self.included(klass)
6
- klass.class_eval do
7
- class_attribute :_helper_class
8
- register_spec_type(/(Helper|View)( ?Test)?\z/i, self)
9
- register_spec_type(self) { |desc| Class === desc && desc < self }
10
- register_rails_test_case self
11
- before { setup_minitest_spec_rails_helper_class }
12
- end
13
- end
14
-
15
- private
16
-
17
- def helper_class=(new_class)
18
- self._helper_class = new_class
19
- end
20
-
21
- def helper_class
22
- if current_helper_class = self._helper_class
23
- current_helper_class
24
- else
25
- self.helper_class = determine_default_helper_class(name)
26
- end
27
- end
28
-
29
- def setup_minitest_spec_rails_helper_class
30
- self.class.helper_class = described_class
31
- self.class.send :include_helper_modules!
32
- end
3
+ register_spec_type(/(Helper|View)( ?Test)?\z/i, self)
33
4
 
5
+ # Properly allow the parent class to memoize this for subclasses.
6
+ # Just like ActionController::TestCase does.
7
+ class_attribute :_helper_class
8
+ def helper_class=(new_class)
9
+ self._helper_class = new_class
10
+ end
11
+ def helper_class
12
+ if current_helper_class = self._helper_class
13
+ current_helper_class
14
+ else
15
+ self.helper_class = determine_default_helper_class(name)
34
16
  end
35
17
  end
36
- end
37
18
 
38
- ActionView::TestCase.send :include, MiniTestSpecRails::Init::ActionViewBehavior
19
+
20
+ end
@@ -1,28 +1,20 @@
1
- module MiniTestSpecRails
2
- module Init
3
- module ActiveSupportBehavior
1
+ ActiveSupport::TestCase.instance_eval do
4
2
 
5
- def self.included(klass)
6
- klass.class_eval do
7
- extend MiniTest::Spec::DSL
8
- include MiniTestSpecRails::DSL
9
- register_spec_type(self) { |desc| Class === desc }
10
- register_rails_test_case self
11
- end
12
- end
13
-
14
- end
3
+ class << self
4
+ remove_method :describe
15
5
  end
16
- end
17
6
 
18
- ActiveSupport::TestCase.send :include, MiniTestSpecRails::Init::ActiveSupportBehavior
7
+ register_spec_type(self) do |desc|
8
+ Class === desc && desc < ActiveRecord::Base
9
+ end
19
10
 
11
+ end
20
12
 
21
13
  # The AbstractController::Helpers#default_helper_module! blows up using
22
14
  # ActiveSupport's modified LoadError class under Ruby 1.8 because describe
23
- # blocks with spaces for their names have a `module_path` of something like
15
+ # blocks with spaces for their names have a `module_path` of something like
24
16
  # "nested 1" while in Ruby 1.9 it is something like "#<Class:0x007fa256ea1118>"
25
- # and hence wont find a #path match in REGEXPS due to the space. So add
17
+ # and hence wont find a #path match in REGEXPS due to the space. So add
26
18
  # another that allows filenames with spaces in it.
27
- #
28
- MissingSourceFile::REGEXPS << %r{^Missing \w+ (?:file\s*)?(.*\.rb)$}i
19
+ #
20
+ LoadError::REGEXPS << %r{^Missing \w+ (?:file\s*)?(.*\.rb)$}i
@@ -0,0 +1,17 @@
1
+ module MiniTestSpecRails
2
+ class Railtie < ::Rails::Railtie
3
+
4
+ config.minitest_spec_rails = ActiveSupport::OrderedOptions.new
5
+
6
+ config.before_initialize do |app|
7
+ ActiveSupport.on_load(:action_view) { require 'minitest-spec-rails/init/action_view' }
8
+ ActiveSupport.on_load(:action_controller) { require 'minitest-spec-rails/init/action_controller' }
9
+ ActiveSupport.on_load(:action_mailer) { require 'minitest-spec-rails/init/action_mailer' }
10
+ end
11
+
12
+ initializer 'minitest-spec-rails.after.load_active_support', :after => :load_active_support, :group => :all do |app|
13
+ require 'minitest-spec-rails/init/active_support'
14
+ end
15
+
16
+ end
17
+ end
@@ -1,3 +1,3 @@
1
1
  module MiniTestSpecRails
2
- VERSION = "3.1.2"
2
+ VERSION = "4.3.0"
3
3
  end
@@ -0,0 +1,5 @@
1
+ module Test
2
+ module Unit
3
+ TEST_UNIT_IMPLEMENTATION = 'test/unit mock using minitest-spec-rails'
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Test
2
+ module Unit
3
+ Assertions = ::MiniTest::Assertions
4
+ end
5
+ end
@@ -0,0 +1,31 @@
1
+ require 'minitest-spec-rails'
2
+ require 'minitest/autorun'
3
+ require 'pp'
4
+
5
+ module Test
6
+ module Unit
7
+
8
+ remove_const(:TestCase) if defined?(self::TestCase)
9
+ class TestCase < ::MiniTest::Spec
10
+
11
+ MINITEST_SPEC_RAILS = true
12
+
13
+ def mu_pp(obj)
14
+ obj.pretty_inspect.chomp
15
+ end
16
+
17
+ def assert_block(*msgs)
18
+ assert yield, *msgs
19
+ end
20
+
21
+ def build_message(head, template=nil, *arguments)
22
+ template &&= template.chomp
23
+ template.gsub(/\G((?:[^\\]|\\.)*?)(\\)?\?/) { $1 + ($2 ? "?" : mu_pp(arguments.shift)) }
24
+ end
25
+
26
+ end
27
+
28
+ end
29
+ end
30
+
31
+ silence_warnings { MiniTest::Unit::TestCase = MiniTest::Spec }
@@ -15,11 +15,10 @@ Gem::Specification.new do |gem|
15
15
  gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
16
  gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
17
  gem.require_paths = ['lib']
18
- gem.add_runtime_dependency 'minitest', '~> 4.7'
19
- gem.add_runtime_dependency 'rails', '~> 2.3.0'
20
- gem.add_development_dependency 'guard-minitest'
18
+ gem.add_runtime_dependency 'minitest', '~> 4.3'
19
+ gem.add_runtime_dependency 'rails', '>= 3.0'
20
+ gem.add_development_dependency 'appraisal'
21
21
  gem.add_development_dependency 'minitest-emoji'
22
- gem.add_development_dependency 'minitest-focus'
23
22
  gem.add_development_dependency 'rake'
24
23
  gem.add_development_dependency 'sqlite3'
25
24
  end
@@ -38,11 +38,11 @@ class ActionControllerTest < MiniTestSpecRails::TestCase
38
38
  private
39
39
 
40
40
  def assert_dispatch(actual)
41
- assert_equal ActionController::IntegrationTest, actual
41
+ assert_equal ActionDispatch::IntegrationTest, actual
42
42
  end
43
43
 
44
44
  def refute_dispatch(actual)
45
- refute_equal ActionController::IntegrationTest, actual
45
+ refute_equal ActionDispatch::IntegrationTest, actual
46
46
  end
47
47
 
48
48
  end
@@ -4,6 +4,10 @@ class SomeRandomModel < ActiveRecord::Base; end
4
4
 
5
5
  class ActiveSupportTest < MiniTestSpecRails::TestCase
6
6
 
7
+ it 'removes ActiveSupport describe method' do
8
+ ActiveSupport::TestCase.singleton_methods(false).map(&:to_sym).wont_include :describe
9
+ end
10
+
7
11
  it 'resolves spect type for active record constants' do
8
12
  assert_support MiniTest::Spec.spec_type(SomeRandomModel)
9
13
  assert_support MiniTest::Spec.spec_type(User)
@@ -13,6 +17,7 @@ class ActiveSupportTest < MiniTestSpecRails::TestCase
13
17
  assert_spec MiniTest::Spec.spec_type("Unmatched String")
14
18
  end
15
19
 
20
+
16
21
  private
17
22
 
18
23
  def assert_support(actual)
@@ -24,20 +29,3 @@ class ActiveSupportTest < MiniTestSpecRails::TestCase
24
29
  end
25
30
 
26
31
  end
27
-
28
- class ActiveSupportCallbackTest < ActiveSupport::TestCase
29
-
30
- setup :foo
31
- setup :bar
32
-
33
- it 'works' do
34
- @foo.must_equal 'foo'
35
- @bar.must_equal 'bar'
36
- end
37
-
38
- private
39
-
40
- def foo ; @foo = 'foo' ; end
41
- def bar ; @bar = 'bar' ; end
42
-
43
- end
@@ -0,0 +1,11 @@
1
+ require 'test_helper'
2
+
3
+ class MiniTestSpecRailsTest < MiniTestSpecRails::TestCase
4
+
5
+ it 'defines MINITEST_SPEC_RAILS in the Test::Unit::TestCase shim' do
6
+ assert Test::Unit::TestCase.const_defined? :MINITEST_SPEC_RAILS
7
+ assert Test::Unit::TestCase::MINITEST_SPEC_RAILS
8
+ end
9
+
10
+
11
+ end