rspec-rails 2.99.0 → 3.0.0.beta1
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 +8 -8
- checksums.yaml.gz.sig +2 -0
- data.tar.gz.sig +0 -0
- data/Changelog.md +40 -68
- data/License.txt +1 -0
- data/README.md +6 -4
- data/features/Generators.md +24 -0
- data/features/GettingStarted.md +84 -0
- data/features/README.md +56 -0
- data/features/RailsVersions.md +4 -0
- data/features/Transactions.md +84 -0
- data/features/Upgrade.md +121 -0
- data/features/controller_specs/Cookies.md +57 -0
- data/features/controller_specs/README.md +45 -0
- data/features/controller_specs/anonymous_controller.feature +378 -0
- data/features/controller_specs/bypass_rescue.feature +75 -0
- data/features/controller_specs/controller_spec.feature +58 -0
- data/features/controller_specs/engine_routes.feature +51 -0
- data/features/controller_specs/isolation_from_views.feature +87 -0
- data/features/controller_specs/render_views.feature +114 -0
- data/features/directory_structure.feature +71 -0
- data/features/feature_specs/feature_spec.feature +35 -0
- data/features/helper_specs/helper_spec.feature +122 -0
- data/features/mailer_specs/url_helpers.feature +38 -0
- data/features/matchers/README.md +18 -0
- data/features/matchers/new_record_matcher.feature +41 -0
- data/features/matchers/redirect_to_matcher.feature +40 -0
- data/features/matchers/relation_match_array.feature +27 -0
- data/features/matchers/render_template_matcher.feature +49 -0
- data/features/mocks/mock_model.feature +147 -0
- data/features/mocks/stub_model.feature +58 -0
- data/features/model_specs/README.md +21 -0
- data/features/model_specs/errors_on.feature +51 -0
- data/features/model_specs/records.feature +27 -0
- data/features/model_specs/transactional_examples.feature +109 -0
- data/features/request_specs/request_spec.feature +49 -0
- data/features/routing_specs/README.md +16 -0
- data/features/routing_specs/be_routable_matcher.feature +80 -0
- data/features/routing_specs/engine_routes.feature +38 -0
- data/features/routing_specs/named_routes.feature +18 -0
- data/features/routing_specs/route_to_matcher.feature +90 -0
- data/features/step_definitions/additional_cli_steps.rb +4 -0
- data/features/step_definitions/model_steps.rb +3 -0
- data/features/support/capybara.rb +7 -0
- data/features/support/env.rb +53 -0
- data/features/support/rails_versions.rb +4 -0
- data/features/support/rubinius.rb +6 -0
- data/features/view_specs/inferred_controller_path.feature +45 -0
- data/features/view_specs/stub_template.feature +51 -0
- data/features/view_specs/view_spec.feature +206 -0
- data/lib/generators/rspec/controller/templates/controller_spec.rb +1 -1
- data/lib/generators/rspec/install/templates/spec/spec_helper.rb.tt +2 -21
- data/lib/generators/rspec/integration/integration_generator.rb +2 -3
- data/lib/generators/rspec/integration/templates/request_spec.rb +1 -1
- data/lib/generators/rspec/mailer/templates/mailer_spec.rb +4 -4
- data/lib/generators/rspec/scaffold/scaffold_generator.rb +2 -3
- data/lib/generators/rspec/scaffold/templates/controller_spec.rb +16 -16
- data/lib/generators/rspec/scaffold/templates/edit_spec.rb +2 -2
- data/lib/generators/rspec/scaffold/templates/index_spec.rb +1 -1
- data/lib/generators/rspec/scaffold/templates/new_spec.rb +2 -2
- data/lib/generators/rspec/scaffold/templates/routing_spec.rb +7 -7
- data/lib/generators/rspec/scaffold/templates/show_spec.rb +2 -2
- data/lib/rspec/rails.rb +0 -5
- data/lib/rspec/rails/adapters.rb +5 -12
- data/lib/rspec/rails/example.rb +55 -24
- data/lib/rspec/rails/example/controller_example_group.rb +7 -31
- data/lib/rspec/rails/example/view_example_group.rb +0 -3
- data/lib/rspec/rails/matchers.rb +1 -2
- data/lib/rspec/rails/matchers/be_a_new.rb +1 -1
- data/lib/rspec/rails/matchers/be_new_record.rb +1 -1
- data/lib/rspec/rails/matchers/be_valid.rb +1 -1
- data/lib/rspec/rails/matchers/have_rendered.rb +1 -1
- data/lib/rspec/rails/matchers/redirect_to.rb +1 -1
- data/lib/rspec/rails/matchers/relation_match_array.rb +1 -1
- data/lib/rspec/rails/matchers/routing_matchers.rb +6 -10
- data/lib/rspec/rails/mocks.rb +5 -41
- data/lib/rspec/rails/tasks/rspec.rake +5 -12
- data/lib/rspec/rails/vendor/capybara.rb +4 -35
- data/lib/rspec/rails/version.rb +1 -1
- data/spec/generators/rspec/controller/controller_generator_spec.rb +97 -0
- data/spec/generators/rspec/helper/helper_generator_spec.rb +30 -0
- data/spec/generators/rspec/install/install_generator_spec.rb +30 -0
- data/spec/generators/rspec/integration/integration_generator_spec.rb +44 -0
- data/spec/generators/rspec/mailer/mailer_generator_spec.rb +48 -0
- data/spec/generators/rspec/model/model_generator_spec.rb +52 -0
- data/spec/generators/rspec/observer/observer_generator_spec.rb +21 -0
- data/spec/generators/rspec/scaffold/scaffold_generator_spec.rb +138 -0
- data/spec/generators/rspec/view/view_generator_spec.rb +41 -0
- data/spec/rspec/rails/assertion_adapter_spec.rb +28 -0
- data/spec/rspec/rails/assertion_delegator_spec.rb +43 -0
- data/spec/rspec/rails/configuration_spec.rb +26 -0
- data/spec/rspec/rails/deprecations_spec.rb +18 -0
- data/spec/rspec/rails/example/controller_example_group_spec.rb +100 -0
- data/spec/rspec/rails/example/feature_example_group_spec.rb +56 -0
- data/spec/rspec/rails/example/helper_example_group_spec.rb +66 -0
- data/spec/rspec/rails/example/mailer_example_group_spec.rb +21 -0
- data/spec/rspec/rails/example/model_example_group_spec.rb +15 -0
- data/spec/rspec/rails/example/request_example_group_spec.rb +17 -0
- data/spec/rspec/rails/example/routing_example_group_spec.rb +32 -0
- data/spec/rspec/rails/example/view_example_group_spec.rb +220 -0
- data/spec/rspec/rails/extensions/active_model/errors_on_spec.rb +23 -0
- data/spec/rspec/rails/extensions/active_record/base_spec.rb +42 -0
- data/spec/rspec/rails/fixture_support_spec.rb +17 -0
- data/spec/rspec/rails/matchers/be_a_new_spec.rb +142 -0
- data/spec/rspec/rails/matchers/be_new_record_spec.rb +33 -0
- data/spec/rspec/rails/matchers/be_routable_spec.rb +41 -0
- data/spec/rspec/rails/matchers/be_valid_spec.rb +44 -0
- data/spec/rspec/rails/matchers/has_spec.rb +29 -0
- data/spec/rspec/rails/matchers/have_rendered_spec.rb +93 -0
- data/spec/rspec/rails/matchers/redirect_to_spec.rb +80 -0
- data/spec/rspec/rails/matchers/relation_match_array_spec.rb +31 -0
- data/spec/rspec/rails/matchers/route_to_spec.rb +151 -0
- data/spec/rspec/rails/minitest_lifecycle_adapter_spec.rb +22 -0
- data/spec/rspec/rails/mocks/mock_model_spec.rb +378 -0
- data/spec/rspec/rails/mocks/stub_model_spec.rb +154 -0
- data/spec/rspec/rails/setup_and_teardown_adapter_spec.rb +32 -0
- data/spec/rspec/rails/view_rendering_spec.rb +111 -0
- data/spec/spec_helper.rb +35 -0
- data/spec/support/ar_classes.rb +42 -0
- data/spec/support/helpers.rb +20 -0
- data/spec/support/matchers.rb +9 -0
- data/spec/support/null_object.rb +6 -0
- metadata +229 -42
- metadata.gz.sig +0 -0
- data/lib/autotest/rails_rspec2.rb +0 -91
- data/lib/rspec/rails/infer_type_configuration.rb +0 -26
- data/lib/rspec/rails/matchers/have_extension.rb +0 -36
- data/lib/rspec/rails/module_inclusion.rb +0 -19
@@ -2,6 +2,7 @@
|
|
2
2
|
ENV["RAILS_ENV"] ||= 'test'
|
3
3
|
require File.expand_path("../../config/environment", __FILE__)
|
4
4
|
require 'rspec/rails'
|
5
|
+
require 'rspec/autorun'
|
5
6
|
|
6
7
|
# Requires supporting ruby files with custom matchers and macros, etc, in
|
7
8
|
# spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are
|
@@ -12,12 +13,7 @@ require 'rspec/rails'
|
|
12
13
|
# option on the command line or in ~/.rspec, .rspec or `.rspec-local`.
|
13
14
|
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
|
14
15
|
|
15
|
-
<% if ::Rails::VERSION::STRING >= '4
|
16
|
-
# Checks for pending migrations before tests are run.
|
17
|
-
# If you are not using ActiveRecord, you can remove this line.
|
18
|
-
ActiveRecord::Migration.maintain_test_schema!
|
19
|
-
|
20
|
-
<% elsif ::Rails::VERSION::STRING >= '4' -%>
|
16
|
+
<% if ::Rails::VERSION::STRING >= '4' -%>
|
21
17
|
# Checks for pending migrations before tests are run.
|
22
18
|
# If you are not using ActiveRecord, you can remove this line.
|
23
19
|
ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
|
@@ -50,19 +46,4 @@ RSpec.configure do |config|
|
|
50
46
|
# the seed, which is printed after each run.
|
51
47
|
# --seed 1234
|
52
48
|
config.order = "random"
|
53
|
-
|
54
|
-
# RSpec Rails can automatically mix in different behaviours to your tests
|
55
|
-
# based on their file location, for example enabling you to call `get` and
|
56
|
-
# `post` in specs under `spec/controllers`.
|
57
|
-
#
|
58
|
-
# You can disable this behaviour by removing the line below, and instead
|
59
|
-
# explictly tag your specs with their type, e.g.:
|
60
|
-
#
|
61
|
-
# describe UsersController, :type => :controller do
|
62
|
-
# # ...
|
63
|
-
# end
|
64
|
-
#
|
65
|
-
# The different available types are documented in the features, such as in
|
66
|
-
# https://relishapp.com/rspec/rspec-rails/v/3-0/docs
|
67
|
-
config.infer_spec_type_from_file_location!
|
68
49
|
end
|
@@ -10,16 +10,15 @@ module Rspec
|
|
10
10
|
def generate_request_spec
|
11
11
|
return unless options[:request_specs]
|
12
12
|
|
13
|
-
RSpec.deprecate("the --webrat-matchers option", :replacement => nil) if options[:webrat_matchers]
|
14
|
-
RSpec.deprecate("the --webrat option", :replacement => nil) if options[:webrat]
|
15
|
-
|
16
13
|
template 'request_spec.rb',
|
17
14
|
File.join('spec/requests', class_path, "#{table_name}_spec.rb")
|
18
15
|
end
|
19
16
|
|
20
17
|
protected
|
21
18
|
|
19
|
+
# @deprecated Use `--webrat` instead.
|
22
20
|
def webrat?
|
21
|
+
RSpec.deprecate("the --webrat-matchers option", :replacement => "--webrat") if options[:webrat_matchers]
|
23
22
|
options[:webrat] || options[:webrat_matchers]
|
24
23
|
end
|
25
24
|
|
@@ -9,7 +9,7 @@ describe "<%= class_name.pluralize %>" do
|
|
9
9
|
# Run the generator again with the --webrat flag if you want to use webrat methods/matchers
|
10
10
|
get <%= index_helper %>_path
|
11
11
|
<% end -%>
|
12
|
-
response.status.
|
12
|
+
expect(response.status).to be(200)
|
13
13
|
end
|
14
14
|
end
|
15
15
|
end
|
@@ -7,13 +7,13 @@ describe <%= class_name %> do
|
|
7
7
|
let(:mail) { <%= class_name %>.<%= action %> }
|
8
8
|
|
9
9
|
it "renders the headers" do
|
10
|
-
mail.subject.
|
11
|
-
mail.to.
|
12
|
-
mail.from.
|
10
|
+
expect(mail.subject).to eq(<%= action.to_s.humanize.inspect %>)
|
11
|
+
expect(mail.to).to eq(["to@example.org"])
|
12
|
+
expect(mail.from).to eq(["from@example.com"])
|
13
13
|
end
|
14
14
|
|
15
15
|
it "renders the body" do
|
16
|
-
mail.body.encoded.
|
16
|
+
expect(mail.body.encoded).to match("Hi")
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
@@ -22,9 +22,6 @@ module Rspec
|
|
22
22
|
def generate_controller_spec
|
23
23
|
return unless options[:controller_specs]
|
24
24
|
|
25
|
-
RSpec.deprecate("the --webrat-matchers option", :replacement => nil) if options[:webrat_matchers]
|
26
|
-
RSpec.deprecate("the --webrat option", :replacement => nil) if options[:webrat]
|
27
|
-
|
28
25
|
template 'controller_spec.rb',
|
29
26
|
File.join('spec/controllers', controller_class_path, "#{controller_file_name}_controller_spec.rb")
|
30
27
|
end
|
@@ -49,7 +46,9 @@ module Rspec
|
|
49
46
|
|
50
47
|
protected
|
51
48
|
|
49
|
+
# @deprecated Use `--webrat` instead.
|
52
50
|
def webrat?
|
51
|
+
RSpec.deprecate("--webrat-matchers", :replacement => "--webrat") if options[:webrat_matchers]
|
53
52
|
options[:webrat] || options[:webrat_matchers]
|
54
53
|
end
|
55
54
|
|
@@ -36,7 +36,7 @@ describe <%= controller_class_name %>Controller do
|
|
36
36
|
it "assigns all <%= table_name.pluralize %> as @<%= table_name.pluralize %>" do
|
37
37
|
<%= file_name %> = <%= class_name %>.create! valid_attributes
|
38
38
|
get :index, {}, valid_session
|
39
|
-
assigns(:<%= table_name %>).
|
39
|
+
expect(assigns(:<%= table_name %>)).to eq([<%= file_name %>])
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
@@ -45,14 +45,14 @@ describe <%= controller_class_name %>Controller do
|
|
45
45
|
it "assigns the requested <%= ns_file_name %> as @<%= ns_file_name %>" do
|
46
46
|
<%= file_name %> = <%= class_name %>.create! valid_attributes
|
47
47
|
get :show, {:id => <%= file_name %>.to_param}, valid_session
|
48
|
-
assigns(:<%= ns_file_name %>).
|
48
|
+
expect(assigns(:<%= ns_file_name %>)).to eq(<%= file_name %>)
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
52
|
describe "GET new" do
|
53
53
|
it "assigns a new <%= ns_file_name %> as @<%= ns_file_name %>" do
|
54
54
|
get :new, {}, valid_session
|
55
|
-
assigns(:<%= ns_file_name %>).
|
55
|
+
expect(assigns(:<%= ns_file_name %>)).to be_a_new(<%= class_name %>)
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
@@ -60,7 +60,7 @@ describe <%= controller_class_name %>Controller do
|
|
60
60
|
it "assigns the requested <%= ns_file_name %> as @<%= ns_file_name %>" do
|
61
61
|
<%= file_name %> = <%= class_name %>.create! valid_attributes
|
62
62
|
get :edit, {:id => <%= file_name %>.to_param}, valid_session
|
63
|
-
assigns(:<%= ns_file_name %>).
|
63
|
+
expect(assigns(:<%= ns_file_name %>)).to eq(<%= file_name %>)
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
@@ -74,13 +74,13 @@ describe <%= controller_class_name %>Controller do
|
|
74
74
|
|
75
75
|
it "assigns a newly created <%= ns_file_name %> as @<%= ns_file_name %>" do
|
76
76
|
post :create, {:<%= ns_file_name %> => valid_attributes}, valid_session
|
77
|
-
assigns(:<%= ns_file_name %>).
|
78
|
-
assigns(:<%= ns_file_name %>).
|
77
|
+
expect(assigns(:<%= ns_file_name %>)).to be_a(<%= class_name %>)
|
78
|
+
expect(assigns(:<%= ns_file_name %>)).to be_persisted
|
79
79
|
end
|
80
80
|
|
81
81
|
it "redirects to the created <%= ns_file_name %>" do
|
82
82
|
post :create, {:<%= ns_file_name %> => valid_attributes}, valid_session
|
83
|
-
response.
|
83
|
+
expect(response).to redirect_to(<%= class_name %>.last)
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
@@ -89,14 +89,14 @@ describe <%= controller_class_name %>Controller do
|
|
89
89
|
# Trigger the behavior that occurs when invalid params are submitted
|
90
90
|
<%= class_name %>.any_instance.stub(:save).and_return(false)
|
91
91
|
post :create, {:<%= ns_file_name %> => <%= formatted_hash(example_invalid_attributes) %>}, valid_session
|
92
|
-
assigns(:<%= ns_file_name %>).
|
92
|
+
expect(assigns(:<%= ns_file_name %>)).to be_a_new(<%= class_name %>)
|
93
93
|
end
|
94
94
|
|
95
95
|
it "re-renders the 'new' template" do
|
96
96
|
# Trigger the behavior that occurs when invalid params are submitted
|
97
97
|
<%= class_name %>.any_instance.stub(:save).and_return(false)
|
98
98
|
post :create, {:<%= ns_file_name %> => <%= formatted_hash(example_invalid_attributes) %>}, valid_session
|
99
|
-
response.
|
99
|
+
expect(response).to render_template("new")
|
100
100
|
end
|
101
101
|
end
|
102
102
|
end
|
@@ -110,9 +110,9 @@ describe <%= controller_class_name %>Controller do
|
|
110
110
|
# receives the :update_attributes message with whatever params are
|
111
111
|
# submitted in the request.
|
112
112
|
<%- if ::Rails::VERSION::STRING >= '4' -%>
|
113
|
-
<%= class_name
|
113
|
+
expect_any_instance_of(<%= class_name %>).to receive(:update).with(<%= formatted_hash(example_params_for_update) %>)
|
114
114
|
<%- else -%>
|
115
|
-
<%= class_name
|
115
|
+
expect_any_instance_of(<%= class_name %>).to receive(:update_attributes).with(<%= formatted_hash(example_params_for_update) %>)
|
116
116
|
<%- end -%>
|
117
117
|
put :update, {:id => <%= file_name %>.to_param, :<%= ns_file_name %> => <%= formatted_hash(example_params_for_update) %>}, valid_session
|
118
118
|
end
|
@@ -120,13 +120,13 @@ describe <%= controller_class_name %>Controller do
|
|
120
120
|
it "assigns the requested <%= ns_file_name %> as @<%= ns_file_name %>" do
|
121
121
|
<%= file_name %> = <%= class_name %>.create! valid_attributes
|
122
122
|
put :update, {:id => <%= file_name %>.to_param, :<%= ns_file_name %> => valid_attributes}, valid_session
|
123
|
-
assigns(:<%= ns_file_name %>).
|
123
|
+
expect(assigns(:<%= ns_file_name %>)).to eq(<%= file_name %>)
|
124
124
|
end
|
125
125
|
|
126
126
|
it "redirects to the <%= ns_file_name %>" do
|
127
127
|
<%= file_name %> = <%= class_name %>.create! valid_attributes
|
128
128
|
put :update, {:id => <%= file_name %>.to_param, :<%= ns_file_name %> => valid_attributes}, valid_session
|
129
|
-
response.
|
129
|
+
expect(response).to redirect_to(<%= file_name %>)
|
130
130
|
end
|
131
131
|
end
|
132
132
|
|
@@ -136,7 +136,7 @@ describe <%= controller_class_name %>Controller do
|
|
136
136
|
# Trigger the behavior that occurs when invalid params are submitted
|
137
137
|
<%= class_name %>.any_instance.stub(:save).and_return(false)
|
138
138
|
put :update, {:id => <%= file_name %>.to_param, :<%= ns_file_name %> => <%= formatted_hash(example_invalid_attributes) %>}, valid_session
|
139
|
-
assigns(:<%= ns_file_name %>).
|
139
|
+
expect(assigns(:<%= ns_file_name %>)).to eq(<%= file_name %>)
|
140
140
|
end
|
141
141
|
|
142
142
|
it "re-renders the 'edit' template" do
|
@@ -144,7 +144,7 @@ describe <%= controller_class_name %>Controller do
|
|
144
144
|
# Trigger the behavior that occurs when invalid params are submitted
|
145
145
|
<%= class_name %>.any_instance.stub(:save).and_return(false)
|
146
146
|
put :update, {:id => <%= file_name %>.to_param, :<%= ns_file_name %> => <%= formatted_hash(example_invalid_attributes) %>}, valid_session
|
147
|
-
response.
|
147
|
+
expect(response).to render_template("edit")
|
148
148
|
end
|
149
149
|
end
|
150
150
|
end
|
@@ -160,7 +160,7 @@ describe <%= controller_class_name %>Controller do
|
|
160
160
|
it "redirects to the <%= table_name %> list" do
|
161
161
|
<%= file_name %> = <%= class_name %>.create! valid_attributes
|
162
162
|
delete :destroy, {:id => <%= file_name %>.to_param}, valid_session
|
163
|
-
response.
|
163
|
+
expect(response).to redirect_to(<%= index_helper %>_url)
|
164
164
|
end
|
165
165
|
end
|
166
166
|
|
@@ -14,9 +14,9 @@ describe "<%= ns_table_name %>/edit" do
|
|
14
14
|
render
|
15
15
|
|
16
16
|
<% if webrat? -%>
|
17
|
-
rendered.
|
17
|
+
expect(rendered).to have_selector("form", :action => <%= ns_file_name %>_path(@<%= ns_file_name %>), :method => "post") do |form|
|
18
18
|
<% for attribute in output_attributes -%>
|
19
|
-
form.
|
19
|
+
expect(form).to have_selector("<%= attribute.input_type -%>#<%= ns_file_name %>_<%= attribute.name %>", :name => "<%= ns_file_name %>[<%= attribute.name %>]")
|
20
20
|
<% end -%>
|
21
21
|
end
|
22
22
|
<% else -%>
|
@@ -23,7 +23,7 @@ describe "<%= ns_table_name %>/index" do
|
|
23
23
|
<% end -%>
|
24
24
|
<% for attribute in output_attributes -%>
|
25
25
|
<% if webrat? -%>
|
26
|
-
rendered.
|
26
|
+
expect(rendered).to have_selector("tr>td", :content => <%= value_for(attribute) %>.to_s, :count => 2)
|
27
27
|
<% else -%>
|
28
28
|
assert_select "tr>td", :text => <%= value_for(attribute) %>.to_s, :count => 2
|
29
29
|
<% end -%>
|
@@ -13,9 +13,9 @@ describe "<%= ns_table_name %>/new" do
|
|
13
13
|
render
|
14
14
|
|
15
15
|
<% if webrat? -%>
|
16
|
-
rendered.
|
16
|
+
expect(rendered).to have_selector("form", :action => <%= table_name %>_path, :method => "post") do |form|
|
17
17
|
<% for attribute in output_attributes -%>
|
18
|
-
form.
|
18
|
+
expect(form).to have_selector("<%= attribute.input_type -%>#<%= ns_file_name %>_<%= attribute.name %>", :name => "<%= ns_file_name %>[<%= attribute.name %>]")
|
19
19
|
<% end -%>
|
20
20
|
end
|
21
21
|
<% else -%>
|
@@ -6,32 +6,32 @@ describe <%= controller_class_name %>Controller do
|
|
6
6
|
|
7
7
|
<% unless options[:singleton] -%>
|
8
8
|
it "routes to #index" do
|
9
|
-
get
|
9
|
+
expect(:get => "/<%= ns_table_name %>").to route_to("<%= ns_table_name %>#index")
|
10
10
|
end
|
11
11
|
|
12
12
|
<% end -%>
|
13
13
|
it "routes to #new" do
|
14
|
-
get
|
14
|
+
expect(:get => "/<%= ns_table_name %>/new").to route_to("<%= ns_table_name %>#new")
|
15
15
|
end
|
16
16
|
|
17
17
|
it "routes to #show" do
|
18
|
-
get
|
18
|
+
expect(:get => "/<%= ns_table_name %>/1").to route_to("<%= ns_table_name %>#show", :id => "1")
|
19
19
|
end
|
20
20
|
|
21
21
|
it "routes to #edit" do
|
22
|
-
get
|
22
|
+
expect(:get => "/<%= ns_table_name %>/1/edit").to route_to("<%= ns_table_name %>#edit", :id => "1")
|
23
23
|
end
|
24
24
|
|
25
25
|
it "routes to #create" do
|
26
|
-
post
|
26
|
+
expect(:post => "/<%= ns_table_name %>").to route_to("<%= ns_table_name %>#create")
|
27
27
|
end
|
28
28
|
|
29
29
|
it "routes to #update" do
|
30
|
-
put
|
30
|
+
expect(:put => "/<%= ns_table_name %>/1").to route_to("<%= ns_table_name %>#update", :id => "1")
|
31
31
|
end
|
32
32
|
|
33
33
|
it "routes to #destroy" do
|
34
|
-
delete
|
34
|
+
expect(:delete => "/<%= ns_table_name %>/1").to route_to("<%= ns_table_name %>#destroy", :id => "1")
|
35
35
|
end
|
36
36
|
|
37
37
|
end
|
@@ -19,9 +19,9 @@ describe "<%= ns_table_name %>/show" do
|
|
19
19
|
<% end -%>
|
20
20
|
<% for attribute in output_attributes -%>
|
21
21
|
<% if webrat? -%>
|
22
|
-
rendered.
|
22
|
+
expect(rendered).to contain(<%= value_for(attribute) %>.to_s)
|
23
23
|
<% else -%>
|
24
|
-
rendered.
|
24
|
+
expect(rendered).to match(/<%= eval(value_for(attribute)) %>/)
|
25
25
|
<% end -%>
|
26
26
|
<% end -%>
|
27
27
|
end
|
data/lib/rspec/rails.rb
CHANGED
@@ -11,12 +11,7 @@ require 'rspec/rails/view_rendering'
|
|
11
11
|
require 'rspec/rails/adapters'
|
12
12
|
require 'rspec/rails/matchers'
|
13
13
|
require 'rspec/rails/fixture_support'
|
14
|
-
|
15
|
-
# Load rspec-activemodel-mocks if available; otherwise fall back
|
16
|
-
# to the deprecated mock methods
|
17
14
|
require 'rspec/rails/mocks'
|
18
|
-
require 'rspec/rails/module_inclusion'
|
19
15
|
require 'rspec/rails/example'
|
20
|
-
require 'rspec/rails/infer_type_configuration'
|
21
16
|
require 'rspec/rails/vendor/capybara'
|
22
17
|
require 'rspec/rails/vendor/webrat'
|
data/lib/rspec/rails/adapters.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'delegate'
|
2
|
-
require 'active_support'
|
3
2
|
require 'active_support/concern'
|
4
3
|
|
5
4
|
module RSpec
|
@@ -9,13 +8,7 @@ module RSpec
|
|
9
8
|
require 'minitest/assertions'
|
10
9
|
Assertions = Minitest::Assertions
|
11
10
|
else
|
12
|
-
|
13
|
-
require 'test/unit/assertions'
|
14
|
-
rescue LoadError
|
15
|
-
# work around for Rubinius not having a std std-lib
|
16
|
-
require 'rubysl-test-unit' if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx'
|
17
|
-
require 'test/unit/assertions'
|
18
|
-
end
|
11
|
+
require 'test/unit/assertions'
|
19
12
|
Assertions = Test::Unit::Assertions
|
20
13
|
end
|
21
14
|
|
@@ -108,10 +101,10 @@ module RSpec
|
|
108
101
|
# hooks.
|
109
102
|
def setup(*methods)
|
110
103
|
methods.each do |method|
|
111
|
-
if method.to_s =~ /^setup_(
|
112
|
-
prepend_before {
|
104
|
+
if method.to_s =~ /^setup_(fixtures|controller_request_and_response)$/
|
105
|
+
prepend_before { send method }
|
113
106
|
else
|
114
|
-
before {
|
107
|
+
before { send method }
|
115
108
|
end
|
116
109
|
end
|
117
110
|
end
|
@@ -121,7 +114,7 @@ module RSpec
|
|
121
114
|
# Wraps `teardown` calls from within Rails' testing framework in
|
122
115
|
# `after` hooks.
|
123
116
|
def teardown(*methods)
|
124
|
-
methods.each { |method| after {
|
117
|
+
methods.each { |method| after { send method } }
|
125
118
|
end
|
126
119
|
end
|
127
120
|
|
data/lib/rspec/rails/example.rb
CHANGED
@@ -13,30 +13,61 @@ RSpec::configure do |c|
|
|
13
13
|
Regexp.compile(parts.join('[\\\/]') + '[\\\/]')
|
14
14
|
end
|
15
15
|
|
16
|
-
c.
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
16
|
+
controller_path_regex = c.escaped_path(%w[spec controllers])
|
17
|
+
c.include RSpec::Rails::ControllerExampleGroup,
|
18
|
+
:type => :controller,
|
19
|
+
:example_group => lambda { |example_group, metadata|
|
20
|
+
metadata[:type].nil? && controller_path_regex =~ example_group[:file_path]
|
21
|
+
}
|
22
|
+
|
23
|
+
helper_path_regex = c.escaped_path(%w[spec helpers])
|
24
|
+
c.include RSpec::Rails::HelperExampleGroup,
|
25
|
+
:type => :helper,
|
26
|
+
:example_group => lambda { |example_group, metadata|
|
27
|
+
metadata[:type].nil? && helper_path_regex =~ example_group[:file_path]
|
25
28
|
}
|
29
|
+
|
30
|
+
mailer_path_regex = c.escaped_path(%w[spec mailers])
|
31
|
+
if defined?(RSpec::Rails::MailerExampleGroup)
|
32
|
+
c.include RSpec::Rails::MailerExampleGroup,
|
33
|
+
:type => :mailer,
|
34
|
+
:example_group => lambda { |example_group, metadata|
|
35
|
+
metadata[:type].nil? && mailer_path_regex =~ example_group[:file_path]
|
36
|
+
}
|
26
37
|
end
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
:
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
c.include RSpec::Rails::
|
37
|
-
:
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
38
|
+
|
39
|
+
model_path_regex = c.escaped_path(%w[spec models])
|
40
|
+
c.include RSpec::Rails::ModelExampleGroup,
|
41
|
+
:type => :model,
|
42
|
+
:example_group => lambda { |example_group, metadata|
|
43
|
+
metadata[:type].nil? && model_path_regex =~ example_group[:file_path]
|
44
|
+
}
|
45
|
+
|
46
|
+
request_path_regex = c.escaped_path(%w[spec (requests|integration|api)])
|
47
|
+
c.include RSpec::Rails::RequestExampleGroup,
|
48
|
+
:type => :request,
|
49
|
+
:example_group => lambda { |example_group, metadata|
|
50
|
+
metadata[:type].nil? && request_path_regex =~ example_group[:file_path]
|
51
|
+
}
|
52
|
+
|
53
|
+
routing_path_regex = c.escaped_path(%w[spec routing])
|
54
|
+
c.include RSpec::Rails::RoutingExampleGroup,
|
55
|
+
:type => :routing,
|
56
|
+
:example_group => lambda { |example_group, metadata|
|
57
|
+
metadata[:type].nil? && routing_path_regex =~ example_group[:file_path]
|
58
|
+
}
|
59
|
+
|
60
|
+
view_path_regex = c.escaped_path(%w[spec views])
|
61
|
+
c.include RSpec::Rails::ViewExampleGroup,
|
62
|
+
:type => :view,
|
63
|
+
:example_group => lambda { |example_group, metadata|
|
64
|
+
metadata[:type].nil? && view_path_regex =~ example_group[:file_path]
|
65
|
+
}
|
66
|
+
|
67
|
+
feature_example_regex = c.escaped_path(%w[spec features])
|
68
|
+
c.include RSpec::Rails::FeatureExampleGroup,
|
69
|
+
:type => :feature,
|
70
|
+
:example_group => lambda { |example_group, metadata|
|
71
|
+
metadata[:type].nil? && feature_example_regex =~ example_group[:file_path]
|
72
|
+
}
|
42
73
|
end
|