minitest-spec-rails 3.1.2 → 4.3.0

Sign up to get free protection for your applications and to get access to all the features.
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