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
@@ -5,8 +5,4 @@ class UsersController < ApplicationController
5
5
  render :layout => false
6
6
  end
7
7
 
8
- def update
9
- redirect_to users_url
10
- end
11
-
12
8
  end
@@ -1,2 +1,3 @@
1
1
  module ApplicationHelper
2
+
2
3
  end
@@ -0,0 +1,10 @@
1
+ class UserMailer < ActionMailer::Base
2
+
3
+ default :from => 'rails@minitest.spec'
4
+
5
+ def welcome(user)
6
+ @user = user
7
+ mail :to => @user.email, :subject => 'Welcome', :body => "Welcome to MiniTest::Spec #{@user.email}!"
8
+ end
9
+
10
+ end
@@ -1,6 +1,3 @@
1
1
  class User < ActiveRecord::Base
2
2
 
3
- has_many :posts
4
-
5
-
6
3
  end
@@ -1,3 +1,6 @@
1
+
1
2
  test:
2
- :adapter: sqlite3
3
- :database: ":memory:"
3
+ adapter: sqlite3
4
+ database: ':memory:'
5
+ pool: 5
6
+ timeout: 5000
@@ -1,6 +1,4 @@
1
- ActionController::Routing::Routes.draw do |map|
2
-
3
- map.resources :users
4
- map.root :controller => 'application'
5
-
1
+ Dummy::Application.routes.draw do
2
+ root :to => 'application#index'
3
+ resources :users
6
4
  end
@@ -2,12 +2,36 @@ ENV['RAILS_ENV'] = 'test'
2
2
  require 'rubygems'
3
3
  ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../Gemfile', __FILE__)
4
4
  require 'bundler/setup'
5
- require 'active_support/all'
6
- require 'action_controller'
7
- require 'action_view'
8
- require 'action_mailer'
9
- require 'test_help'
10
- require 'rails/version'
11
- require 'initializer'
5
+ require 'rails/all'
12
6
  Bundler.require :default, :development, :test
13
- require "#{File.expand_path('../config/environment.rb', __FILE__)}"
7
+
8
+ module Dummy
9
+ class Application < ::Rails::Application
10
+
11
+ config.root = File.join __FILE__, '..'
12
+ config.cache_store = :memory_store
13
+ config.assets.enabled = false if Rails.version > '3.1'
14
+ config.secret_token = '012345678901234567890123456789'
15
+
16
+ config.whiny_nils = true if Rails.version < '4.0'
17
+ config.consider_all_requests_local = true
18
+ config.action_controller.perform_caching = false
19
+ config.action_dispatch.show_exceptions = false
20
+ config.action_controller.allow_forgery_protection = false
21
+ config.action_mailer.delivery_method = :test
22
+ config.active_support.deprecation = :stderr
23
+ if Rails.version < '4.0'
24
+ config.threadsafe!
25
+ else
26
+ config.allow_concurrency = true
27
+ config.cache_classes = true
28
+ config.dependency_loading = true
29
+ config.preload_frameworks = true
30
+ config.eager_load = true
31
+ config.secret_key_base = '012345678901234567890123456789'
32
+ end
33
+
34
+ end
35
+ end
36
+
37
+ Dummy::Application.initialize!
@@ -1,93 +1,49 @@
1
1
  require 'test_helper_dummy'
2
2
 
3
3
  module ApplicationControllerTests
4
- def self.included(klass)
5
- klass.class_eval do
4
+ extend ActiveSupport::Concern
5
+ included do
6
6
 
7
- tests ApplicationController
7
+ it 'works' do
8
+ get :index
9
+ response.body.must_equal 'Rendered MiniTest::Spec'
10
+ end
8
11
 
9
- before { get :index }
12
+ it 'allows custom assertions' do
13
+ assert_template :partial => false
14
+ end
10
15
 
11
- it 'works' do
12
- get :index
13
- @response.body.must_equal 'Rendered MiniTest::Spec'
14
- end
16
+ it 'can find the controller_class' do
17
+ self.class.controller_class.must_equal ApplicationController
18
+ end
15
19
 
16
- it 'allows custom assertions' do
17
- assert_template :partial => false
18
- end
20
+ it 'can access the setup ivars' do
21
+ @controller.must_be_kind_of ApplicationController
22
+ end
19
23
 
20
- it 'can find the controller_class' do
21
- self.class.controller_class.must_equal ApplicationController
22
- end
24
+ describe 'nested 1' do
25
+
26
+ it('works') { skip }
23
27
 
24
- it 'can access the setup ivars' do
25
- @controller.must_be_kind_of ApplicationController
28
+ it 'can find the controller_class' do
29
+ self.class.controller_class.must_equal ApplicationController unless rails30?
26
30
  end
27
31
 
28
- describe 'nested 1' do
32
+ describe 'nested 2' do
29
33
 
30
34
  it('works') { skip }
31
35
 
32
- it 'can find the controller_class' do
33
- self.class.controller_class.must_equal ApplicationController
34
- end
35
-
36
- describe 'nested 2' do
37
-
38
- it('works') { skip }
39
-
40
- end
41
-
42
36
  end
43
-
37
+
44
38
  end
39
+
45
40
  end
46
41
  end
47
42
 
48
43
  class ApplicationControllerTest < ActionController::TestCase
49
44
  include ApplicationControllerTests
50
- it 'reflects' do
51
- describing_class.must_equal ApplicationControllerTest
52
- described_class.must_equal ApplicationController
53
- self.class.described_class.must_equal ApplicationController
54
- end
55
- describe 'level 1' do
56
- it 'reflects' do
57
- describing_class.must_equal ApplicationControllerTest
58
- described_class.must_equal ApplicationController
59
- self.class.described_class.must_equal ApplicationController
60
- end
61
- describe 'level 2' do
62
- it 'reflects' do
63
- describing_class.must_equal ApplicationControllerTest
64
- described_class.must_equal ApplicationController
65
- self.class.described_class.must_equal ApplicationController
66
- end
67
- end
68
- end
69
45
  end
70
46
 
71
47
  describe ApplicationController do
72
48
  include ApplicationControllerTests
73
- it 'class reflects' do
74
- described_class.must_equal ApplicationController
75
- self.class.described_class.must_equal ApplicationController
76
- end
77
- it 'reflects' do
78
- described_class.must_equal ApplicationController
79
- self.class.described_class.must_equal ApplicationController
80
- end
81
- describe 'level 1' do
82
- it 'reflects' do
83
- described_class.must_equal ApplicationController
84
- self.class.described_class.must_equal ApplicationController
85
- end
86
- describe 'level 2' do
87
- it 'reflects' do
88
- described_class.must_equal ApplicationController
89
- self.class.described_class.must_equal ApplicationController
90
- end
91
- end
92
- end
93
49
  end
@@ -1,30 +1,39 @@
1
1
  require 'test_helper_dummy'
2
2
 
3
3
  module IntegrationTests
4
- def self.included(klass)
5
- klass.class_eval do
4
+ extend ActiveSupport::Concern
5
+ included do
6
6
 
7
- it 'works' do
8
- get root_path
9
- status.must_equal 200
10
- end
7
+ fixtures :all
11
8
 
12
- describe 'nested 1' do
9
+ it 'works' do
10
+ get root_path
11
+ status.must_equal 200
12
+ end
13
13
 
14
- it('works') { skip }
14
+ it 'can find the app' do
15
+ app.must_be_instance_of Dummy::Application
16
+ end
17
+
18
+ describe 'nested 1' do
15
19
 
16
- describe 'nested 2' do
20
+ it('works') { skip }
17
21
 
18
- it('works') { skip }
22
+ it 'can find the app' do
23
+ app.must_be_instance_of Dummy::Application
24
+ end
25
+
26
+ describe 'nested 2' do
19
27
 
20
- end
28
+ it('works') { skip }
21
29
 
22
30
  end
23
31
 
24
- end
32
+ end
33
+
25
34
  end
26
35
  end
27
36
 
28
- class IntegrationTest < ActionController::IntegrationTest
37
+ class IntegrationTest < ActionDispatch::IntegrationTest
29
38
  include IntegrationTests
30
39
  end
@@ -1,91 +1,53 @@
1
1
  require 'test_helper_dummy'
2
2
 
3
3
  module UserMailerTests
4
- def self.included(klass)
5
- klass.class_eval do
4
+ extend ActiveSupport::Concern
5
+ included do
6
+
7
+ let(:deliveries) { ActionMailer::Base.deliveries }
8
+ let(:user_mailer_class) { UserMailer }
9
+ let(:user_email) { user_mailer_class.welcome(user_ken).deliver }
10
+
11
+ it 'works' do
12
+ deliveries.must_be :empty?
13
+ user_email
14
+ deliveries.wont_be :empty?
15
+ user_email.to.must_equal [user_ken.email]
16
+ user_email.from.must_equal ['rails@minitest.spec']
17
+ user_email.body.encoded.must_equal "Welcome to MiniTest::Spec #{user_ken.email}!"
18
+ end
6
19
 
7
- tests UserMailer
20
+ it 'allows custom assertions' do
21
+ assert_emails(1) { user_email }
22
+ end
8
23
 
9
- let(:deliveries) { ActionMailer::Base.deliveries }
10
- let(:user_mailer_class) { UserMailer }
11
- let(:user_email) { user_mailer_class.deliver_welcome(user_ken) }
24
+ it 'can find the mailer_class' do
25
+ self.class.mailer_class.must_equal user_mailer_class
26
+ end
12
27
 
13
- it 'works' do
14
- deliveries.must_be :empty?
15
- user_email
16
- deliveries.wont_be :empty?
17
- user_email.to.must_equal [user_ken.email]
18
- user_email.from.must_equal ['rails@minitest.spec']
19
- user_email.body.must_equal "Welcome to MiniTest::Spec #{user_ken.email}!"
20
- end
28
+ describe 'nested 1' do
21
29
 
22
- it 'allows custom assertions' do
23
- assert_emails(1) { user_email }
24
- end
30
+ it('works') { skip }
25
31
 
26
32
  it 'can find the mailer_class' do
27
- self.class.mailer_class.must_equal user_mailer_class
33
+ self.class.mailer_class.must_equal user_mailer_class unless rails30?
28
34
  end
29
35
 
30
- describe 'nested 1' do
36
+ describe 'nested 2' do
31
37
 
32
38
  it('works') { skip }
33
39
 
34
- it 'can find the mailer_class' do
35
- self.class.mailer_class.must_equal user_mailer_class
36
- end
37
-
38
- describe 'nested 2' do
39
-
40
- it('works') { skip }
41
-
42
- end
43
-
44
40
  end
45
-
41
+
46
42
  end
43
+
47
44
  end
48
45
  end
49
46
 
50
47
  class UserMailerTest < ActionMailer::TestCase
51
48
  include UserMailerTests
52
- it 'reflects' do
53
- describing_class.must_equal UserMailerTest
54
- described_class.must_equal UserMailer
55
- self.class.described_class.must_equal UserMailer
56
- end
57
- describe 'level 1' do
58
- it 'reflects' do
59
- describing_class.must_equal UserMailerTest
60
- described_class.must_equal UserMailer
61
- self.class.described_class.must_equal UserMailer
62
- end
63
- describe 'level 2' do
64
- it 'reflects' do
65
- describing_class.must_equal UserMailerTest
66
- described_class.must_equal UserMailer
67
- self.class.described_class.must_equal UserMailer
68
- end
69
- end
70
- end
71
49
  end
72
50
 
73
51
  describe UserMailer do
74
52
  include UserMailerTests
75
- it 'reflects' do
76
- described_class.must_equal UserMailer
77
- self.class.described_class.must_equal UserMailer
78
- end
79
- describe 'level 1' do
80
- it 'reflects' do
81
- described_class.must_equal UserMailer
82
- self.class.described_class.must_equal UserMailer
83
- end
84
- describe 'level 2' do
85
- it 'reflects' do
86
- described_class.must_equal UserMailer
87
- self.class.described_class.must_equal UserMailer
88
- end
89
- end
90
- end
91
53
  end
@@ -1,72 +1,36 @@
1
1
  require 'test_helper_dummy'
2
2
 
3
3
  module UserTests
4
- def self.included(klass)
5
- klass.class_eval do
4
+ extend ActiveSupport::Concern
5
+ included do
6
6
 
7
- it 'works' do
8
- user_ken.must_be_instance_of User
9
- end
7
+ it 'works' do
8
+ user_ken.must_be_instance_of User
9
+ end
10
10
 
11
- it 'allows custom assertions' do
12
- assert_blank ''
13
- end
11
+ it 'allows custom assertions' do
12
+ assert_blank '' if rails3?
13
+ end
14
14
 
15
- describe 'nested 1' do
15
+ describe 'nested 1' do
16
16
 
17
- it('works') { skip }
17
+ it('works') { skip }
18
18
 
19
- describe 'nested 2' do
19
+ describe 'nested 2' do
20
20
 
21
- it('works') { skip }
22
-
23
- end
21
+ it('works') { skip }
24
22
 
25
23
  end
26
-
24
+
27
25
  end
26
+
28
27
  end
29
28
  end
30
29
 
31
30
  class UserTest < ActiveSupport::TestCase
32
31
  include UserTests
33
- it 'reflects' do
34
- describing_class.must_equal UserTest
35
- described_class.must_equal User
36
- self.class.described_class.must_equal User
37
- end
38
- describe 'level 1' do
39
- it 'reflects' do
40
- describing_class.must_equal UserTest
41
- described_class.must_equal User
42
- self.class.described_class.must_equal User
43
- end
44
- describe 'level 2' do
45
- it 'reflects' do
46
- describing_class.must_equal UserTest
47
- described_class.must_equal User
48
- self.class.described_class.must_equal User
49
- end
50
- end
51
- end
52
32
  end
53
33
 
54
34
  describe User do
55
35
  include UserTests
56
- it 'reflects' do
57
- described_class.must_equal User
58
- self.class.described_class.must_equal User
59
- end
60
- describe 'level 1' do
61
- it 'reflects' do
62
- described_class.must_equal User
63
- self.class.described_class.must_equal User
64
- end
65
- describe 'level 2' do
66
- it 'reflects' do
67
- described_class.must_equal User
68
- self.class.described_class.must_equal User
69
- end
70
- end
71
- end
72
36
  end