rspec-rails 2.3.1 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. data/History.md +21 -1
  2. data/README.md +3 -3
  3. data/Rakefile +2 -2
  4. data/{Upgrade.markdown → Upgrade.md} +0 -0
  5. data/features/.nav +12 -7
  6. data/features/Autotest.md +10 -0
  7. data/features/Generators.md +8 -0
  8. data/features/GettingStarted.md +40 -0
  9. data/features/{README.markdown → README.md} +1 -26
  10. data/features/Upgrade.md +56 -0
  11. data/features/controller_specs/README.md +27 -16
  12. data/features/controller_specs/isolation_from_views.feature +6 -5
  13. data/features/controller_specs/render_views.feature +30 -1
  14. data/features/helper_specs/helper_spec.feature +36 -3
  15. data/features/mocks/mock_model.feature +3 -3
  16. data/features/model_specs/README.md +19 -0
  17. data/features/routing_specs/README.md +16 -0
  18. data/features/{matchers → routing_specs}/be_routable_matcher.feature +18 -18
  19. data/features/routing_specs/{access_to_named_routes.feature → named_routes.feature} +6 -3
  20. data/features/routing_specs/route_to_matcher.feature +38 -0
  21. data/lib/generators/rspec/scaffold/scaffold_generator.rb +6 -6
  22. data/lib/generators/rspec/scaffold/templates/controller_spec.rb +22 -24
  23. data/lib/rspec/rails.rb +0 -1
  24. data/lib/rspec/rails/example.rb +29 -1
  25. data/lib/rspec/rails/example/controller_example_group.rb +1 -5
  26. data/lib/rspec/rails/example/helper_example_group.rb +5 -6
  27. data/lib/rspec/rails/example/mailer_example_group.rb +1 -5
  28. data/lib/rspec/rails/example/model_example_group.rb +0 -3
  29. data/lib/rspec/rails/example/request_example_group.rb +1 -5
  30. data/lib/rspec/rails/example/routing_example_group.rb +1 -5
  31. data/lib/rspec/rails/example/view_example_group.rb +1 -4
  32. data/lib/rspec/rails/matchers/redirect_to.rb +6 -2
  33. data/lib/rspec/rails/matchers/render_template.rb +5 -1
  34. data/lib/rspec/rails/matchers/routing_matchers.rb +1 -1
  35. data/lib/rspec/rails/module_inclusion.rb +17 -0
  36. data/lib/rspec/rails/version.rb +1 -1
  37. data/lib/rspec/rails/view_rendering.rb +23 -7
  38. data/spec/rspec/rails/configuration_spec.rb +26 -0
  39. data/spec/rspec/rails/example/helper_example_group_spec.rb +18 -0
  40. data/spec/rspec/rails/example/request_example_group_spec.rb +2 -0
  41. data/spec/rspec/rails/matchers/be_routable_spec.rb +41 -0
  42. data/spec/rspec/rails/matchers/redirect_to_spec.rb +67 -8
  43. data/spec/rspec/rails/matchers/render_template_spec.rb +67 -10
  44. data/spec/rspec/rails/matchers/route_to_spec.rb +64 -33
  45. data/spec/rspec/rails/view_rendering_spec.rb +105 -0
  46. metadata +38 -20
  47. data/spec/rspec/rails/example/view_rendering_spec.rb +0 -110
@@ -3,51 +3,82 @@ require "spec_helper"
3
3
  describe "route_to" do
4
4
  include RSpec::Rails::Matchers::RoutingMatchers
5
5
 
6
- it "uses failure message from assert_recognizes" do
7
- self.stub!(:assert_recognizes).and_raise(
8
- Test::Unit::AssertionFailedError.new("this message"))
9
- expect do
10
- {"this" => "path"}.should route_to("these" => "options")
11
- end.to raise_error("this message")
6
+ it "delegates to assert_recognizes" do
7
+ self.should_receive(:assert_recognizes).with({ "these" => "options" }, { :method=> :get, :path=>"path" })
8
+ {:get => "path"}.should route_to("these" => "options")
12
9
  end
13
- end
14
-
15
- describe "be_routable" do
16
- include RSpec::Rails::Matchers::RoutingMatchers
17
- attr_reader :routes
18
-
19
- before { @routes = double("routes") }
20
10
 
21
11
  context "with should" do
22
- it "passes if routes recognize the path" do
23
- routes.stub(:recognize_path) { {} }
24
- expect do
25
- {:get => "/a/path"}.should be_routable
26
- end.to_not raise_error
12
+ context "when assert_recognizes passes" do
13
+ it "passes" do
14
+ self.stub!(:assert_recognizes)
15
+ expect do
16
+ {:get => "path"}.should route_to("these" => "options")
17
+ end.to_not raise_exception
18
+ end
27
19
  end
28
20
 
29
- it "fails if routes do not recognize the path" do
30
- routes.stub(:recognize_path) { raise ActionController::RoutingError.new('ignore') }
31
- expect do
32
- {:get => "/a/path"}.should be_routable
33
- end.to raise_error(/expected \{:get=>"\/a\/path"\} to be routable/)
21
+ context "when assert_recognizes fails" do
22
+ it "fails with message from assert_recognizes" do
23
+ self.stub!(:assert_recognizes) do
24
+ raise ActiveSupport::TestCase::Assertion.new("this message")
25
+ end
26
+ expect do
27
+ {:get => "path"}.should route_to("these" => "options")
28
+ end.to raise_error("this message")
29
+ end
30
+ end
31
+
32
+ context "when an exception is raised" do
33
+ it "raises that exception" do
34
+ self.stub!(:assert_recognizes) do
35
+ raise "oops"
36
+ end
37
+ expect do
38
+ {:get => "path"}.should route_to("these" => "options")
39
+ end.to raise_exception("oops")
40
+ end
34
41
  end
35
42
  end
36
43
 
37
44
  context "with should_not" do
45
+ context "when assert_recognizes passes" do
46
+ it "fails with custom message" do
47
+ self.stub!(:assert_recognizes)
48
+ expect do
49
+ {:get => "path"}.should_not route_to("these" => "options")
50
+ end.to raise_error(/expected .* not to route to .*/)
51
+ end
52
+ end
38
53
 
39
- it "passes if routes do not recognize the path" do
40
- routes.stub(:recognize_path) { raise ActionController::RoutingError.new('ignore') }
41
- expect do
42
- {:get => "/a/path"}.should_not be_routable
43
- end.to_not raise_error
54
+ context "when assert_recognizes fails" do
55
+ it "passes" do
56
+ self.stub!(:assert_recognizes) do
57
+ raise ActiveSupport::TestCase::Assertion.new("this message")
58
+ end
59
+ expect do
60
+ {:get => "path"}.should_not route_to("these" => "options")
61
+ end.to_not raise_error
62
+ end
44
63
  end
45
64
 
46
- it "fails if routes recognize the path" do
47
- routes.stub(:recognize_path) { {:controller => "foo"} }
48
- expect do
49
- {:get => "/a/path"}.should_not be_routable
50
- end.to raise_error(/expected \{:get=>"\/a\/path"\} not to be routable, but it routes to \{:controller=>"foo"\}/)
65
+ context "when an exception is raised" do
66
+ it "raises that exception" do
67
+ self.stub!(:assert_recognizes) do
68
+ raise "oops"
69
+ end
70
+ expect do
71
+ {:get => "path"}.should_not route_to("these" => "options")
72
+ end.to raise_exception("oops")
73
+ end
51
74
  end
52
75
  end
76
+ it "uses failure message from assert_recognizes" do
77
+ self.stub!(:assert_recognizes).and_raise(
78
+ ActiveSupport::TestCase::Assertion.new("this message"))
79
+ expect do
80
+ {"this" => "path"}.should route_to("these" => "options")
81
+ end.to raise_error("this message")
82
+ end
53
83
  end
84
+
@@ -0,0 +1,105 @@
1
+ require "spec_helper"
2
+
3
+ module RSpec::Rails
4
+ describe ViewRendering do
5
+ let(:controller) do
6
+ double("controller").tap do |controller|
7
+ controller.stub_chain("class.respond_to?").and_return(true)
8
+ end
9
+ end
10
+
11
+ let(:group) do
12
+ RSpec::Core::ExampleGroup.describe do
13
+ def controller
14
+ ActionController::Base.new
15
+ end
16
+ include ViewRendering
17
+ end
18
+ end
19
+
20
+ context "default" do
21
+ context "ActionController::Base" do
22
+ it "does not render views" do
23
+ group.new.render_views?.should be_false
24
+ end
25
+
26
+ it "does not render views in a nested group" do
27
+ group.describe{}.new.render_views?.should be_false
28
+ end
29
+ end
30
+
31
+ context "ActionController::Metal" do
32
+ it "renders views" do
33
+ group.new.tap do |example|
34
+ def example.controller
35
+ ActionController::Metal.new
36
+ end
37
+ example.render_views?.should be_true
38
+ end
39
+ end
40
+ end
41
+ end
42
+
43
+ describe "#render_views" do
44
+ context "with no args" do
45
+ it "tells examples to render views" do
46
+ group.render_views
47
+ group.new.render_views?.should be_true
48
+ end
49
+ end
50
+
51
+ context "with true" do
52
+ it "tells examples to render views" do
53
+ group.render_views true
54
+ group.new.render_views?.should be_true
55
+ end
56
+ end
57
+
58
+ context "with false" do
59
+ it "tells examples not to render views" do
60
+ group.render_views false
61
+ group.new.render_views?.should be_false
62
+ end
63
+ end
64
+
65
+ context "in a nested group" do
66
+ let(:nested_group) do
67
+ group.describe{}
68
+ end
69
+
70
+ context "with no args" do
71
+ it "tells examples to render views" do
72
+ nested_group.render_views
73
+ nested_group.new.render_views?.should be_true
74
+ end
75
+ end
76
+
77
+ context "with true" do
78
+ it "tells examples to render views" do
79
+ nested_group.render_views true
80
+ nested_group.new.render_views?.should be_true
81
+ end
82
+ end
83
+
84
+ context "with false" do
85
+ it "tells examples not to render views" do
86
+ nested_group.render_views false
87
+ nested_group.new.render_views?.should be_false
88
+ end
89
+ end
90
+
91
+ it "overrides the parent group" do
92
+ group.render_views
93
+ nested_group.render_views false
94
+ nested_group.new.render_views?.should be_false
95
+ end
96
+
97
+ it "passes override to children" do
98
+ group.render_views
99
+ nested_group.render_views false
100
+ nested_group.describe{}.new.render_views?.should be_false
101
+ end
102
+ end
103
+ end
104
+ end
105
+ end
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 2
7
- - 3
8
- - 1
9
- version: 2.3.1
7
+ - 4
8
+ - 0
9
+ version: 2.4.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - David Chelimsky
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-12-16 00:00:00 -06:00
17
+ date: 2011-01-02 00:00:00 -06:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -68,9 +68,9 @@ dependencies:
68
68
  - !ruby/object:Gem::Version
69
69
  segments:
70
70
  - 2
71
- - 3
71
+ - 4
72
72
  - 0
73
- version: 2.3.0
73
+ version: 2.4.0
74
74
  type: :runtime
75
75
  prerelease: false
76
76
  version_requirements: *id004
@@ -92,10 +92,14 @@ files:
92
92
  - README.md
93
93
  - Rakefile
94
94
  - Thorfile
95
- - Upgrade.markdown
95
+ - Upgrade.md
96
96
  - cucumber.yml
97
97
  - features/.nav
98
- - features/README.markdown
98
+ - features/Autotest.md
99
+ - features/Generators.md
100
+ - features/GettingStarted.md
101
+ - features/README.md
102
+ - features/Upgrade.md
99
103
  - features/controller_specs/README.md
100
104
  - features/controller_specs/anonymous_controller.feature
101
105
  - features/controller_specs/controller_spec.feature
@@ -104,15 +108,18 @@ files:
104
108
  - features/helper_specs/helper_spec.feature
105
109
  - features/mailer_specs/url_helpers.feature
106
110
  - features/matchers/README.md
107
- - features/matchers/be_routable_matcher.feature
108
111
  - features/matchers/new_record_matcher.feature
109
112
  - features/matchers/redirect_to_matcher.feature
110
113
  - features/matchers/render_template_matcher.feature
111
114
  - features/mocks/mock_model.feature
112
115
  - features/mocks/stub_model.feature
116
+ - features/model_specs/README.md
113
117
  - features/model_specs/errors_on.feature
114
118
  - features/model_specs/transactional_examples.feature
115
- - features/routing_specs/access_to_named_routes.feature
119
+ - features/routing_specs/README.md
120
+ - features/routing_specs/be_routable_matcher.feature
121
+ - features/routing_specs/named_routes.feature
122
+ - features/routing_specs/route_to_matcher.feature
116
123
  - features/step_definitions/model_steps.rb
117
124
  - features/step_definitions/rspec_steps.rb
118
125
  - features/support/env.rb
@@ -180,6 +187,7 @@ files:
180
187
  - rspec-rails.gemspec
181
188
  - spec/autotest/rails_rspec2_spec.rb
182
189
  - spec/rspec/rails/assertion_adapter_spec.rb
190
+ - spec/rspec/rails/configuration_spec.rb
183
191
  - spec/rspec/rails/deprecations_spec.rb
184
192
  - spec/rspec/rails/example/controller_example_group_spec.rb
185
193
  - spec/rspec/rails/example/helper_example_group_spec.rb
@@ -188,12 +196,12 @@ files:
188
196
  - spec/rspec/rails/example/request_example_group_spec.rb
189
197
  - spec/rspec/rails/example/routing_example_group_spec.rb
190
198
  - spec/rspec/rails/example/view_example_group_spec.rb
191
- - spec/rspec/rails/example/view_rendering_spec.rb
192
199
  - spec/rspec/rails/extensions/active_model/errors_on_spec.rb
193
200
  - spec/rspec/rails/extensions/active_record/records_spec.rb
194
201
  - spec/rspec/rails/fixture_support_spec.rb
195
202
  - spec/rspec/rails/matchers/be_a_new_spec.rb
196
203
  - spec/rspec/rails/matchers/be_new_record_spec.rb
204
+ - spec/rspec/rails/matchers/be_routable_spec.rb
197
205
  - spec/rspec/rails/matchers/errors_on_spec.rb
198
206
  - spec/rspec/rails/matchers/redirect_to_spec.rb
199
207
  - spec/rspec/rails/matchers/render_template_spec.rb
@@ -201,6 +209,7 @@ files:
201
209
  - spec/rspec/rails/mocks/ar_classes.rb
202
210
  - spec/rspec/rails/mocks/mock_model_spec.rb
203
211
  - spec/rspec/rails/mocks/stub_model_spec.rb
212
+ - spec/rspec/rails/view_rendering_spec.rb
204
213
  - spec/spec_helper.rb
205
214
  - spec/support/helpers.rb
206
215
  - specs.watchr
@@ -214,7 +223,7 @@ licenses: []
214
223
  post_install_message: |
215
224
  **************************************************
216
225
 
217
- Thank you for installing rspec-rails-2.3.1!
226
+ Thank you for installing rspec-rails-2.4.0!
218
227
 
219
228
  This version of rspec-rails only works with versions of rails >= 3.0.0
220
229
 
@@ -224,7 +233,7 @@ post_install_message: |
224
233
  can access its generators and rake tasks.
225
234
 
226
235
  group :development, :test do
227
- gem "rspec-rails", ">= 2.3.1"
236
+ gem "rspec-rails", ">= 2.4.0"
228
237
  end
229
238
 
230
239
  Be sure to run the following command in each of your Rails apps if you're
@@ -255,7 +264,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
255
264
  requirements:
256
265
  - - ">="
257
266
  - !ruby/object:Gem::Version
258
- hash: 2199888535887961048
267
+ hash: -2825298580951126615
259
268
  segments:
260
269
  - 0
261
270
  version: "0"
@@ -264,7 +273,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
264
273
  requirements:
265
274
  - - ">="
266
275
  - !ruby/object:Gem::Version
267
- hash: 2199888535887961048
276
+ hash: -2825298580951126615
268
277
  segments:
269
278
  - 0
270
279
  version: "0"
@@ -274,9 +283,13 @@ rubyforge_project: rspec
274
283
  rubygems_version: 1.3.7
275
284
  signing_key:
276
285
  specification_version: 3
277
- summary: rspec-rails-2.3.1
286
+ summary: rspec-rails-2.4.0
278
287
  test_files:
279
- - features/README.markdown
288
+ - features/Autotest.md
289
+ - features/Generators.md
290
+ - features/GettingStarted.md
291
+ - features/README.md
292
+ - features/Upgrade.md
280
293
  - features/controller_specs/README.md
281
294
  - features/controller_specs/anonymous_controller.feature
282
295
  - features/controller_specs/controller_spec.feature
@@ -285,15 +298,18 @@ test_files:
285
298
  - features/helper_specs/helper_spec.feature
286
299
  - features/mailer_specs/url_helpers.feature
287
300
  - features/matchers/README.md
288
- - features/matchers/be_routable_matcher.feature
289
301
  - features/matchers/new_record_matcher.feature
290
302
  - features/matchers/redirect_to_matcher.feature
291
303
  - features/matchers/render_template_matcher.feature
292
304
  - features/mocks/mock_model.feature
293
305
  - features/mocks/stub_model.feature
306
+ - features/model_specs/README.md
294
307
  - features/model_specs/errors_on.feature
295
308
  - features/model_specs/transactional_examples.feature
296
- - features/routing_specs/access_to_named_routes.feature
309
+ - features/routing_specs/README.md
310
+ - features/routing_specs/be_routable_matcher.feature
311
+ - features/routing_specs/named_routes.feature
312
+ - features/routing_specs/route_to_matcher.feature
297
313
  - features/step_definitions/model_steps.rb
298
314
  - features/step_definitions/rspec_steps.rb
299
315
  - features/support/env.rb
@@ -302,6 +318,7 @@ test_files:
302
318
  - features/view_specs/view_spec.feature
303
319
  - spec/autotest/rails_rspec2_spec.rb
304
320
  - spec/rspec/rails/assertion_adapter_spec.rb
321
+ - spec/rspec/rails/configuration_spec.rb
305
322
  - spec/rspec/rails/deprecations_spec.rb
306
323
  - spec/rspec/rails/example/controller_example_group_spec.rb
307
324
  - spec/rspec/rails/example/helper_example_group_spec.rb
@@ -310,12 +327,12 @@ test_files:
310
327
  - spec/rspec/rails/example/request_example_group_spec.rb
311
328
  - spec/rspec/rails/example/routing_example_group_spec.rb
312
329
  - spec/rspec/rails/example/view_example_group_spec.rb
313
- - spec/rspec/rails/example/view_rendering_spec.rb
314
330
  - spec/rspec/rails/extensions/active_model/errors_on_spec.rb
315
331
  - spec/rspec/rails/extensions/active_record/records_spec.rb
316
332
  - spec/rspec/rails/fixture_support_spec.rb
317
333
  - spec/rspec/rails/matchers/be_a_new_spec.rb
318
334
  - spec/rspec/rails/matchers/be_new_record_spec.rb
335
+ - spec/rspec/rails/matchers/be_routable_spec.rb
319
336
  - spec/rspec/rails/matchers/errors_on_spec.rb
320
337
  - spec/rspec/rails/matchers/redirect_to_spec.rb
321
338
  - spec/rspec/rails/matchers/render_template_spec.rb
@@ -323,5 +340,6 @@ test_files:
323
340
  - spec/rspec/rails/mocks/ar_classes.rb
324
341
  - spec/rspec/rails/mocks/mock_model_spec.rb
325
342
  - spec/rspec/rails/mocks/stub_model_spec.rb
343
+ - spec/rspec/rails/view_rendering_spec.rb
326
344
  - spec/spec_helper.rb
327
345
  - spec/support/helpers.rb
@@ -1,110 +0,0 @@
1
- require "spec_helper"
2
-
3
- module RSpec::Rails
4
- describe ViewRendering do
5
- it "doesn't render views by default" do
6
- rendering_views = nil
7
- group = RSpec::Core::ExampleGroup.describe do
8
- before(:each) do
9
- @controller = double("controller")
10
- @controller.stub_chain("class.respond_to?").and_return(true)
11
- end
12
- include ViewRendering
13
- it("does something") do
14
- rendering_views = render_views?
15
- end
16
- end
17
- group.run(double.as_null_object)
18
- rendering_views.should be_false
19
- end
20
-
21
- it "doesn't render views by default in a nested group" do
22
- rendering_views = nil
23
- group = RSpec::Core::ExampleGroup.describe do
24
- before(:each) do
25
- @controller = double("controller")
26
- @controller.stub_chain("class.respond_to?").and_return(true)
27
- end
28
- include ViewRendering
29
- describe "nested" do
30
- it("does something") do
31
- rendering_views = render_views?
32
- end
33
- end
34
- end
35
- group.run(double.as_null_object)
36
- rendering_views.should be_false
37
- end
38
-
39
- it "renders views if controller does not respond to view_paths (ActionController::Metal)" do
40
- rendering_views = false
41
- group = RSpec::Core::ExampleGroup.describe do
42
- before(:each) do
43
- @controller = double("controller")
44
- @controller.stub_chain("class.respond_to?").and_return(false)
45
- end
46
- include ViewRendering
47
- it("does something") do
48
- rendering_views = render_views?
49
- end
50
- end
51
- group.run(double.as_null_object)
52
- rendering_views.should be_true
53
- end
54
-
55
- it "renders views if told to" do
56
- rendering_views = false
57
- group = RSpec::Core::ExampleGroup.describe do
58
- before(:each) do
59
- @controller = double("controller")
60
- @controller.stub_chain("class.respond_to?").and_return(true)
61
- end
62
- include ViewRendering
63
- render_views
64
- it("does something") do
65
- rendering_views = render_views?
66
- end
67
- end
68
- group.run(double.as_null_object)
69
- rendering_views.should be_true
70
- end
71
-
72
- it "renders views if told to in a nested group" do
73
- rendering_views = nil
74
- group = RSpec::Core::ExampleGroup.describe do
75
- before(:each) do
76
- @controller = double("controller")
77
- @controller.stub_chain("class.respond_to?").and_return(true)
78
- end
79
- include ViewRendering
80
- describe "nested" do
81
- render_views
82
- it("does something") do
83
- rendering_views = render_views?
84
- end
85
- end
86
- end
87
- group.run(double.as_null_object)
88
- rendering_views.should be_true
89
- end
90
-
91
- it "renders views in a nested group if told to in an outer group" do
92
- rendering_views = nil
93
- group = RSpec::Core::ExampleGroup.describe do
94
- before(:each) do
95
- @controller = double("controller")
96
- @controller.stub_chain("class.respond_to?").and_return(true)
97
- end
98
- include ViewRendering
99
- render_views
100
- describe "nested" do
101
- it("does something") do
102
- rendering_views = render_views?
103
- end
104
- end
105
- end
106
- group.run(double.as_null_object)
107
- rendering_views.should be_true
108
- end
109
- end
110
- end