rspec-rails 4.0.0.beta3 → 4.0.0.beta4
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/Capybara.md +1 -1
- data/Changelog.md +48 -12
- data/README.md +3 -4
- data/lib/generators/rspec.rb +0 -6
- data/lib/generators/rspec/controller/controller_generator.rb +13 -5
- data/lib/generators/rspec/controller/templates/request_spec.rb +14 -0
- data/lib/generators/rspec/controller/templates/routing_spec.rb +1 -1
- data/lib/generators/rspec/feature/feature_generator.rb +2 -2
- data/lib/generators/rspec/generators/generator_generator.rb +1 -1
- data/lib/generators/rspec/helper/helper_generator.rb +1 -1
- data/lib/generators/rspec/install/install_generator.rb +4 -4
- data/lib/generators/rspec/install/templates/spec/rails_helper.rb +2 -15
- data/lib/generators/rspec/integration/integration_generator.rb +3 -3
- data/lib/generators/rspec/mailer/mailer_generator.rb +1 -1
- data/lib/generators/rspec/model/model_generator.rb +4 -4
- data/lib/generators/rspec/scaffold/scaffold_generator.rb +10 -10
- data/lib/generators/rspec/scaffold/templates/api_controller_spec.rb +0 -36
- data/lib/generators/rspec/scaffold/templates/controller_spec.rb +10 -10
- data/lib/generators/rspec/scaffold/templates/edit_spec.rb +1 -1
- data/lib/generators/rspec/scaffold/templates/index_spec.rb +2 -2
- data/lib/generators/rspec/scaffold/templates/new_spec.rb +1 -1
- data/lib/generators/rspec/scaffold/templates/routing_spec.rb +8 -10
- data/lib/generators/rspec/scaffold/templates/show_spec.rb +1 -1
- data/lib/generators/rspec/system/system_generator.rb +1 -1
- data/lib/generators/rspec/view/view_generator.rb +2 -2
- data/lib/rspec-rails.rb +4 -7
- data/lib/rspec/rails/adapters.rb +8 -74
- data/lib/rspec/rails/configuration.rb +32 -32
- data/lib/rspec/rails/example/controller_example_group.rb +4 -4
- data/lib/rspec/rails/example/feature_example_group.rb +5 -7
- data/lib/rspec/rails/example/helper_example_group.rb +2 -10
- data/lib/rspec/rails/example/rails_example_group.rb +1 -1
- data/lib/rspec/rails/example/system_example_group.rb +6 -3
- data/lib/rspec/rails/example/view_example_group.rb +38 -48
- data/lib/rspec/rails/extensions/active_record/proxy.rb +1 -9
- data/lib/rspec/rails/feature_check.rb +1 -28
- data/lib/rspec/rails/fixture_file_upload_support.rb +1 -1
- data/lib/rspec/rails/fixture_support.rb +8 -13
- data/lib/rspec/rails/matchers/action_cable.rb +1 -1
- data/lib/rspec/rails/matchers/active_job.rb +124 -14
- data/lib/rspec/rails/matchers/base_matcher.rb +4 -10
- data/lib/rspec/rails/matchers/have_enqueued_mail.rb +5 -2
- data/lib/rspec/rails/matchers/have_http_status.rb +7 -7
- data/lib/rspec/rails/matchers/routing_matchers.rb +10 -10
- data/lib/rspec/rails/tasks/rspec.rake +3 -13
- data/lib/rspec/rails/vendor/capybara.rb +10 -10
- data/lib/rspec/rails/version.rb +1 -1
- data/lib/rspec/rails/view_path_builder.rb +1 -1
- data/lib/rspec/rails/view_rendering.rb +3 -3
- metadata +16 -17
- metadata.gz.sig +0 -0
- data/lib/generators/rspec/observer/observer_generator.rb +0 -13
- 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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 51903b359e44b4d8c3323a4af3caa9de3495e02009b61da605af24d7ae588b0b
|
4
|
+
data.tar.gz: 11e9ff4ad45a88a32e9f0a4294cd6c8f7c75febd5ba07c1382fed86ebdcd64aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8e9b40e1404bb29508e00c460db05b7d499ca86daa332cbe3e517dfd922ec860302023e6f71e15e7445f07c7eb39979306cd98ef296b7794ae2c87e3d5865b59
|
7
|
+
data.tar.gz: bb8b7f0411f6d1eff0550b952117bbd58aa59ca082c54d2a145e808fc14a400de0885bb8a8b5503b04baef787527b50a08054e471444123e433d3138c8b45fe1
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/Capybara.md
CHANGED
data/Changelog.md
CHANGED
@@ -1,9 +1,28 @@
|
|
1
|
-
###
|
2
|
-
[Full Changelog](https://github.com/rspec/rspec-rails/compare/
|
1
|
+
### 4.0.0.beta4
|
2
|
+
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v4.0.0.beta3...v4.0.0.beta4)
|
3
|
+
|
4
|
+
Enhancements:
|
5
|
+
|
6
|
+
* Add argument matcher support to `have_enqueued_*` matchers. (Phil Pirozhkov, #2206)
|
7
|
+
* Switch generated templates to use ruby 1.9 hash keys. (Tanbir Hasan, #2224)
|
8
|
+
* Add `have_been_performed`/`have_performed_job`/`perform_job` ActiveJob
|
9
|
+
matchers (Isaac Seymour, #1785)
|
10
|
+
* Default to generating request specs rather than controller specs when
|
11
|
+
generating a controller (Luka Lüdicke, #2222)
|
12
|
+
|
13
|
+
Bug Fixes:
|
14
|
+
|
15
|
+
* Prevent `driven_by(:selenium)` being called due to hook precedence.
|
16
|
+
(Takumi Shotoku, #2188)
|
17
|
+
* Prevent a `WrongScopeError` being thrown during loading fixtures on Rails
|
18
|
+
6.1 development version. (Edouard Chin, #2215)
|
19
|
+
* Fix Mocha mocking support with `should`. (Phil Pirozhkov, #2256)
|
20
|
+
|
21
|
+
### 4.0.0.beta3
|
22
|
+
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v4.0.0.beta2...v4.0.0.beta3)
|
3
23
|
|
4
24
|
Enhancements:
|
5
25
|
|
6
|
-
* Adds support for Rails 6. (Penelope Phippen, Benoit Tigeot, Jon Rowe, #2071)
|
7
26
|
* Adds support for JRuby on Rails 5.2 and 6
|
8
27
|
* Add support for parameterised mailers (Ignatius Reza, #2125)
|
9
28
|
* Add ActionMailbox spec helpers and test type (James Dabbs, #2119)
|
@@ -17,17 +36,34 @@ Enhancements:
|
|
17
36
|
|
18
37
|
Bug Fixes:
|
19
38
|
|
39
|
+
* Replace `before_teardown` as well as `after_teardown` to ensure screenshots
|
40
|
+
are generated correctly. (Jon Rowe, #2164)
|
41
|
+
* `ActionView::FixtureResolver#hash` has been renamed to `ActionView::FixtureResolver#data`.
|
42
|
+
(Penelope Phippen, #2076)
|
43
|
+
* Add missing require for `have_enqueued_mail` matcher. (Ignatius Reza, #2117)
|
44
|
+
|
45
|
+
### 4.0.0.beta2
|
46
|
+
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v4.0.0.beta1...v4.0.0.beta2)
|
47
|
+
|
48
|
+
Bug Fixes:
|
49
|
+
|
50
|
+
* Fix version dependencies in gemspec.
|
51
|
+
|
52
|
+
### 4.0.0.beta1
|
53
|
+
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v3.9.0...v4.0.0.beta1)
|
54
|
+
|
55
|
+
Enhancements:
|
56
|
+
|
57
|
+
* Adds support for Rails 6. (Penelope Phippen, Benoit Tigeot, Jon Rowe, #2071)
|
58
|
+
|
59
|
+
Bug Fixes:
|
60
|
+
|
20
61
|
* `EmptyTemplateHandler.call` now needs to support an additional argument in
|
21
62
|
Rails 6. (Pavel Rosický, #2089)
|
22
63
|
* Suppress warning from `SQLite3Adapter.represent_boolean_as_integer` which is
|
23
64
|
deprecated. (Pavel Rosický, #2092)
|
24
65
|
* `ActionView::Template#formats` has been deprecated and replaced by
|
25
66
|
`ActionView::Template#format`(Seb Jacobs, #2100)
|
26
|
-
* Replace `before_teardown` as well as `after_teardown` to ensure screenshots
|
27
|
-
are generated correctly. (Jon Rowe, #2164)
|
28
|
-
* `ActionView::FixtureResolver#hash` has been renamed to `ActionView::FixtureResolver#data`.
|
29
|
-
(Penelope Phippen, #2076)
|
30
|
-
* Add missing require for `have_enqueued_mail` matcher. (Ignatius Reza, #2117)
|
31
67
|
|
32
68
|
Breaking Changes:
|
33
69
|
|
@@ -341,10 +377,10 @@ Enhancements:
|
|
341
377
|
* Improve controller and routing spec calls to `routes` by using `yield`
|
342
378
|
instead of `call`. (Anton Davydov, #1308)
|
343
379
|
* Add support for `ActiveJob` specs as standard `RSpec::Rails::RailsExampleGoup`s
|
344
|
-
via both
|
380
|
+
via both `type: :job` and inferring type from spec directory `spec/jobs`.
|
345
381
|
(Gabe Martin-Dempesy, #1361)
|
346
382
|
* Include `RSpec::Rails::FixtureSupport` into example groups using metadata
|
347
|
-
|
383
|
+
`use_fixtures: true`. (Aaron Kromer, #1372)
|
348
384
|
* Include `rspec:request` generator for generating request specs; this is an
|
349
385
|
alias of `rspec:integration` (Aaron Kromer, #1378)
|
350
386
|
* Update `rails_helper` generator with a default check to abort the spec run
|
@@ -485,7 +521,7 @@ Enhancements:
|
|
485
521
|
Bug Fixes:
|
486
522
|
|
487
523
|
* Fix an inconsistency in the generated scaffold specs for a controller. (Andy Waite)
|
488
|
-
* Ensure `config.before(:all, :
|
524
|
+
* Ensure `config.before(:all, type: <type>)` hooks run before groups
|
489
525
|
of the given type, even when the type is inferred by the file
|
490
526
|
location. (Jon Rowe, Myron Marston)
|
491
527
|
* Switch to parsing params with `Rack::Utils::parse_nested_query` to match Rails.
|
@@ -935,7 +971,7 @@ This release is compatible with rails-3.1.0.rc1, but not rails-3.1.0.beta1
|
|
935
971
|
* Enhancements
|
936
972
|
* include ApplicationHelper in helper object in helper specs
|
937
973
|
* include request spec extensions in files in spec/integration
|
938
|
-
* include controller spec extensions in groups that use :
|
974
|
+
* include controller spec extensions in groups that use type: :controller
|
939
975
|
* same for :model, :view, :helper, :mailer, :request, :routing
|
940
976
|
|
941
977
|
* Bug fixes
|
data/README.md
CHANGED
@@ -28,14 +28,14 @@ Use **[`rspec-rails` 1.x][]** for Rails 2.x.
|
|
28
28
|
```ruby
|
29
29
|
# Run against the latest stable release
|
30
30
|
group :development, :test do
|
31
|
-
gem 'rspec-rails', '~>
|
31
|
+
gem 'rspec-rails', '~> 4.0'
|
32
32
|
end
|
33
33
|
|
34
34
|
# Or, run against the master branch
|
35
35
|
# (requires master-branch versions of all related RSpec libraries)
|
36
36
|
group :development, :test do
|
37
37
|
%w[rspec-core rspec-expectations rspec-mocks rspec-rails rspec-support].each do |lib|
|
38
|
-
gem lib, :
|
38
|
+
gem lib, git: "https://github.com/rspec/#{lib}.git", branch: 'master'
|
39
39
|
end
|
40
40
|
end
|
41
41
|
```
|
@@ -119,8 +119,7 @@ $ bundle exec rspec --help
|
|
119
119
|
```
|
120
120
|
|
121
121
|
**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):
|
122
|
+
you can generate a binstub at `bin/rspec` and use that instead:
|
124
123
|
|
125
124
|
```sh
|
126
125
|
$ bundle binstubs rspec-core
|
data/lib/generators/rspec.rb
CHANGED
@@ -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, :
|
7
|
+
argument :actions, type: :array, default: [], banner: "action action"
|
8
8
|
|
9
|
-
class_option :template_engine,
|
10
|
-
class_option :
|
11
|
-
class_option :
|
12
|
-
class_option :
|
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(:
|
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, :
|
8
|
-
class_option :singularize, :
|
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]
|
@@ -4,7 +4,7 @@ module Rspec
|
|
4
4
|
module Generators
|
5
5
|
# @private
|
6
6
|
class GeneratorsGenerator < Base
|
7
|
-
class_option :generator_specs, :
|
7
|
+
class_option :generator_specs, type: :boolean, default: false, 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, :
|
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
|
-
:
|
36
|
-
:
|
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
|
-
:
|
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
|
-
:
|
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'
|
@@ -26,7 +22,7 @@ require 'rspec/rails'
|
|
26
22
|
#
|
27
23
|
# Dir[Rails.root.join('spec', 'support', '**', '*.rb')].each { |f| require f }
|
28
24
|
|
29
|
-
<% if RSpec::Rails::FeatureCheck.
|
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? -%>
|
@@ -63,7 +50,7 @@ RSpec.configure do |config|
|
|
63
50
|
# You can disable this behaviour by removing the line below, and instead
|
64
51
|
# explicitly tag your specs with their type, e.g.:
|
65
52
|
#
|
66
|
-
# RSpec.describe UsersController, :
|
53
|
+
# RSpec.describe UsersController, type: :controller do
|
67
54
|
# # ...
|
68
55
|
# end
|
69
56
|
#
|
@@ -7,9 +7,9 @@ module Rspec
|
|
7
7
|
# Add a deprecation for this class, before rspec-rails 4, to use the
|
8
8
|
# `RequestGenerator` instead
|
9
9
|
class_option :request_specs,
|
10
|
-
:
|
11
|
-
:
|
12
|
-
:
|
10
|
+
type: :boolean,
|
11
|
+
default: true,
|
12
|
+
desc: "Generate request specs"
|
13
13
|
|
14
14
|
def generate_request_spec
|
15
15
|
return unless options[:request_specs]
|
@@ -5,7 +5,7 @@ module Rspec
|
|
5
5
|
module Generators
|
6
6
|
# @private
|
7
7
|
class MailerGenerator < Base
|
8
|
-
argument :actions, :
|
8
|
+
argument :actions, type: :array, default: [], banner: "method method"
|
9
9
|
|
10
10
|
def generate_mailer_spec
|
11
11
|
template "mailer_spec.rb", File.join('spec/mailers', class_path, "#{file_name}_spec.rb")
|
@@ -5,10 +5,10 @@ module Rspec
|
|
5
5
|
# @private
|
6
6
|
class ModelGenerator < Base
|
7
7
|
argument :attributes,
|
8
|
-
:
|
9
|
-
:
|
10
|
-
:
|
11
|
-
class_option :fixture, :
|
8
|
+
type: :array,
|
9
|
+
default: [],
|
10
|
+
banner: "field:type field:type"
|
11
|
+
class_option :fixture, type: :boolean
|
12
12
|
|
13
13
|
def create_model_spec
|
14
14
|
template_file = File.join(
|
@@ -7,17 +7,17 @@ module Rspec
|
|
7
7
|
class ScaffoldGenerator < Base
|
8
8
|
include ::Rails::Generators::ResourceHelpers
|
9
9
|
source_paths << File.expand_path('../helper/templates', __dir__)
|
10
|
-
argument :attributes, :
|
10
|
+
argument :attributes, type: :array, default: [], banner: "field:type field:type"
|
11
11
|
|
12
|
-
class_option :orm, :
|
13
|
-
class_option :template_engine, :
|
14
|
-
class_option :singleton, :
|
15
|
-
class_option :api, :
|
12
|
+
class_option :orm, desc: "ORM used to generate the controller"
|
13
|
+
class_option :template_engine, desc: "Template engine to generate view files"
|
14
|
+
class_option :singleton, type: :boolean, desc: "Supply to create a singleton controller"
|
15
|
+
class_option :api, type: :boolean, desc: "Skip specs unnecessary for API-only apps"
|
16
16
|
|
17
|
-
class_option :controller_specs, :
|
18
|
-
class_option :view_specs, :
|
19
|
-
class_option :helper_specs, :
|
20
|
-
class_option :routing_specs, :
|
17
|
+
class_option :controller_specs, type: :boolean, default: true, desc: "Generate controller specs"
|
18
|
+
class_option :view_specs, type: :boolean, default: true, desc: "Generate view specs"
|
19
|
+
class_option :helper_specs, type: :boolean, default: true, desc: "Generate helper specs"
|
20
|
+
class_option :routing_specs, type: :boolean, default: true, desc: "Generate routing specs"
|
21
21
|
|
22
22
|
def initialize(*args, &blk)
|
23
23
|
@generator_args = args.first
|
@@ -60,7 +60,7 @@ module Rspec
|
|
60
60
|
template 'routing_spec.rb', template_file
|
61
61
|
end
|
62
62
|
|
63
|
-
hook_for :integration_tool, :
|
63
|
+
hook_for :integration_tool, as: :integration
|
64
64
|
|
65
65
|
protected
|
66
66
|
|
@@ -46,11 +46,7 @@ RSpec.describe <%= controller_class_name %>Controller, <%= type_metatag(:control
|
|
46
46
|
describe "GET #index" do
|
47
47
|
it "returns a success response" do
|
48
48
|
<%= file_name %> = <%= class_name %>.create! valid_attributes
|
49
|
-
<% if RUBY_VERSION < '1.9.3' -%>
|
50
|
-
get :index, {}, valid_session
|
51
|
-
<% else -%>
|
52
49
|
get :index, params: {}, session: valid_session
|
53
|
-
<% end -%>
|
54
50
|
expect(response).to be_successful
|
55
51
|
end
|
56
52
|
end
|
@@ -59,11 +55,7 @@ RSpec.describe <%= controller_class_name %>Controller, <%= type_metatag(:control
|
|
59
55
|
describe "GET #show" do
|
60
56
|
it "returns a success response" do
|
61
57
|
<%= file_name %> = <%= class_name %>.create! valid_attributes
|
62
|
-
<% if RUBY_VERSION < '1.9.3' -%>
|
63
|
-
get :show, {:id => <%= file_name %>.to_param}, valid_session
|
64
|
-
<% else -%>
|
65
58
|
get :show, params: {id: <%= file_name %>.to_param}, session: valid_session
|
66
|
-
<% end -%>
|
67
59
|
expect(response).to be_successful
|
68
60
|
end
|
69
61
|
end
|
@@ -72,20 +64,12 @@ RSpec.describe <%= controller_class_name %>Controller, <%= type_metatag(:control
|
|
72
64
|
context "with valid params" do
|
73
65
|
it "creates a new <%= class_name %>" do
|
74
66
|
expect {
|
75
|
-
<% if RUBY_VERSION < '1.9.3' -%>
|
76
|
-
post :create, {:<%= ns_file_name %> => valid_attributes}, valid_session
|
77
|
-
<% else -%>
|
78
67
|
post :create, params: {<%= ns_file_name %>: valid_attributes}, session: valid_session
|
79
|
-
<% end -%>
|
80
68
|
}.to change(<%= class_name %>, :count).by(1)
|
81
69
|
end
|
82
70
|
|
83
71
|
it "renders a JSON response with the new <%= ns_file_name %>" do
|
84
|
-
<% if RUBY_VERSION < '1.9.3' -%>
|
85
|
-
post :create, {:<%= ns_file_name %> => valid_attributes}, valid_session
|
86
|
-
<% else %>
|
87
72
|
post :create, params: {<%= ns_file_name %>: valid_attributes}, session: valid_session
|
88
|
-
<% end -%>
|
89
73
|
expect(response).to have_http_status(:created)
|
90
74
|
expect(response.content_type).to eq('application/json')
|
91
75
|
expect(response.location).to eq(<%= ns_file_name %>_url(<%= class_name %>.last))
|
@@ -94,11 +78,7 @@ RSpec.describe <%= controller_class_name %>Controller, <%= type_metatag(:control
|
|
94
78
|
|
95
79
|
context "with invalid params" do
|
96
80
|
it "renders a JSON response with errors for the new <%= ns_file_name %>" do
|
97
|
-
<% if RUBY_VERSION < '1.9.3' -%>
|
98
|
-
post :create, {:<%= ns_file_name %> => invalid_attributes}, valid_session
|
99
|
-
<% else %>
|
100
81
|
post :create, params: {<%= ns_file_name %>: invalid_attributes}, session: valid_session
|
101
|
-
<% end -%>
|
102
82
|
expect(response).to have_http_status(:unprocessable_entity)
|
103
83
|
expect(response.content_type).to eq('application/json')
|
104
84
|
end
|
@@ -113,22 +93,14 @@ RSpec.describe <%= controller_class_name %>Controller, <%= type_metatag(:control
|
|
113
93
|
|
114
94
|
it "updates the requested <%= ns_file_name %>" do
|
115
95
|
<%= file_name %> = <%= class_name %>.create! valid_attributes
|
116
|
-
<% if RUBY_VERSION < '1.9.3' -%>
|
117
|
-
put :update, {:id => <%= file_name %>.to_param, :<%= ns_file_name %> => new_attributes}, valid_session
|
118
|
-
<% else -%>
|
119
96
|
put :update, params: {id: <%= file_name %>.to_param, <%= ns_file_name %>: new_attributes}, session: valid_session
|
120
|
-
<% end -%>
|
121
97
|
<%= file_name %>.reload
|
122
98
|
skip("Add assertions for updated state")
|
123
99
|
end
|
124
100
|
|
125
101
|
it "renders a JSON response with the <%= ns_file_name %>" do
|
126
102
|
<%= file_name %> = <%= class_name %>.create! valid_attributes
|
127
|
-
<% if RUBY_VERSION < '1.9.3' -%>
|
128
|
-
put :update, {:id => <%= file_name %>.to_param, :<%= ns_file_name %> => valid_attributes}, valid_session
|
129
|
-
<% else %>
|
130
103
|
put :update, params: {id: <%= file_name %>.to_param, <%= ns_file_name %>: valid_attributes}, session: valid_session
|
131
|
-
<% end -%>
|
132
104
|
expect(response).to have_http_status(:ok)
|
133
105
|
expect(response.content_type).to eq('application/json')
|
134
106
|
end
|
@@ -137,11 +109,7 @@ RSpec.describe <%= controller_class_name %>Controller, <%= type_metatag(:control
|
|
137
109
|
context "with invalid params" do
|
138
110
|
it "renders a JSON response with errors for the <%= ns_file_name %>" do
|
139
111
|
<%= file_name %> = <%= class_name %>.create! valid_attributes
|
140
|
-
<% if RUBY_VERSION < '1.9.3' -%>
|
141
|
-
put :update, {:id => <%= file_name %>.to_param, :<%= ns_file_name %> => invalid_attributes}, valid_session
|
142
|
-
<% else %>
|
143
112
|
put :update, params: {id: <%= file_name %>.to_param, <%= ns_file_name %>: invalid_attributes}, session: valid_session
|
144
|
-
<% end -%>
|
145
113
|
expect(response).to have_http_status(:unprocessable_entity)
|
146
114
|
expect(response.content_type).to eq('application/json')
|
147
115
|
end
|
@@ -152,11 +120,7 @@ RSpec.describe <%= controller_class_name %>Controller, <%= type_metatag(:control
|
|
152
120
|
it "destroys the requested <%= ns_file_name %>" do
|
153
121
|
<%= file_name %> = <%= class_name %>.create! valid_attributes
|
154
122
|
expect {
|
155
|
-
<% if RUBY_VERSION < '1.9.3' -%>
|
156
|
-
delete :destroy, {:id => <%= file_name %>.to_param}, valid_session
|
157
|
-
<% else -%>
|
158
123
|
delete :destroy, params: {id: <%= file_name %>.to_param}, session: valid_session
|
159
|
-
<% end -%>
|
160
124
|
}.to change(<%= class_name %>, :count).by(-1)
|
161
125
|
end
|
162
126
|
end
|