minitest-rails 2.1.1 → 2.2.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 (37) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +4 -3
  3. data/CHANGELOG.rdoc +9 -0
  4. data/Gemfile +1 -1
  5. data/Manifest.txt +8 -0
  6. data/Rakefile +1 -1
  7. data/gemfiles/4.2.gemfile +5 -0
  8. data/lib/generators/minitest/controller/templates/controller_spec.rb +1 -1
  9. data/lib/generators/minitest/helper/templates/helper_spec.rb +0 -2
  10. data/lib/generators/minitest/helper/templates/helper_test.rb +0 -2
  11. data/lib/generators/minitest/install/install_generator.rb +1 -6
  12. data/lib/generators/minitest/install/templates/test_helper.rb +2 -10
  13. data/lib/generators/minitest/job/job_generator.rb +19 -0
  14. data/lib/generators/minitest/job/templates/job_spec.rb +9 -0
  15. data/lib/generators/minitest/job/templates/job_test.rb +9 -0
  16. data/lib/generators/minitest/mailer/templates/mailer_spec.rb +4 -4
  17. data/lib/generators/minitest/model/templates/model_spec.rb +1 -1
  18. data/lib/generators/minitest/model/templates/model_test.rb +0 -2
  19. data/lib/generators/minitest/route/templates/route_spec.rb +5 -2
  20. data/lib/generators/minitest/route/templates/route_test.rb +4 -1
  21. data/lib/generators/minitest/scaffold/templates/controller_spec.rb +12 -14
  22. data/lib/generators/minitest/scaffold/templates/controller_test.rb +2 -3
  23. data/lib/minitest/rails.rb +16 -3
  24. data/lib/minitest/rails/assertions.rb +223 -1
  25. data/lib/minitest/rails/expectations.rb +205 -24
  26. data/lib/minitest/rails/version.rb +1 -1
  27. data/minitest-rails.gemspec +11 -12
  28. data/tasks/test.rake +9 -0
  29. data/test/generators/test_install_generator.rb +0 -6
  30. data/test/generators/test_job_generator.rb +45 -0
  31. data/test/helper.rb +12 -0
  32. data/test/rails/action_controller/test_expectations.rb +6 -5
  33. data/test/rails/active_job/test_assertions.rb +46 -0
  34. data/test/rails/active_job/test_expectations.rb +55 -0
  35. data/test/rails/active_job/test_spec_type.rb +49 -0
  36. data/test/rails/active_support/test_expectations.rb +4 -4
  37. metadata +14 -30
@@ -9,6 +9,11 @@ require "active_record"
9
9
  require "action_controller"
10
10
  require "action_controller/railtie"
11
11
 
12
+ begin
13
+ require "active_job"
14
+ rescue LoadError
15
+ end
16
+
12
17
  require "action_mailer"
13
18
 
14
19
  require "minitest-rails"
@@ -40,6 +45,7 @@ require "rails/test_help"
40
45
 
41
46
  module TestApp
42
47
  class Application < ::Rails::Application
48
+ config.active_support.test_order = :random
43
49
  config.secret_key_base = "abc123"
44
50
  end
45
51
  end
@@ -64,3 +70,9 @@ TestApp::Application.routes.draw do
64
70
  end
65
71
 
66
72
  ActiveRecord::Base.establish_connection adapter: "sqlite3", database: ":memory:"
73
+
74
+ if defined? ActiveJob
75
+ class UserInviteJob < ActiveJob::Base
76
+ def perform(arg = nil); end
77
+ end
78
+ end
@@ -6,6 +6,7 @@ class TestActionControllerExpectations < ActionController::TestCase
6
6
  def test_must_respond_with
7
7
  get :index
8
8
  must_respond_with :success
9
+ value(response).must_be :success?
9
10
  end
10
11
 
11
12
  def test_must_redirect_to
@@ -21,9 +22,9 @@ class TestActionControllerExpectations < ActionController::TestCase
21
22
  def test_routing_expectations
22
23
  params = { :controller => "models", :action => "index" }
23
24
  path = "/models"
24
- params.must_route_to path
25
- path.must_route_from params
26
- params.must_route_for path
25
+ value(params).must_route_to path
26
+ value(path).must_route_from params
27
+ value(params).must_route_for path
27
28
  end
28
29
 
29
30
  def test_must_dom_equal
@@ -31,8 +32,8 @@ class TestActionControllerExpectations < ActionController::TestCase
31
32
  apple_link2 = '<a target="_blank" href="http://www.example.com">Apples</a>'
32
33
  orange_link = '<a href="http://www.example.com">Oranges</a>'
33
34
 
34
- apple_link.must_dom_equal apple_link2
35
- apple_link.wont_dom_equal orange_link
35
+ value(apple_link).must_dom_equal apple_link2
36
+ value(apple_link).wont_dom_equal orange_link
36
37
  end
37
38
 
38
39
  def test_must_select
@@ -0,0 +1,46 @@
1
+ require "helper"
2
+
3
+ if defined? ActiveJob # Rails 4.2 and later.
4
+ class TestActiveJobAssertions < ActiveJob::TestCase
5
+ def test_assert_enqueued_jobs
6
+ assert_enqueued_jobs 0
7
+ UserInviteJob.logger.silence { UserInviteJob.perform_later }
8
+ assert_enqueued_jobs 1
9
+ end
10
+
11
+ def test_assert_no_enqueued_jobs
12
+ assert_no_enqueued_jobs
13
+ UserInviteJob.new
14
+ assert_no_enqueued_jobs
15
+ end
16
+
17
+ def test_assert_performed_jobs
18
+ assert_performed_jobs 0
19
+ assert_performed_jobs 2 do
20
+ UserInviteJob.logger.silence do
21
+ UserInviteJob.perform_later
22
+ UserInviteJob.perform_later
23
+ end
24
+ end
25
+ end
26
+
27
+ def test_assert_no_performed_jobs
28
+ assert_no_performed_jobs
29
+ assert_no_performed_jobs do
30
+ UserInviteJob.new
31
+ end
32
+ end
33
+
34
+ def test_assert_enqueued_with
35
+ assert_enqueued_with job: UserInviteJob, args: [209] do
36
+ UserInviteJob.logger.silence { UserInviteJob.perform_later(209) }
37
+ end
38
+ end
39
+
40
+ def test_assert_performed_with
41
+ assert_performed_with job: UserInviteJob, args: [107] do
42
+ UserInviteJob.logger.silence { UserInviteJob.perform_later(107) }
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,55 @@
1
+ require "helper"
2
+
3
+ if defined? ActiveJob # Rails 4.2 and later.
4
+ module ActiveJobExpectationTests
5
+ def test_must_enqueue_jobs
6
+ must_enqueue_jobs 0
7
+ UserInviteJob.logger.silence { UserInviteJob.perform_later }
8
+ must_enqueue_jobs 1
9
+ end
10
+
11
+ def test_wont_enqueue_jobs
12
+ wont_enqueue_jobs
13
+ UserInviteJob.new
14
+ wont_enqueue_jobs
15
+ end
16
+
17
+ def test_must_perform_jobs
18
+ must_perform_jobs 0
19
+ must_perform_jobs 2 do
20
+ UserInviteJob.logger.silence do
21
+ UserInviteJob.perform_later
22
+ UserInviteJob.perform_later
23
+ end
24
+ end
25
+ end
26
+
27
+ def test_wont_perform_jobs
28
+ wont_perform_jobs
29
+ wont_perform_jobs do
30
+ UserInviteJob.new
31
+ end
32
+ end
33
+
34
+ def test_must_enqueue_with
35
+ must_enqueue_with job: UserInviteJob, args: [209] do
36
+ UserInviteJob.logger.silence { UserInviteJob.perform_later(209) }
37
+ end
38
+ end
39
+
40
+ def test_must_perform_with
41
+ must_perform_with job: UserInviteJob, args: [107] do
42
+ UserInviteJob.logger.silence { UserInviteJob.perform_later(107) }
43
+ end
44
+ end
45
+ end
46
+
47
+ class TestActiveJobExpectations < ActiveJob::TestCase
48
+ include ActiveJobExpectationTests
49
+ end
50
+
51
+ class TestActiveJobExpectationInCustomTestCase < ActiveSupport::TestCase
52
+ include Minitest::Rails::Expectations::ActiveJob
53
+ include ActiveJobExpectationTests
54
+ end
55
+ end
@@ -0,0 +1,49 @@
1
+ require "helper"
2
+
3
+ if defined? ActiveJob # Rails 4.2 and later.
4
+ class UserInviteJob < ActiveJob::Base; end
5
+ class InviteUser < ActiveJob::Base; end
6
+
7
+ class TestActiveJobSpecType < Minitest::Test
8
+ def assert_job actual
9
+ assert_equal ActiveJob::TestCase, actual
10
+ end
11
+
12
+ def refute_job actual
13
+ refute_equal ActiveJob::TestCase, actual
14
+ end
15
+
16
+ def test_spec_type_resolves_for_class_constants
17
+ assert_job Minitest::Spec.spec_type(UserInviteJob)
18
+ assert_job Minitest::Spec.spec_type(InviteUser)
19
+ end
20
+
21
+ def test_spec_type_resolves_for_matching_string
22
+ assert_job Minitest::Spec.spec_type("UserInviteJob")
23
+ assert_job Minitest::Spec.spec_type("UserInviteJobTest")
24
+ assert_job Minitest::Spec.spec_type("User Invite Job Test")
25
+ # And is not case sensitive
26
+ assert_job Minitest::Spec.spec_type("userinvitejob")
27
+ assert_job Minitest::Spec.spec_type("userinvitejobtest")
28
+ assert_job Minitest::Spec.spec_type("user invite job test")
29
+ end
30
+
31
+ def test_spec_type_wont_match_non_space_characters
32
+ refute_job Minitest::Spec.spec_type("User Invite Job\tTest")
33
+ refute_job Minitest::Spec.spec_type("User Invite Job\rTest")
34
+ refute_job Minitest::Spec.spec_type("User Invite Job\nTest")
35
+ refute_job Minitest::Spec.spec_type("User Invite Job\fTest")
36
+ refute_job Minitest::Spec.spec_type("User Invite JobXTest")
37
+ end
38
+
39
+ def test_spec_type_doesnt_resolve_random_strings
40
+ refute_job Minitest::Spec.spec_type("Unmatched String")
41
+ end
42
+
43
+ def test_spec_type_resolves_for_additional_desc_job
44
+ assert_job Minitest::Spec.spec_type("Unmatched String", :job)
45
+ assert_job Minitest::Spec.spec_type("Unmatched String", :job, :other)
46
+ assert_job Minitest::Spec.spec_type("Unmatched String", :other, :job)
47
+ end
48
+ end
49
+ end
@@ -6,16 +6,16 @@ class TestActiveSupportExpectations < ActiveSupport::TestCase
6
6
  def test_must_change
7
7
  counter = 0
8
8
 
9
- lambda { counter += 1 }.must_change "counter", +1
9
+ value { counter += 1 }.must_change "counter", +1
10
10
 
11
- lambda { counter += 3 }.must_change "counter", +3
11
+ value { counter += 3 }.must_change "counter", +3
12
12
 
13
- lambda { counter -= 1 }.must_change "counter", -1
13
+ value { counter -= 1 }.must_change "counter", -1
14
14
  end
15
15
 
16
16
  def test_wont_change
17
17
  counter = 0
18
18
 
19
- lambda { counter = 0 }.wont_change "counter"
19
+ value { counter = 0 }.wont_change "counter"
20
20
  end
21
21
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Moore
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-28 00:00:00.000000000 Z
11
+ date: 2015-05-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '5.4'
19
+ version: '5.7'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '5.4'
26
+ version: '5.7'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: railties
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -100,6 +100,7 @@ files:
100
100
  - README.rdoc
101
101
  - Rakefile
102
102
  - gemfiles/4.1.gemfile
103
+ - gemfiles/4.2.gemfile
103
104
  - lib/generators/.document
104
105
  - lib/generators/minitest.rb
105
106
  - lib/generators/minitest/controller/controller_generator.rb
@@ -116,6 +117,9 @@ files:
116
117
  - lib/generators/minitest/integration/integration_generator.rb
117
118
  - lib/generators/minitest/integration/templates/integration_spec.rb
118
119
  - lib/generators/minitest/integration/templates/integration_test.rb
120
+ - lib/generators/minitest/job/job_generator.rb
121
+ - lib/generators/minitest/job/templates/job_spec.rb
122
+ - lib/generators/minitest/job/templates/job_test.rb
119
123
  - lib/generators/minitest/mailer/mailer_generator.rb
120
124
  - lib/generators/minitest/mailer/templates/mailer_spec.rb
121
125
  - lib/generators/minitest/mailer/templates/mailer_test.rb
@@ -143,6 +147,7 @@ files:
143
147
  - test/generators/test_generator_generator.rb
144
148
  - test/generators/test_helper_generator.rb
145
149
  - test/generators/test_install_generator.rb
150
+ - test/generators/test_job_generator.rb
146
151
  - test/generators/test_mailer_generator.rb
147
152
  - test/generators/test_model_generator.rb
148
153
  - test/generators/test_route_generator.rb
@@ -157,6 +162,9 @@ files:
157
162
  - test/rails/action_mailer/test_spec_type.rb
158
163
  - test/rails/action_view/test_helpers.rb
159
164
  - test/rails/action_view/test_spec_type.rb
165
+ - test/rails/active_job/test_assertions.rb
166
+ - test/rails/active_job/test_expectations.rb
167
+ - test/rails/active_job/test_spec_type.rb
160
168
  - test/rails/active_support/test_assertions.rb
161
169
  - test/rails/active_support/test_expectations.rb
162
170
  - test/rails/active_support/test_spec_type.rb
@@ -186,32 +194,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
186
194
  version: '0'
187
195
  requirements: []
188
196
  rubyforge_project:
189
- rubygems_version: 2.2.2
197
+ rubygems_version: 2.4.6
190
198
  signing_key:
191
199
  specification_version: 4
192
200
  summary: Minitest integration for Rails
193
- test_files:
194
- - test/generators/test_controller_generator.rb
195
- - test/generators/test_generator_generator.rb
196
- - test/generators/test_helper_generator.rb
197
- - test/generators/test_install_generator.rb
198
- - test/generators/test_mailer_generator.rb
199
- - test/generators/test_model_generator.rb
200
- - test/generators/test_route_generator.rb
201
- - test/generators/test_scaffold_generator.rb
202
- - test/rails/action_controller/test_assertions.rb
203
- - test/rails/action_controller/test_controllers.rb
204
- - test/rails/action_controller/test_expectations.rb
205
- - test/rails/action_controller/test_spec_type.rb
206
- - test/rails/action_dispatch/test_spec_type.rb
207
- - test/rails/action_mailer/test_mailers.rb
208
- - test/rails/action_mailer/test_spec_type.rb
209
- - test/rails/action_view/test_helpers.rb
210
- - test/rails/action_view/test_spec_type.rb
211
- - test/rails/active_support/test_assertions.rb
212
- - test/rails/active_support/test_expectations.rb
213
- - test/rails/active_support/test_spec_type.rb
214
- - test/rails/generators/test_spec_type.rb
215
- - test/rails/test_constant_lookup.rb
216
- - test/test_sanity.rb
217
- - test/rails/minitest_5_api_test.rb
201
+ test_files: []