rspec-rails 4.0.0.beta3 → 4.0.2

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 (64) 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 +5 -54
  5. data/Changelog.md +61 -7
  6. data/README.md +20 -19
  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_generator.rb +2 -2
  13. data/lib/generators/rspec/{generators → generator}/templates/generator_spec.rb +0 -0
  14. data/lib/generators/rspec/helper/helper_generator.rb +1 -1
  15. data/lib/generators/rspec/install/install_generator.rb +4 -4
  16. data/lib/generators/rspec/install/templates/spec/rails_helper.rb +17 -16
  17. data/lib/generators/rspec/integration/integration_generator.rb +3 -3
  18. data/lib/generators/rspec/mailer/mailer_generator.rb +1 -1
  19. data/lib/generators/rspec/model/model_generator.rb +4 -4
  20. data/lib/generators/rspec/scaffold/scaffold_generator.rb +26 -18
  21. data/lib/generators/rspec/scaffold/templates/api_controller_spec.rb +0 -36
  22. data/lib/generators/rspec/scaffold/templates/api_request_spec.rb +131 -0
  23. data/lib/generators/rspec/scaffold/templates/controller_spec.rb +10 -10
  24. data/lib/generators/rspec/scaffold/templates/edit_spec.rb +1 -1
  25. data/lib/generators/rspec/scaffold/templates/index_spec.rb +2 -2
  26. data/lib/generators/rspec/scaffold/templates/new_spec.rb +1 -1
  27. data/lib/generators/rspec/scaffold/templates/request_spec.rb +133 -0
  28. data/lib/generators/rspec/scaffold/templates/routing_spec.rb +8 -10
  29. data/lib/generators/rspec/scaffold/templates/show_spec.rb +1 -1
  30. data/lib/generators/rspec/system/system_generator.rb +1 -1
  31. data/lib/generators/rspec/view/view_generator.rb +2 -2
  32. data/lib/rspec-rails.rb +6 -9
  33. data/lib/rspec/rails/adapters.rb +10 -76
  34. data/lib/rspec/rails/configuration.rb +72 -36
  35. data/lib/rspec/rails/example/channel_example_group.rb +2 -2
  36. data/lib/rspec/rails/example/controller_example_group.rb +4 -4
  37. data/lib/rspec/rails/example/feature_example_group.rb +6 -26
  38. data/lib/rspec/rails/example/helper_example_group.rb +2 -10
  39. data/lib/rspec/rails/example/mailbox_example_group.rb +1 -1
  40. data/lib/rspec/rails/example/mailer_example_group.rb +2 -2
  41. data/lib/rspec/rails/example/rails_example_group.rb +1 -1
  42. data/lib/rspec/rails/example/system_example_group.rb +14 -7
  43. data/lib/rspec/rails/example/view_example_group.rb +38 -48
  44. data/lib/rspec/rails/extensions/active_record/proxy.rb +5 -10
  45. data/lib/rspec/rails/feature_check.rb +1 -28
  46. data/lib/rspec/rails/fixture_file_upload_support.rb +8 -13
  47. data/lib/rspec/rails/fixture_support.rb +37 -31
  48. data/lib/rspec/rails/matchers/action_cable.rb +1 -1
  49. data/lib/rspec/rails/matchers/action_cable/have_broadcasted_to.rb +3 -3
  50. data/lib/rspec/rails/matchers/active_job.rb +132 -18
  51. data/lib/rspec/rails/matchers/base_matcher.rb +4 -10
  52. data/lib/rspec/rails/matchers/have_enqueued_mail.rb +9 -6
  53. data/lib/rspec/rails/matchers/have_http_status.rb +7 -7
  54. data/lib/rspec/rails/matchers/relation_match_array.rb +1 -1
  55. data/lib/rspec/rails/matchers/routing_matchers.rb +11 -11
  56. data/lib/rspec/rails/tasks/rspec.rake +7 -17
  57. data/lib/rspec/rails/vendor/capybara.rb +10 -15
  58. data/lib/rspec/rails/version.rb +1 -1
  59. data/lib/rspec/rails/view_path_builder.rb +1 -1
  60. data/lib/rspec/rails/view_rendering.rb +3 -3
  61. metadata +34 -33
  62. metadata.gz.sig +0 -0
  63. data/lib/generators/rspec/observer/observer_generator.rb +0 -13
  64. data/lib/generators/rspec/observer/templates/observer_spec.rb +0 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4ae59820fb98850c1f67442c749ce42e76895fca3a17f952ac36d752903fd986
4
- data.tar.gz: 713bb7441b6d66036dc73f2f9fa448419390627890ab0bf6a535c84800758939
3
+ metadata.gz: e4fdfac614970485c2587ffc56aa4f4f5a79fc2bb2bd49045d607c61fb5bc510
4
+ data.tar.gz: 0b8dabeb32e7b2d9a18c50d722f6c8ebda39610d35e8b45d329e26ff59f9046b
5
5
  SHA512:
6
- metadata.gz: 691dc937903a8aaac3e23feff435710e521082a0ace9bddc00cba9bd9ecb52610104b66458c900ababcf19a74e341affa78c109eb589faa7c25f7320db82954a
7
- data.tar.gz: 56d7c5dbd4a1e437f5f011274f084a6e1a835b0795d369fe56e53b993dbf4a199067b96f73e2ae2aad7b6c556ee6dcb6b24cd46fd12a967bfe15e50450367bce
6
+ metadata.gz: '09c2ebd8e132d6b98f84265e5175a475cf47cd9ac6145324c722f70fa82d328ce7feb5fc8b14e06a44ca18eb22bd66c124e8694ea84965d80ada15884bee4ac5'
7
+ data.tar.gz: 7a58ee48a4f590fde7c376019e531371cd576d7301318f38f1cb53baf817e75b29766d61b10f56fc367d764622478b7baf81c053e72ed63a558726c5dc35eb0e
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -1,58 +1,19 @@
1
1
  rspec-rails supports integration with Capybara out of the box by adding
2
2
  its Capybara::DSL (visit/page) and Capybara::RSpecMatchers to the
3
- examples in the applicable directories, which differ slightly between
4
- Capybara 1.x and Capybara >= 2.x.
3
+ examples in the applicable directories.
5
4
 
6
5
  ## Capybara::DSL
7
6
 
8
7
  Adds the `visit` and `page` methods, which work together to simulate a
9
8
  GET request and provide access to the result (via `page`).
10
9
 
11
- ## Capybara::RSpecMatchers
12
-
13
- Exposes matchers used to specify expected HTML content (e.g. `should_not have_selector` will work correctly).
14
-
15
- ## Capybara 1.x
16
-
17
- Capybara::DSL is added to examples in:
18
-
19
- * spec/requests # included by Capybara
20
- * spec/controllers
21
-
22
- Capybara::RSpecMatchers is added to examples in:
23
-
24
- * spec/requests # included by Capybara
25
- * spec/controllers
26
- * spec/views
27
- * spec/helpers
28
- * spec/mailers
29
-
30
- ## Capybara 2.0
31
-
32
- To use Capybara 2.0, you need rspec-rails-2.11.1 or greater.
33
-
34
10
  Capybara::DSL is added to examples in:
35
11
 
36
12
  * spec/features
37
13
 
38
- Capybara::RSpecMatchers is added to examples in:
39
-
40
- * spec/features
41
- * spec/controllers
42
- * spec/views
43
- * spec/helpers
44
- * spec/mailers
45
-
46
- ## Upgrading to Capybara-2.0
47
-
48
- Many users have been confused by the co-existence of the the
49
- Capybara::DSL (visit/page) alongside the rack-test DSL
50
- (get|post|put|delete|head/response.body) in examples in spec/requests
51
- and spec/controllers. As of rspec-rails-2.11.1 and capybara-2.0.0.beta2, these
52
- are separated as follows:
14
+ ## Capybara::RSpecMatchers
53
15
 
54
- * Capybara::DSL is included `spec/features`
55
- * rack-test DSL is included in `spec/requests` and `spec/controllers`
16
+ Exposes matchers used to specify expected HTML content (e.g. `should_not have_selector` will work correctly).
56
17
 
57
18
  Capybara::RSpecMatchers is added to examples in:
58
19
 
@@ -62,16 +23,6 @@ Capybara::RSpecMatchers is added to examples in:
62
23
  * spec/helpers
63
24
  * spec/mailers
64
25
 
65
- If you're upgrading to Capybara-2.0 and you used visit/page in
66
- spec/requests you'll want to move those examples to spec/features and
67
- they should just work.
68
-
69
- If you want to leave those examples in spec/requests, you can include
70
- Capybara::DSL in those examples yourself as follows, but this is
71
- absolutely not recommended as you will be overriding the intended
72
- behavior and accepting the risks associated with doing so:
26
+ ## Upgrading to Capybara-3.x
73
27
 
74
- # not recommended!
75
- RSpec.configure do |c|
76
- c.include Capybara::DSL, :file_path => "spec/requests"
77
- end
28
+ Consult the official [Upgrading from Capybara 2.x to 3.x](https://github.com/teamcapybara/capybara/blob/master/UPGRADING.md#upgrading-from-capybara-2x-to-3x) guide.
@@ -1,5 +1,29 @@
1
- ### Development
2
- [Full Changelog](https://github.com/rspec/rspec-rails/compare/v3.9.0...master)
1
+ ### 4.0.2 / 2020-12-26
2
+ [Full Changelog](https://github.com/rspec/rspec-rails/compare/v4.0.1...v4.0.2)
3
+
4
+ Bug Fixes:
5
+
6
+ * Indent all extra failure lines output from system specs. (Alex Robbin, #2321)
7
+ * Generated request spec for update now uses the correct let. (Paul Hanyzewski, #2344)
8
+ * Return `true`/`false` from predicate methods in config rather than raw values.
9
+ (Phil Pirozhkov, Jon Rowe, #2353, #2354)
10
+ * Remove old #fixture_path feature detection code which broke under newer Rails.
11
+ (Koen Punt, Jon Rowe, #2370)
12
+
13
+ ### 4.0.1 / 2020-05-16
14
+ [Full Changelog](https://github.com/rspec/rspec-rails/compare/v4.0.0...v4.0.1)
15
+
16
+ Bug Fixes:
17
+
18
+ * Remove warning when calling `driven_by` in system specs. (Aubin Lorieux, #2302)
19
+ * Fix comparison of times for `#at` in job matchers. (Jon Rowe, Markus Doits, #2304)
20
+ * Allow `have_enqueued_mail` to match when a sub class of `ActionMailer::DeliveryJob`
21
+ is set using `<Class>.delivery_job=`. (Atsushi Yoshida #2305)
22
+ * Restore Ruby 2.2.x compatibility. (Jon Rowe, #2332)
23
+ * Add `required_ruby_version` to gem spec. (Marc-André Lafortune, #2319, #2338)
24
+
25
+ ### 4.0.0 / 2020-03-24
26
+ [Full Changelog](https://github.com/rspec/rspec-rails/compare/v3.9.1...v4.0.0)
3
27
 
4
28
  Enhancements:
5
29
 
@@ -14,6 +38,18 @@ Enhancements:
14
38
  * Improve path parsing in view specs render options. (John Hawthorn, #2115)
15
39
  * Add routing spec template as an option for generating controller specs.
16
40
  (David Revelo, #2134)
41
+ * Add argument matcher support to `have_enqueued_*` matchers. (Phil Pirozhkov, #2206)
42
+ * Switch generated templates to use ruby 1.9 hash keys. (Tanbir Hasan, #2224)
43
+ * Add `have_been_performed`/`have_performed_job`/`perform_job` ActiveJob
44
+ matchers (Isaac Seymour, #1785)
45
+ * Default to generating request specs rather than controller specs when
46
+ generating a controller (Luka Lüdicke, #2222)
47
+ * Allow `ActiveJob` matchers `#on_queue` modifier to take symbolic queue names. (Nils Sommer, #2283)
48
+ * The scaffold generator now generates request specs in preference to controller specs.
49
+ (Luka Lüdicke, #2288)
50
+ * Add configuration option to disable ActiveRecord. (Jon Rowe, Phil Pirozhkov, Hermann Mayer, #2266)
51
+ * Set `ActionDispatch::SystemTesting::Server.silence_puma = true` when running system specs.
52
+ (ta1kt0me, Benoit Tigeot, #2289)
17
53
 
18
54
  Bug Fixes:
19
55
 
@@ -27,13 +63,31 @@ Bug Fixes:
27
63
  are generated correctly. (Jon Rowe, #2164)
28
64
  * `ActionView::FixtureResolver#hash` has been renamed to `ActionView::FixtureResolver#data`.
29
65
  (Penelope Phippen, #2076)
30
- * Add missing require for `have_enqueued_mail` matcher. (Ignatius Reza, #2117)
66
+ * Prevent `driven_by(:selenium)` being called due to hook precedence.
67
+ (Takumi Shotoku, #2188)
68
+ * Prevent a `WrongScopeError` being thrown during loading fixtures on Rails
69
+ 6.1 development version. (Edouard Chin, #2215)
70
+ * Fix Mocha mocking support with `should`. (Phil Pirozhkov, #2256)
71
+ * Restore previous conditional check for setting `default_url_options` in feature
72
+ specs, prevents a `NoMethodError` in some scenarios. (Eugene Kenny, #2277)
73
+ * Allow changing `ActiveJob::Base.queue_adapter` inside a system spec.
74
+ (Jonathan Rochkind, #2242)
75
+ * `rails generate generator` command now creates related spec file (Joel Azemar, #2217)
76
+ * Relax upper `capybara` version constraint to allow for Capybara 3.x (Phil Pirozhkov, #2281)
77
+ * Clear ActionMailer test mailbox after each example (Benoit Tigeot, #2293)
31
78
 
32
79
  Breaking Changes:
33
80
 
34
81
  * Drops support for Rails below 5.0
35
82
  * Drops support for Ruby below 2.3
36
83
 
84
+ ### 3.9.1 / 2020-03-10
85
+ [Full Changelog](http://github.com/rspec/rspec-rails/compare/v3.9.0...v3.9.1)
86
+
87
+ Bug Fixes:
88
+
89
+ * Add missing require for have_enqueued_mail matcher. (Ignatius Reza, #2117)
90
+
37
91
  ### 3.9.0 / 2019-10-08
38
92
  [Full Changelog](https://github.com/rspec/rspec-rails/compare/v3.8.3...v3.9.0)
39
93
 
@@ -341,10 +395,10 @@ Enhancements:
341
395
  * Improve controller and routing spec calls to `routes` by using `yield`
342
396
  instead of `call`. (Anton Davydov, #1308)
343
397
  * Add support for `ActiveJob` specs as standard `RSpec::Rails::RailsExampleGoup`s
344
- via both `:type => :job` and inferring type from spec directory `spec/jobs`.
398
+ via both `type: :job` and inferring type from spec directory `spec/jobs`.
345
399
  (Gabe Martin-Dempesy, #1361)
346
400
  * Include `RSpec::Rails::FixtureSupport` into example groups using metadata
347
- `:use_fixtures => true`. (Aaron Kromer, #1372)
401
+ `use_fixtures: true`. (Aaron Kromer, #1372)
348
402
  * Include `rspec:request` generator for generating request specs; this is an
349
403
  alias of `rspec:integration` (Aaron Kromer, #1378)
350
404
  * Update `rails_helper` generator with a default check to abort the spec run
@@ -485,7 +539,7 @@ Enhancements:
485
539
  Bug Fixes:
486
540
 
487
541
  * Fix an inconsistency in the generated scaffold specs for a controller. (Andy Waite)
488
- * Ensure `config.before(:all, :type => <type>)` hooks run before groups
542
+ * Ensure `config.before(:all, type: <type>)` hooks run before groups
489
543
  of the given type, even when the type is inferred by the file
490
544
  location. (Jon Rowe, Myron Marston)
491
545
  * Switch to parsing params with `Rack::Utils::parse_nested_query` to match Rails.
@@ -935,7 +989,7 @@ This release is compatible with rails-3.1.0.rc1, but not rails-3.1.0.beta1
935
989
  * Enhancements
936
990
  * include ApplicationHelper in helper object in helper specs
937
991
  * include request spec extensions in files in spec/integration
938
- * include controller spec extensions in groups that use :type => :controller
992
+ * include controller spec extensions in groups that use type: :controller
939
993
  * same for :model, :view, :helper, :mailer, :request, :routing
940
994
 
941
995
  * Bug fixes
data/README.md CHANGED
@@ -8,9 +8,10 @@ They’re also specifications (or _specs,_ for short):
8
8
  detailed explanations of how the application is supposed to behave,
9
9
  expressed in plain English.
10
10
 
11
+ Use **[`rspec-rails` 3.x][]** for Rails earlier than 5.0.
11
12
  Use **[`rspec-rails` 1.x][]** for Rails 2.x.
12
13
 
13
- [Build Status]: https://secure.travis-ci.org/rspec/rspec-rails.svg?branch=master
14
+ [Build Status]: https://secure.travis-ci.org/rspec/rspec-rails.svg?branch=main
14
15
  [travis-ci]: https://travis-ci.org/rspec/rspec-rails
15
16
  [Code Climate]: https://codeclimate.com/github/rspec/rspec-rails.svg
16
17
  [code-climate]: https://codeclimate.com/github/rspec/rspec-rails
@@ -19,6 +20,7 @@ Use **[`rspec-rails` 1.x][]** for Rails 2.x.
19
20
  [RSpec]: https://rspec.info/
20
21
  [Ruby on Rails]: https://rubyonrails.org/
21
22
  [`rspec-rails` 1.x]: https://github.com/dchelimsky/rspec-rails
23
+ [`rspec-rails` 3.x]: https://github.com/rspec/rspec-rails/tree/3-9-maintenance
22
24
 
23
25
  ## Installation
24
26
 
@@ -28,14 +30,14 @@ Use **[`rspec-rails` 1.x][]** for Rails 2.x.
28
30
  ```ruby
29
31
  # Run against the latest stable release
30
32
  group :development, :test do
31
- gem 'rspec-rails', '~> 3.8'
33
+ gem 'rspec-rails', '~> 4.0.1'
32
34
  end
33
35
 
34
- # Or, run against the master branch
35
- # (requires master-branch versions of all related RSpec libraries)
36
+ # Or, run against the main branch
37
+ # (requires main-branch versions of all related RSpec libraries)
36
38
  group :development, :test do
37
39
  %w[rspec-core rspec-expectations rspec-mocks rspec-rails rspec-support].each do |lib|
38
- gem lib, :git => "https://github.com/rspec/#{lib}.git", :branch => 'master'
40
+ gem lib, git: "https://github.com/rspec/#{lib}.git", branch: 'main'
39
41
  end
40
42
  end
41
43
  ```
@@ -119,8 +121,7 @@ $ bundle exec rspec --help
119
121
  ```
120
122
 
121
123
  **Optional:** If `bundle exec rspec` is too verbose for you,
122
- you can generate a binstub at `bin/rspec`
123
- and use that instead (Rails 4+ only):
124
+ you can generate a binstub at `bin/rspec` and use that instead:
124
125
 
125
126
  ```sh
126
127
  $ bundle binstubs rspec-core
@@ -183,17 +184,17 @@ In addition to [the matchers that come standard in RSpec][],
183
184
  here are some extras that make it easier
184
185
  to test the various parts of a Rails system:
185
186
 
186
- | RSpec matcher | Delegates to | Available in | Notes |
187
- | ------------------------ | ----------------- | ------------------------------- | -------------------------------------------------------- |
188
- | [`be_a_new`][] | | all | primarily intended for controller specs |
189
- | [`render_template`][] | `assert_template` | request / controller / view | use with `expect(response).to` |
190
- | [`redirect_to`][] | `assert_redirect` | request / controller | use with `expect(response).to` |
191
- | [`route_to`] | `assert_routing` | routing / controller | replaces `route_for` from version 1.x |
192
- | [`be_routable`] | | routing / controller | usu. for `expect(...).not_to be_routable` |
193
- | [`have_http_status`][] | | request / controller / feature | |
194
- | [`match_array`][] | | all | for comparing arrays of ActiveRecord objects |
195
- | [`have_been_enqueued`][] | | all | requires config: `ActiveJob::Base.queue_adapter = :test` |
196
- | [`have_enqueued_job`][] | | all | requires config: `ActiveJob::Base.queue_adapter = :test` |
187
+ | RSpec matcher | Delegates to | Available in | Notes |
188
+ | ------------------------ | ------------------- | ------------------------------- | -------------------------------------------------------- |
189
+ | [`be_a_new`][] | | all | primarily intended for controller specs |
190
+ | [`render_template`][] | `assert_template` | request / controller / view | use with `expect(response).to` |
191
+ | [`redirect_to`][] | `assert_redirect` | request / controller | use with `expect(response).to` |
192
+ | [`route_to`] | `assert_recognizes` | routing / controller | use with `expect(...).to route_to` |
193
+ | [`be_routable`] | | routing / controller | use with `expect(...).not_to be_routable` |
194
+ | [`have_http_status`][] | | request / controller / feature | |
195
+ | [`match_array`][] | | all | for comparing arrays of ActiveRecord objects |
196
+ | [`have_been_enqueued`][] | | all | requires config: `ActiveJob::Base.queue_adapter = :test` |
197
+ | [`have_enqueued_job`][] | | all | requires config: `ActiveJob::Base.queue_adapter = :test` |
197
198
 
198
199
  Follow the links above for examples of how each matcher is used.
199
200
 
@@ -362,7 +363,7 @@ you can run the specs and Cucumber features, or submit a pull request.
362
363
  ### Recommended third-party extensions
363
364
 
364
365
  * [FactoryBot](https://github.com/thoughtbot/factory_bot)
365
- * [Capybara](https://github.com/jnicklas/capybara)
366
+ * [Capybara](https://github.com/teamcapybara/capybara)
366
367
  (Included by default in Rails 5.1+.
367
368
  Note that [additional configuration is required][] to use the Capybara DSL
368
369
  anywhere other than system specs and feature specs.)
@@ -18,12 +18,6 @@ module Rspec
18
18
  @_rspec_source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'rspec', generator_name, 'templates'))
19
19
  end
20
20
  end
21
-
22
- if ::Rails::VERSION::STRING < '3.1'
23
- def module_namespacing
24
- yield if block_given?
25
- end
26
- end
27
21
  end
28
22
  end
29
23
  end
@@ -4,12 +4,20 @@ module Rspec
4
4
  module Generators
5
5
  # @private
6
6
  class ControllerGenerator < Base
7
- argument :actions, :type => :array, :default => [], :banner => "action action"
7
+ argument :actions, type: :array, default: [], banner: "action action"
8
8
 
9
- class_option :template_engine, :desc => "Template engine to generate view files"
10
- class_option :controller_specs, :type => :boolean, :default => true, :desc => "Generate controller specs"
11
- class_option :view_specs, :type => :boolean, :default => true, :desc => "Generate view specs"
12
- class_option :routing_specs, :type => :boolean, :default => false, :desc => "Generate routing specs"
9
+ class_option :template_engine, desc: "Template engine to generate view files"
10
+ class_option :request_specs, type: :boolean, default: true, desc: "Generate request specs"
11
+ class_option :controller_specs, type: :boolean, default: false, desc: "Generate controller specs"
12
+ class_option :view_specs, type: :boolean, default: true, desc: "Generate view specs"
13
+ class_option :routing_specs, type: :boolean, default: false, desc: "Generate routing specs"
14
+
15
+ def generate_request_spec
16
+ return unless options[:request_specs]
17
+
18
+ template 'request_spec.rb',
19
+ File.join('spec/requests', class_path, "#{file_name}_request_spec.rb")
20
+ end
13
21
 
14
22
  def generate_controller_spec
15
23
  return unless options[:controller_specs]
@@ -0,0 +1,14 @@
1
+ require 'rails_helper'
2
+
3
+ RSpec.describe "<%= class_name.pluralize %>", <%= type_metatag(:request) %> do
4
+ <% namespaced_path = regular_class_path.join('/') %>
5
+ <% for action in actions -%>
6
+ describe "GET /<%= action %>" do
7
+ it "returns http success" do
8
+ get "<%= "/#{namespaced_path}" if namespaced_path != '' %>/<%= file_name %>/<%= action %>"
9
+ expect(response).to have_http_status(:success)
10
+ end
11
+ end
12
+
13
+ <% end -%>
14
+ end
@@ -5,7 +5,7 @@ RSpec.describe '<%= class_name %>Controller', <%= type_metatag(:routing) %> do
5
5
  describe 'routing' do
6
6
  <% for action in actions -%>
7
7
  it 'routes to #<%= action %>' do
8
- expect(:get => "/<%= class_name.underscore %>/<%= action %>").to route_to("<%= class_name.underscore %>#<%= action %>")
8
+ expect(get: "/<%= class_name.underscore %>/<%= action %>").to route_to("<%= class_name.underscore %>#<%= action %>")
9
9
  end
10
10
  <% end -%>
11
11
  end
@@ -4,8 +4,8 @@ module Rspec
4
4
  module Generators
5
5
  # @private
6
6
  class FeatureGenerator < Base
7
- class_option :feature_specs, :type => :boolean, :default => true, :desc => "Generate feature specs"
8
- class_option :singularize, :type => :boolean, :default => false, :desc => "Singularize the generated feature"
7
+ class_option :feature_specs, type: :boolean, default: true, desc: "Generate feature specs"
8
+ class_option :singularize, type: :boolean, default: false, desc: "Singularize the generated feature"
9
9
 
10
10
  def generate_feature_spec
11
11
  return unless options[:feature_specs]
@@ -3,8 +3,8 @@ require 'generators/rspec'
3
3
  module Rspec
4
4
  module Generators
5
5
  # @private
6
- class GeneratorsGenerator < Base
7
- class_option :generator_specs, :type => :boolean, :default => false, :desc => "Generate generator specs"
6
+ class GeneratorGenerator < Base
7
+ class_option :generator_specs, type: :boolean, default: true, desc: "Generate generator specs"
8
8
 
9
9
  def generate_generator_spec
10
10
  return unless options[:generator_specs]
@@ -4,7 +4,7 @@ module Rspec
4
4
  module Generators
5
5
  # @private
6
6
  class HelperGenerator < Base
7
- class_option :helper_specs, :type => :boolean, :default => true
7
+ class_option :helper_specs, type: :boolean, default: true
8
8
 
9
9
  def generate_helper_spec
10
10
  return unless options[:helper_specs]
@@ -32,8 +32,8 @@ DESC
32
32
 
33
33
  def generate_rspec_init(tmpdir)
34
34
  initializer = ::RSpec::Core::ProjectInitializer.new(
35
- :destination => tmpdir,
36
- :report_stream => StringIO.new
35
+ destination: tmpdir,
36
+ report_stream: StringIO.new
37
37
  )
38
38
  initializer.run
39
39
 
@@ -47,7 +47,7 @@ DESC
47
47
  gsub_file spec_helper_path,
48
48
  'rspec --init',
49
49
  'rails generate rspec:install',
50
- :verbose => false
50
+ verbose: false
51
51
  end
52
52
 
53
53
  def remove_warnings_configuration(spec_helper_path)
@@ -56,7 +56,7 @@ DESC
56
56
  gsub_file spec_helper_path,
57
57
  /#{empty_line}(#{comment_line})+\s+config\.warnings = true\n/,
58
58
  '',
59
- :verbose => false
59
+ verbose: false
60
60
  end
61
61
  end
62
62
  end
@@ -1,11 +1,7 @@
1
1
  # This file is copied to spec/ when you run 'rails generate rspec:install'
2
2
  require 'spec_helper'
3
3
  ENV['RAILS_ENV'] ||= 'test'
4
- <% if RUBY_VERSION >= '2.0.0' %>
5
4
  require File.expand_path('../config/environment', __dir__)
6
- <% else %>
7
- require File.expand_path('../../config/environment', __FILE__)
8
- <% end %>
9
5
  # Prevent database truncation if the environment is production
10
6
  abort("The Rails environment is running in production mode!") if Rails.env.production?
11
7
  require 'rspec/rails'
@@ -24,9 +20,9 @@ require 'rspec/rails'
24
20
  # directory. Alternatively, in the individual `*_spec.rb` files, manually
25
21
  # require only the support files necessary.
26
22
  #
27
- # Dir[Rails.root.join('spec', 'support', '**', '*.rb')].each { |f| require f }
23
+ # Dir[Rails.root.join('spec', 'support', '**', '*.rb')].sort.each { |f| require f }
28
24
 
29
- <% if RSpec::Rails::FeatureCheck.can_maintain_test_schema? -%>
25
+ <% if RSpec::Rails::FeatureCheck.has_active_record_migration? -%>
30
26
  # Checks for pending migrations and applies them before tests are run.
31
27
  # If you are not using ActiveRecord, you can remove these lines.
32
28
  begin
@@ -35,15 +31,6 @@ rescue ActiveRecord::PendingMigrationError => e
35
31
  puts e.to_s.strip
36
32
  exit 1
37
33
  end
38
- <% elsif RSpec::Rails::FeatureCheck.can_check_pending_migrations? -%>
39
- # Checks for pending migrations before tests are run.
40
- # If you are not using ActiveRecord, you can remove these lines.
41
- begin
42
- ActiveRecord::Migration.check_pending!
43
- rescue ActiveRecord::PendingMigrationError => e
44
- puts e.to_s.strip
45
- exit 1
46
- end
47
34
  <% end -%>
48
35
  RSpec.configure do |config|
49
36
  <% if RSpec::Rails::FeatureCheck.has_active_record? -%>
@@ -55,6 +42,20 @@ RSpec.configure do |config|
55
42
  # instead of true.
56
43
  config.use_transactional_fixtures = true
57
44
 
45
+ # You can uncomment this line to turn off ActiveRecord support entirely.
46
+ # config.use_active_record = false
47
+
48
+ <% else -%>
49
+ # Remove this line to enable support for ActiveRecord
50
+ config.use_active_record = false
51
+
52
+ # If you enable ActiveRecord support you should unncomment these lines,
53
+ # note if you'd prefer not to run each example within a transaction, you
54
+ # should set use_transactional_fixtures to false.
55
+ #
56
+ # config.fixture_path = "#{::Rails.root}/spec/fixtures"
57
+ # config.use_transactional_fixtures = true
58
+
58
59
  <% end -%>
59
60
  # RSpec Rails can automatically mix in different behaviours to your tests
60
61
  # based on their file location, for example enabling you to call `get` and
@@ -63,7 +64,7 @@ RSpec.configure do |config|
63
64
  # You can disable this behaviour by removing the line below, and instead
64
65
  # explicitly tag your specs with their type, e.g.:
65
66
  #
66
- # RSpec.describe UsersController, :type => :controller do
67
+ # RSpec.describe UsersController, type: :controller do
67
68
  # # ...
68
69
  # end
69
70
  #