rspec-rails 4.0.0.beta3 → 4.0.0.beta4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/Capybara.md +1 -1
  5. data/Changelog.md +48 -12
  6. data/README.md +3 -4
  7. data/lib/generators/rspec.rb +0 -6
  8. data/lib/generators/rspec/controller/controller_generator.rb +13 -5
  9. data/lib/generators/rspec/controller/templates/request_spec.rb +14 -0
  10. data/lib/generators/rspec/controller/templates/routing_spec.rb +1 -1
  11. data/lib/generators/rspec/feature/feature_generator.rb +2 -2
  12. data/lib/generators/rspec/generators/generator_generator.rb +1 -1
  13. data/lib/generators/rspec/helper/helper_generator.rb +1 -1
  14. data/lib/generators/rspec/install/install_generator.rb +4 -4
  15. data/lib/generators/rspec/install/templates/spec/rails_helper.rb +2 -15
  16. data/lib/generators/rspec/integration/integration_generator.rb +3 -3
  17. data/lib/generators/rspec/mailer/mailer_generator.rb +1 -1
  18. data/lib/generators/rspec/model/model_generator.rb +4 -4
  19. data/lib/generators/rspec/scaffold/scaffold_generator.rb +10 -10
  20. data/lib/generators/rspec/scaffold/templates/api_controller_spec.rb +0 -36
  21. data/lib/generators/rspec/scaffold/templates/controller_spec.rb +10 -10
  22. data/lib/generators/rspec/scaffold/templates/edit_spec.rb +1 -1
  23. data/lib/generators/rspec/scaffold/templates/index_spec.rb +2 -2
  24. data/lib/generators/rspec/scaffold/templates/new_spec.rb +1 -1
  25. data/lib/generators/rspec/scaffold/templates/routing_spec.rb +8 -10
  26. data/lib/generators/rspec/scaffold/templates/show_spec.rb +1 -1
  27. data/lib/generators/rspec/system/system_generator.rb +1 -1
  28. data/lib/generators/rspec/view/view_generator.rb +2 -2
  29. data/lib/rspec-rails.rb +4 -7
  30. data/lib/rspec/rails/adapters.rb +8 -74
  31. data/lib/rspec/rails/configuration.rb +32 -32
  32. data/lib/rspec/rails/example/controller_example_group.rb +4 -4
  33. data/lib/rspec/rails/example/feature_example_group.rb +5 -7
  34. data/lib/rspec/rails/example/helper_example_group.rb +2 -10
  35. data/lib/rspec/rails/example/rails_example_group.rb +1 -1
  36. data/lib/rspec/rails/example/system_example_group.rb +6 -3
  37. data/lib/rspec/rails/example/view_example_group.rb +38 -48
  38. data/lib/rspec/rails/extensions/active_record/proxy.rb +1 -9
  39. data/lib/rspec/rails/feature_check.rb +1 -28
  40. data/lib/rspec/rails/fixture_file_upload_support.rb +1 -1
  41. data/lib/rspec/rails/fixture_support.rb +8 -13
  42. data/lib/rspec/rails/matchers/action_cable.rb +1 -1
  43. data/lib/rspec/rails/matchers/active_job.rb +124 -14
  44. data/lib/rspec/rails/matchers/base_matcher.rb +4 -10
  45. data/lib/rspec/rails/matchers/have_enqueued_mail.rb +5 -2
  46. data/lib/rspec/rails/matchers/have_http_status.rb +7 -7
  47. data/lib/rspec/rails/matchers/routing_matchers.rb +10 -10
  48. data/lib/rspec/rails/tasks/rspec.rake +3 -13
  49. data/lib/rspec/rails/vendor/capybara.rb +10 -10
  50. data/lib/rspec/rails/version.rb +1 -1
  51. data/lib/rspec/rails/view_path_builder.rb +1 -1
  52. data/lib/rspec/rails/view_rendering.rb +3 -3
  53. metadata +16 -17
  54. metadata.gz.sig +0 -0
  55. data/lib/generators/rspec/observer/observer_generator.rb +0 -13
  56. data/lib/generators/rspec/observer/templates/observer_spec.rb +0 -7
@@ -1,7 +1,9 @@
1
1
  module RSpec
2
2
  module Rails
3
3
  module Matchers
4
- # @ api private
4
+ # @api private
5
+ #
6
+ # Base class to build matchers. Should not be instantiated directly.
5
7
  class BaseMatcher
6
8
  include RSpec::Matchers::Composable
7
9
 
@@ -119,15 +121,7 @@ module RSpec
119
121
  raise "#{self.class.name} needs to supply#{ivar_list}"
120
122
  end
121
123
 
122
- if RUBY_VERSION.to_f < 1.9
123
- # :nocov:
124
- def present_ivars
125
- instance_variables.map(&:to_sym)
126
- end
127
- # :nocov:
128
- else
129
- alias present_ivars instance_variables
130
- end
124
+ alias present_ivars instance_variables
131
125
 
132
126
  # @private
133
127
  module HashFormatting
@@ -1,4 +1,7 @@
1
- require "rspec/mocks"
1
+ # We require the minimum amount of rspec-mocks possible to avoid
2
+ # conflicts with other mocking frameworks.
3
+ # See: https://github.com/rspec/rspec-rails/issues/2252
4
+ require "rspec/mocks/argument_matchers"
2
5
  require "rspec/rails/matchers/active_job"
3
6
 
4
7
  module RSpec
@@ -11,7 +14,7 @@ module RSpec
11
14
  class HaveEnqueuedMail < ActiveJob::HaveEnqueuedJob
12
15
  MAILER_JOB_METHOD = 'deliver_now'.freeze
13
16
 
14
- include RSpec::Mocks::ExampleMethods
17
+ include RSpec::Mocks::ArgumentMatchers
15
18
 
16
19
  def initialize(mailer_class, method_name)
17
20
  super(nil)
@@ -73,7 +73,7 @@ module RSpec
73
73
  # @example
74
74
  # expect(response).to have_http_status(404)
75
75
  #
76
- # @see RSpec::Rails::Matchers.have_http_status
76
+ # @see RSpec::Rails::Matchers#have_http_status
77
77
  class NumericCode < RSpec::Rails::Matchers::BaseMatcher
78
78
  include HaveHttpStatus
79
79
 
@@ -123,7 +123,7 @@ module RSpec
123
123
  # @example
124
124
  # expect(response).to have_http_status(:created)
125
125
  #
126
- # @see RSpec::Rails::Matchers.have_http_status
126
+ # @see RSpec::Rails::Matchers#have_http_status
127
127
  # @see https://github.com/rack/rack/blob/master/lib/rack/utils.rb `Rack::Utils::SYMBOL_TO_STATUS_CODE`
128
128
  class SymbolicStatus < RSpec::Rails::Matchers::BaseMatcher
129
129
  include HaveHttpStatus
@@ -236,8 +236,8 @@ module RSpec
236
236
  # expect(response).to have_http_status(:missing)
237
237
  # expect(response).to have_http_status(:redirect)
238
238
  #
239
- # @see RSpec::Rails::Matchers.have_http_status
240
- # @see ActionDispatch::TestResponse
239
+ # @see RSpec::Rails::Matchers#have_http_status
240
+ # @see https://github.com/rails/rails/blob/6-0-stable/actionpack/lib/action_dispatch/testing/test_response.rb `ActionDispatch::TestResponse`
241
241
  class GenericStatus < RSpec::Rails::Matchers::BaseMatcher
242
242
  include HaveHttpStatus
243
243
 
@@ -293,9 +293,9 @@ module RSpec
293
293
  protected
294
294
 
295
295
  RESPONSE_METHODS = {
296
- :success => 'successful',
297
- :error => 'server_error',
298
- :missing => 'not_found'
296
+ success: 'successful',
297
+ error: 'server_error',
298
+ missing: 'not_found'
299
299
  }.freeze
300
300
 
301
301
  def check_expected_status(test_response, expected)
@@ -14,7 +14,7 @@ module RSpec
14
14
  @expected.merge!(expected[0])
15
15
  else
16
16
  controller, action = expected[0].split('#')
17
- @expected.merge!(:controller => controller, :action => action)
17
+ @expected.merge!(controller: controller, action: action)
18
18
  end
19
19
  end
20
20
 
@@ -26,7 +26,7 @@ module RSpec
26
26
  path, query = *verb_to_path_map.values.first.split('?')
27
27
  @scope.assert_recognizes(
28
28
  @expected,
29
- { :method => verb_to_path_map.keys.first, :path => path },
29
+ { method: verb_to_path_map.keys.first, path: path },
30
30
  Rack::Utils.parse_nested_query(query)
31
31
  )
32
32
  end
@@ -50,12 +50,12 @@ module RSpec
50
50
  #
51
51
  # @example
52
52
  #
53
- # expect(:get => "/things/special").to route_to(
54
- # :controller => "things",
55
- # :action => "special"
53
+ # expect(get: "/things/special").to route_to(
54
+ # controller: "things",
55
+ # action: "special"
56
56
  # )
57
57
  #
58
- # expect(:get => "/things/special").to route_to("things#special")
58
+ # expect(get: "/things/special").to route_to("things#special")
59
59
  #
60
60
  # @see https://api.rubyonrails.org/classes/ActionDispatch/Assertions/RoutingAssertions.html#method-i-assert_recognizes
61
61
  def route_to(*expected)
@@ -72,7 +72,7 @@ module RSpec
72
72
  @actual = path
73
73
  match_unless_raises ActionController::RoutingError do
74
74
  @routing_options = @scope.routes.recognize_path(
75
- path.values.first, :method => path.keys.first
75
+ path.values.first, method: path.keys.first
76
76
  )
77
77
  end
78
78
  end
@@ -95,9 +95,9 @@ module RSpec
95
95
  # `RouteSet#recognize_path`.
96
96
  #
97
97
  # @example You can use route helpers provided by rspec-rails.
98
- # expect(:get => "/a/path").to be_routable
99
- # expect(:post => "/another/path").to be_routable
100
- # expect(:put => "/yet/another/path").to be_routable
98
+ # expect(get: "/a/path").to be_routable
99
+ # expect(post: "/another/path").to be_routable
100
+ # expect(put: "/yet/another/path").to be_routable
101
101
  def be_routable
102
102
  BeRoutableMatcher.new(self)
103
103
  end
@@ -3,12 +3,12 @@ if default = Rake.application.instance_variable_get('@tasks')['default']
3
3
  default.prerequisites.delete('test')
4
4
  end
5
5
 
6
- task :default => :spec
6
+ task default: :spec
7
7
 
8
- task :stats => "spec:statsetup"
8
+ task stats: "spec:statsetup"
9
9
 
10
10
  desc "Run all specs in spec directory (excluding plugin specs)"
11
- RSpec::Core::RakeTask.new(:spec => "spec:prepare")
11
+ RSpec::Core::RakeTask.new(spec: "spec:prepare")
12
12
 
13
13
  namespace :spec do
14
14
  types = begin
@@ -35,16 +35,6 @@ namespace :spec do
35
35
  end
36
36
  end
37
37
 
38
- # RCov task only enabled for Ruby 1.8
39
- if RUBY_VERSION < '1.9'
40
- desc "Run all specs with rcov"
41
- RSpec::Core::RakeTask.new(:rcov => "spec:prepare") do |t|
42
- t.rcov = true
43
- t.pattern = "./spec/**/*_spec.rb"
44
- t.rcov_opts = '--exclude /gems/,/Library/,/usr/,lib/tasks,.bundle,config,/lib/rspec/,/lib/rspec-,spec'
45
- end
46
- end
47
-
48
38
  task :statsetup do
49
39
  require 'rails/code_statistics'
50
40
  types.each do |type, dir|
@@ -16,24 +16,24 @@ if defined?(Capybara)
16
16
 
17
17
  RSpec.configure do |c|
18
18
  if defined?(Capybara::DSL)
19
- c.include Capybara::DSL, :type => :feature
19
+ c.include Capybara::DSL, type: :feature
20
20
  if defined?(ActionPack) && ActionPack::VERSION::STRING >= "5.1"
21
- c.include Capybara::DSL, :type => :system
21
+ c.include Capybara::DSL, type: :system
22
22
  end
23
23
  end
24
24
 
25
25
  if defined?(Capybara::RSpecMatchers)
26
- c.include Capybara::RSpecMatchers, :type => :view
27
- c.include Capybara::RSpecMatchers, :type => :helper
28
- c.include Capybara::RSpecMatchers, :type => :mailer
29
- c.include Capybara::RSpecMatchers, :type => :controller
30
- c.include Capybara::RSpecMatchers, :type => :feature
31
- c.include Capybara::RSpecMatchers, :type => :system
26
+ c.include Capybara::RSpecMatchers, type: :view
27
+ c.include Capybara::RSpecMatchers, type: :helper
28
+ c.include Capybara::RSpecMatchers, type: :mailer
29
+ c.include Capybara::RSpecMatchers, type: :controller
30
+ c.include Capybara::RSpecMatchers, type: :feature
31
+ c.include Capybara::RSpecMatchers, type: :system
32
32
  end
33
33
 
34
34
  unless defined?(Capybara::RSpecMatchers) || defined?(Capybara::DSL)
35
- c.include Capybara, :type => :request
36
- c.include Capybara, :type => :controller
35
+ c.include Capybara, type: :request
36
+ c.include Capybara, type: :controller
37
37
  end
38
38
  end
39
39
  end
@@ -3,7 +3,7 @@ module RSpec
3
3
  # Version information for RSpec Rails.
4
4
  module Version
5
5
  # Current version of RSpec Rails, in semantic versioning format.
6
- STRING = '4.0.0.beta3'
6
+ STRING = '4.0.0.beta4'
7
7
  end
8
8
  end
9
9
  end
@@ -20,7 +20,7 @@ module RSpec
20
20
  # view_path_builder.path_for({ :controller => 'posts', :action => 'delete' })
21
21
  # # => ActionController::UrlGenerationError: No route matches {:action=>"delete", :controller=>"posts"}
22
22
  def path_for(path_params)
23
- url_for(path_params.merge(:only_path => true))
23
+ url_for(path_params.merge(only_path: true))
24
24
  rescue => e
25
25
  e.message
26
26
  end
@@ -55,9 +55,9 @@ module RSpec
55
55
  "",
56
56
  template.identifier,
57
57
  EmptyTemplateHandler,
58
- :virtual_path => template.virtual_path,
59
- :format => template_format(template),
60
- :locals => []
58
+ virtual_path: template.virtual_path,
59
+ format: template_format(template),
60
+ locals: []
61
61
  )
62
62
  end
63
63
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.beta3
4
+ version: 4.0.0.beta4
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Chelimsky
@@ -44,7 +44,7 @@ cert_chain:
44
44
  ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
45
45
  F3MdtaDehhjC
46
46
  -----END CERTIFICATE-----
47
- date: 2019-10-18 00:00:00.000000000 Z
47
+ date: 2020-01-12 00:00:00.000000000 Z
48
48
  dependencies:
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: activesupport
@@ -94,56 +94,56 @@ dependencies:
94
94
  requirements:
95
95
  - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: '3.8'
97
+ version: '3.9'
98
98
  type: :runtime
99
99
  prerelease: false
100
100
  version_requirements: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - "~>"
103
103
  - !ruby/object:Gem::Version
104
- version: '3.8'
104
+ version: '3.9'
105
105
  - !ruby/object:Gem::Dependency
106
106
  name: rspec-expectations
107
107
  requirement: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - "~>"
110
110
  - !ruby/object:Gem::Version
111
- version: '3.8'
111
+ version: '3.9'
112
112
  type: :runtime
113
113
  prerelease: false
114
114
  version_requirements: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - "~>"
117
117
  - !ruby/object:Gem::Version
118
- version: '3.8'
118
+ version: '3.9'
119
119
  - !ruby/object:Gem::Dependency
120
120
  name: rspec-mocks
121
121
  requirement: !ruby/object:Gem::Requirement
122
122
  requirements:
123
123
  - - "~>"
124
124
  - !ruby/object:Gem::Version
125
- version: '3.8'
125
+ version: '3.9'
126
126
  type: :runtime
127
127
  prerelease: false
128
128
  version_requirements: !ruby/object:Gem::Requirement
129
129
  requirements:
130
130
  - - "~>"
131
131
  - !ruby/object:Gem::Version
132
- version: '3.8'
132
+ version: '3.9'
133
133
  - !ruby/object:Gem::Dependency
134
134
  name: rspec-support
135
135
  requirement: !ruby/object:Gem::Requirement
136
136
  requirements:
137
137
  - - "~>"
138
138
  - !ruby/object:Gem::Version
139
- version: '3.8'
139
+ version: '3.9'
140
140
  type: :runtime
141
141
  prerelease: false
142
142
  version_requirements: !ruby/object:Gem::Requirement
143
143
  requirements:
144
144
  - - "~>"
145
145
  - !ruby/object:Gem::Version
146
- version: '3.8'
146
+ version: '3.9'
147
147
  - !ruby/object:Gem::Dependency
148
148
  name: cucumber
149
149
  requirement: !ruby/object:Gem::Requirement
@@ -164,14 +164,14 @@ dependencies:
164
164
  requirements:
165
165
  - - "~>"
166
166
  - !ruby/object:Gem::Version
167
- version: 0.5.4
167
+ version: 0.14.12
168
168
  type: :development
169
169
  prerelease: false
170
170
  version_requirements: !ruby/object:Gem::Requirement
171
171
  requirements:
172
172
  - - "~>"
173
173
  - !ruby/object:Gem::Version
174
- version: 0.5.4
174
+ version: 0.14.12
175
175
  - !ruby/object:Gem::Dependency
176
176
  name: ammeter
177
177
  requirement: !ruby/object:Gem::Requirement
@@ -186,7 +186,7 @@ dependencies:
186
186
  - - "~>"
187
187
  - !ruby/object:Gem::Version
188
188
  version: 1.1.2
189
- description: rspec-rails is a testing framework for Rails 4+.
189
+ description: rspec-rails is a testing framework for Rails 5+.
190
190
  email: rspec@googlegroups.com
191
191
  executables: []
192
192
  extensions: []
@@ -203,6 +203,7 @@ files:
203
203
  - lib/generators/rspec/channel/templates/channel_spec.rb.erb
204
204
  - lib/generators/rspec/controller/controller_generator.rb
205
205
  - lib/generators/rspec/controller/templates/controller_spec.rb
206
+ - lib/generators/rspec/controller/templates/request_spec.rb
206
207
  - lib/generators/rspec/controller/templates/routing_spec.rb
207
208
  - lib/generators/rspec/controller/templates/view_spec.rb
208
209
  - lib/generators/rspec/feature/feature_generator.rb
@@ -227,8 +228,6 @@ files:
227
228
  - lib/generators/rspec/model/model_generator.rb
228
229
  - lib/generators/rspec/model/templates/fixtures.yml
229
230
  - lib/generators/rspec/model/templates/model_spec.rb
230
- - lib/generators/rspec/observer/observer_generator.rb
231
- - lib/generators/rspec/observer/templates/observer_spec.rb
232
231
  - lib/generators/rspec/request/request_generator.rb
233
232
  - lib/generators/rspec/scaffold/scaffold_generator.rb
234
233
  - lib/generators/rspec/scaffold/templates/api_controller_spec.rb
@@ -295,7 +294,7 @@ licenses:
295
294
  - MIT
296
295
  metadata:
297
296
  bug_tracker_uri: https://github.com/rspec/rspec-rails/issues
298
- changelog_uri: https://github.com/rspec/rspec-rails/blob/v4.0.0.beta3/Changelog.md
297
+ changelog_uri: https://github.com/rspec/rspec-rails/blob/v4.0.0.beta4/Changelog.md
299
298
  documentation_uri: https://rspec.info/documentation/
300
299
  mailing_list_uri: https://groups.google.com/forum/#!forum/rspec
301
300
  source_code_uri: https://github.com/rspec/rspec-rails
@@ -315,7 +314,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
315
314
  - !ruby/object:Gem::Version
316
315
  version: 1.3.1
317
316
  requirements: []
318
- rubygems_version: 3.0.6
317
+ rubygems_version: 3.1.2
319
318
  signing_key:
320
319
  specification_version: 4
321
320
  summary: RSpec for Rails
metadata.gz.sig CHANGED
Binary file
@@ -1,13 +0,0 @@
1
- require 'generators/rspec'
2
-
3
- module Rspec
4
- module Generators
5
- # @private
6
- class ObserverGenerator < Base
7
- def generate_observer_spec
8
- template 'observer_spec.rb',
9
- File.join('spec', 'models', class_path, "#{file_name}_observer_spec.rb")
10
- end
11
- end
12
- end
13
- end
@@ -1,7 +0,0 @@
1
- require 'rails_helper'
2
-
3
- <% module_namespacing do -%>
4
- RSpec.describe <%= class_name %>Observer, <%= type_metatag(:observer) %> do
5
- pending "add some examples to (or delete) #{__FILE__}"
6
- end
7
- <% end -%>