rspec-rails 2.0.0.beta.13 → 2.0.0.beta.14.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. data/README.markdown +75 -54
  2. data/Rakefile +5 -2
  3. data/Upgrade.markdown +13 -13
  4. data/VERSION +1 -1
  5. data/features/controller_specs/{do_not_render_views.feature → isolation_from_views.feature} +12 -11
  6. data/features/controller_specs/render_views.feature +8 -8
  7. data/features/{routing_specs → matchers}/be_routable_matcher.feature +18 -2
  8. data/lib/generators/rspec/install/templates/spec/spec_helper.rb +2 -2
  9. data/lib/generators/rspec/scaffold/scaffold_generator.rb +9 -0
  10. data/lib/generators/rspec/scaffold/templates/controller_spec.rb +1 -1
  11. data/lib/generators/rspec/scaffold/templates/index_spec.rb +2 -2
  12. data/lib/generators/rspec/scaffold/templates/show_spec.rb +2 -2
  13. data/lib/rspec/rails.rb +3 -0
  14. data/lib/rspec/rails/example/controller_example_group.rb +5 -8
  15. data/lib/rspec/rails/example/helper_example_group.rb +3 -6
  16. data/lib/rspec/rails/example/mailer_example_group.rb +2 -7
  17. data/lib/rspec/rails/example/request_example_group.rb +2 -6
  18. data/lib/rspec/rails/example/routing_example_group.rb +3 -4
  19. data/lib/rspec/rails/example/view_example_group.rb +3 -6
  20. data/lib/rspec/rails/matchers.rb +1 -11
  21. data/lib/rspec/rails/matchers/{routing_spec_matchers.rb → routing_matchers.rb} +2 -2
  22. data/lib/rspec/rails/mocks.rb +11 -1
  23. data/lib/rspec/rails/module_inclusion.rb +11 -0
  24. data/lib/rspec/rails/monkey/action_mailer/test_case.rb +48 -48
  25. data/lib/rspec/rails/view_rendering.rb +30 -6
  26. data/rspec-rails.gemspec +16 -12
  27. data/spec/rspec/rails/example/controller_example_group_spec.rb +8 -6
  28. data/spec/rspec/rails/example/helper_example_group_spec.rb +3 -7
  29. data/spec/rspec/rails/example/mailer_example_group_spec.rb +2 -7
  30. data/spec/rspec/rails/example/request_example_group_spec.rb +2 -7
  31. data/spec/rspec/rails/example/routing_example_group_spec.rb +2 -7
  32. data/spec/rspec/rails/example/view_example_group_spec.rb +2 -7
  33. data/spec/rspec/rails/matchers/route_to_spec.rb +2 -2
  34. data/spec/rspec/rails/mocks/mock_model_spec.rb +31 -0
  35. data/spec/spec_helper.rb +18 -0
  36. data/templates/generate_stuff.rb +1 -1
  37. metadata +28 -14
@@ -2,12 +2,14 @@ require "spec_helper"
2
2
 
3
3
  module RSpec::Rails
4
4
  describe ControllerExampleGroup do
5
- it "is included in specs in ./spec/controllers" do
6
- stub_metadata(
7
- :example_group => {:file_path => "./spec/controllers/whatever_spec.rb:15"}
8
- )
9
- group = RSpec::Core::ExampleGroup.describe
10
- group.included_modules.should include(ControllerExampleGroup)
5
+ it { should be_included_in_files_in('./spec/controllers/') }
6
+ it { should be_included_in_files_in('.\\spec\\controllers\\') }
7
+
8
+ it "includes routing matchers" do
9
+ group = RSpec::Core::ExampleGroup.describe do
10
+ include ControllerExampleGroup
11
+ end
12
+ group.included_modules.should include(RSpec::Rails::Matchers::RoutingMatchers)
11
13
  end
12
14
  end
13
15
  end
@@ -3,14 +3,10 @@ require "spec_helper"
3
3
  module RSpec::Rails
4
4
  describe HelperExampleGroup::InstanceMethods do
5
5
  module ::FoosHelper; end
6
+ subject { HelperExampleGroup }
6
7
 
7
- it "is included in specs in ./spec/views" do
8
- stub_metadata(
9
- :example_group => {:file_path => "./spec/helpers/whatever_spec.rb:15"}
10
- )
11
- group = RSpec::Core::ExampleGroup.describe
12
- group.included_modules.should include(HelperExampleGroup)
13
- end
8
+ it { should be_included_in_files_in('./spec/helpers/') }
9
+ it { should be_included_in_files_in('.\\spec\\helpers\\') }
14
10
 
15
11
  it "provides a controller_path based on the helper module's name" do
16
12
  helper_spec = Object.new.extend HelperExampleGroup::InstanceMethods
@@ -2,12 +2,7 @@ require "spec_helper"
2
2
 
3
3
  module RSpec::Rails
4
4
  describe MailerExampleGroup do
5
- it "is included in specs in ./spec/mailers" do
6
- stub_metadata(
7
- :example_group => {:file_path => "./spec/mailers/whatever_spec.rb:15"}
8
- )
9
- group = RSpec::Core::ExampleGroup.describe
10
- group.included_modules.should include(MailerExampleGroup)
11
- end
5
+ it { should be_included_in_files_in('./spec/mailers/') }
6
+ it { should be_included_in_files_in('.\\spec\\mailers\\') }
12
7
  end
13
8
  end
@@ -2,12 +2,7 @@ require "spec_helper"
2
2
 
3
3
  module RSpec::Rails
4
4
  describe RequestExampleGroup do
5
- it "is included in specs in ./spec/requests" do
6
- stub_metadata(
7
- :example_group => {:file_path => "./spec/requests/whatever_spec.rb:15"}
8
- )
9
- group = RSpec::Core::ExampleGroup.describe
10
- group.included_modules.should include(RequestExampleGroup)
11
- end
5
+ it { should be_included_in_files_in('./spec/requests/') }
6
+ it { should be_included_in_files_in('.\\spec\\requests\\') }
12
7
  end
13
8
  end
@@ -2,12 +2,7 @@ require "spec_helper"
2
2
 
3
3
  module RSpec::Rails
4
4
  describe RoutingExampleGroup do
5
- it "is included in specs in ./spec/routing" do
6
- stub_metadata(
7
- :example_group => {:file_path => "./spec/routing/whatever_spec.rb:15"}
8
- )
9
- group = RSpec::Core::ExampleGroup.describe
10
- group.included_modules.should include(RoutingExampleGroup)
11
- end
5
+ it { should be_included_in_files_in('./spec/routing/') }
6
+ it { should be_included_in_files_in('.\\spec\\routing\\') }
12
7
  end
13
8
  end
@@ -2,13 +2,8 @@ require "spec_helper"
2
2
 
3
3
  module RSpec::Rails
4
4
  describe ViewExampleGroup do
5
- it "is included in specs in ./spec/views" do
6
- stub_metadata(
7
- :example_group => {:file_path => "./spec/views/whatever_spec.rb:15"}
8
- )
9
- group = RSpec::Core::ExampleGroup.describe
10
- group.included_modules.should include(ViewExampleGroup)
11
- end
5
+ it { should be_included_in_files_in('./spec/views/') }
6
+ it { should be_included_in_files_in('.\\spec\\views\\') }
12
7
 
13
8
  describe "#render" do
14
9
  let(:view_spec) do
@@ -1,7 +1,7 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe "route_to" do
4
- include RSpec::Rails::RoutingSpecMatchers
4
+ include RSpec::Rails::Matchers::RoutingMatchers
5
5
 
6
6
  it "uses failure message from assert_routing" do
7
7
  self.stub!(:assert_routing).and_raise(
@@ -13,7 +13,7 @@ describe "route_to" do
13
13
  end
14
14
 
15
15
  describe "be_routable" do
16
- include RSpec::Rails::RoutingSpecMatchers
16
+ include RSpec::Rails::Matchers::RoutingMatchers
17
17
  attr_reader :routes
18
18
 
19
19
  before { @routes = double("routes") }
@@ -14,6 +14,37 @@ describe "mock_model(RealModel)" do
14
14
  end
15
15
  end
16
16
 
17
+ describe "destroy" do
18
+ it "sets id to nil" do
19
+ model = mock_model(MockableModel)
20
+ model.destroy
21
+ model.id.should be_nil
22
+ end
23
+ end
24
+
25
+ describe "errors" do
26
+ context "default" do
27
+ it "is empty" do
28
+ model = mock_model(MockableModel)
29
+ model.errors.should be_empty
30
+ end
31
+ end
32
+
33
+ context "with :save => false" do
34
+ it "is not empty" do
35
+ model = mock_model(MockableModel, :save => false)
36
+ model.errors.should_not be_empty
37
+ end
38
+ end
39
+
40
+ context "with :update_attributes => false" do
41
+ it "is not empty" do
42
+ model = mock_model(MockableModel, :save => false)
43
+ model.errors.should_not be_empty
44
+ end
45
+ end
46
+ end
47
+
17
48
  describe "with params" do
18
49
  it "does not mutate its parameters" do
19
50
  params = {:a => 'b'}
@@ -1,6 +1,9 @@
1
1
  require 'bundler'
2
2
  Bundler.setup
3
3
 
4
+ require 'active_record'
5
+ require 'action_controller'
6
+ require 'action_mailer'
4
7
  require 'rspec/rails'
5
8
 
6
9
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
@@ -17,7 +20,22 @@ class RSpec::Core::ExampleGroup
17
20
  end
18
21
  end
19
22
 
23
+ module MatchesForRSpecRailsSpecs
24
+ extend RSpec::Matchers::DSL
25
+
26
+ matcher :be_included_in_files_in do |path|
27
+ match do |mod|
28
+ stub_metadata(
29
+ :example_group => {:file_path => "#{path}whatever_spec.rb:15"}
30
+ )
31
+ group = RSpec::Core::ExampleGroup.describe
32
+ group.included_modules.include?(mod)
33
+ end
34
+ end
35
+ end
36
+
20
37
  RSpec.configure do |c|
38
+ c.include MatchesForRSpecRailsSpecs
21
39
  c.color_enabled = !in_editor?
22
40
  c.before(:each) do
23
41
  @real_world = RSpec.world
@@ -4,7 +4,7 @@ generate('integration_test widgets')
4
4
  generate('mailer Notifications signup')
5
5
  generate('model thing name:string')
6
6
  generate('helper things')
7
- generate('scaffold widget name:string')
7
+ generate('scaffold widget name:string category:string instock:boolean')
8
8
  generate('observer widget')
9
9
  generate('scaffold gadget ') # scaffold with no attributes
10
10
 
metadata CHANGED
@@ -1,14 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-rails
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 124392765
4
5
  prerelease: true
5
6
  segments:
6
7
  - 2
7
8
  - 0
8
9
  - 0
9
10
  - beta
10
- - 13
11
- version: 2.0.0.beta.13
11
+ - 14
12
+ - 1
13
+ version: 2.0.0.beta.14.1
12
14
  platform: ruby
13
15
  authors:
14
16
  - David Chelimsky
@@ -17,39 +19,43 @@ autorequire:
17
19
  bindir: bin
18
20
  cert_chain: []
19
21
 
20
- date: 2010-06-23 00:00:00 -05:00
22
+ date: 2010-06-27 00:00:00 -05:00
21
23
  default_executable:
22
24
  dependencies:
23
25
  - !ruby/object:Gem::Dependency
24
26
  type: :runtime
27
+ prerelease: false
25
28
  name: rspec
26
29
  version_requirements: &id001 !ruby/object:Gem::Requirement
30
+ none: false
27
31
  requirements:
28
- - - "="
32
+ - - ">="
29
33
  - !ruby/object:Gem::Version
34
+ hash: 62196479
30
35
  segments:
31
36
  - 2
32
37
  - 0
33
38
  - 0
34
39
  - beta
35
- - 13
36
- version: 2.0.0.beta.13
40
+ - 14
41
+ version: 2.0.0.beta.14
37
42
  requirement: *id001
38
- prerelease: false
39
43
  - !ruby/object:Gem::Dependency
40
44
  type: :runtime
45
+ prerelease: false
41
46
  name: webrat
42
47
  version_requirements: &id002 !ruby/object:Gem::Requirement
48
+ none: false
43
49
  requirements:
44
50
  - - ">="
45
51
  - !ruby/object:Gem::Version
52
+ hash: 3
46
53
  segments:
47
54
  - 0
48
55
  - 7
49
56
  - 0
50
57
  version: 0.7.0
51
58
  requirement: *id002
52
- prerelease: false
53
59
  description: RSpec-2 for Rails-3
54
60
  email: dchelimsky@gmail.com;chad.humphries@gmail.com
55
61
  executables: []
@@ -68,13 +74,13 @@ files:
68
74
  - VERSION
69
75
  - autotest/discover.rb
70
76
  - cucumber.yml
71
- - features/controller_specs/do_not_render_views.feature
77
+ - features/controller_specs/isolation_from_views.feature
72
78
  - features/controller_specs/readers.feature
73
79
  - features/controller_specs/render_views.feature
80
+ - features/matchers/be_routable_matcher.feature
74
81
  - features/matchers/new_record_matcher.feature
75
82
  - features/model_specs/errors_on.feature
76
83
  - features/model_specs/transactional_examples.feature
77
- - features/routing_specs/be_routable_matcher.feature
78
84
  - features/step_definitions/model_steps.rb
79
85
  - features/support/env.rb
80
86
  - features/view_specs/view_spec.feature
@@ -128,8 +134,9 @@ files:
128
134
  - lib/rspec/rails/matchers/have_extension.rb
129
135
  - lib/rspec/rails/matchers/redirect_to.rb
130
136
  - lib/rspec/rails/matchers/render_template.rb
131
- - lib/rspec/rails/matchers/routing_spec_matchers.rb
137
+ - lib/rspec/rails/matchers/routing_matchers.rb
132
138
  - lib/rspec/rails/mocks.rb
139
+ - lib/rspec/rails/module_inclusion.rb
133
140
  - lib/rspec/rails/monkey.rb
134
141
  - lib/rspec/rails/monkey/action_mailer/test_case.rb
135
142
  - lib/rspec/rails/version.rb
@@ -164,7 +171,7 @@ licenses: []
164
171
  post_install_message: |
165
172
  **************************************************
166
173
 
167
- Thank you for installing rspec-rails-2.0.0.beta.13!
174
+ Thank you for installing rspec-rails-2.0.0.beta.14.1!
168
175
 
169
176
  This version of rspec-rails only works with
170
177
  versions of rails >= 3.0.0.pre.
@@ -174,6 +181,9 @@ post_install_message: |
174
181
 
175
182
  script/rails generate rspec:install
176
183
 
184
+ Also, be sure to look at Upgrade.markdown to see
185
+ what might have changed since the last release.
186
+
177
187
  **************************************************
178
188
 
179
189
  rdoc_options:
@@ -181,16 +191,20 @@ rdoc_options:
181
191
  require_paths:
182
192
  - lib
183
193
  required_ruby_version: !ruby/object:Gem::Requirement
194
+ none: false
184
195
  requirements:
185
196
  - - ">="
186
197
  - !ruby/object:Gem::Version
198
+ hash: 3
187
199
  segments:
188
200
  - 0
189
201
  version: "0"
190
202
  required_rubygems_version: !ruby/object:Gem::Requirement
203
+ none: false
191
204
  requirements:
192
205
  - - ">"
193
206
  - !ruby/object:Gem::Version
207
+ hash: 25
194
208
  segments:
195
209
  - 1
196
210
  - 3
@@ -199,10 +213,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
199
213
  requirements: []
200
214
 
201
215
  rubyforge_project: rspec
202
- rubygems_version: 1.3.6
216
+ rubygems_version: 1.3.7
203
217
  signing_key:
204
218
  specification_version: 3
205
- summary: rspec-rails-2.0.0.beta.13
219
+ summary: rspec-rails-2.0.0.beta.14.1
206
220
  test_files:
207
221
  - spec/rspec/rails/example/controller_example_group_spec.rb
208
222
  - spec/rspec/rails/example/helper_example_group_spec.rb