rspec-rails 2.0.0.beta.8 → 2.0.0.beta.9.1

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 (61) hide show
  1. data/README.markdown +82 -27
  2. data/Rakefile +7 -7
  3. data/Upgrade.markdown +12 -0
  4. data/VERSION +1 -1
  5. data/autotest/discover.rb +1 -0
  6. data/cucumber.yml +3 -0
  7. data/example_app_template.rb +2 -2
  8. data/features/controller_specs/do_not_render_views.feature +61 -0
  9. data/features/controller_specs/readers.feature +18 -0
  10. data/features/controller_specs/render_views.feature +53 -0
  11. data/features/model_specs/errors_on.feature +32 -0
  12. data/features/model_specs/transactional_examples.feature +2 -2
  13. data/features/view_specs/view_spec.feature +102 -1
  14. data/lib/autotest/rails_rspec2.rb +1 -1
  15. data/lib/generators/rspec/helper/helper_generator.rb +1 -0
  16. data/lib/generators/rspec/helper/templates/helper_spec.rb +3 -3
  17. data/lib/generators/rspec/install/install_generator.rb +7 -7
  18. data/lib/generators/rspec/scaffold/scaffold_generator.rb +10 -1
  19. data/lib/generators/rspec/scaffold/templates/edit_spec.rb +1 -1
  20. data/lib/generators/rspec/scaffold/templates/index_spec.rb +1 -1
  21. data/lib/generators/rspec/scaffold/templates/new_spec.rb +1 -1
  22. data/lib/generators/rspec/scaffold/templates/show_spec.rb +2 -2
  23. data/lib/rspec-rails.rb +12 -0
  24. data/lib/rspec/rails.rb +8 -0
  25. data/lib/rspec/rails/adapters.rb +12 -8
  26. data/lib/rspec/rails/example.rb +1 -0
  27. data/lib/rspec/rails/example/controller_example_group.rb +13 -12
  28. data/lib/rspec/rails/example/helper_example_group.rb +43 -0
  29. data/lib/rspec/rails/example/mailer_example_group.rb +10 -5
  30. data/lib/rspec/rails/example/request_example_group.rb +7 -7
  31. data/lib/rspec/rails/example/view_example_group.rb +44 -62
  32. data/lib/rspec/rails/extensions.rb +1 -0
  33. data/lib/rspec/rails/extensions/active_record/base.rb +46 -0
  34. data/lib/rspec/rails/matchers.rb +28 -3
  35. data/lib/rspec/rails/mocks.rb +3 -3
  36. data/lib/rspec/rails/monkey.rb +1 -0
  37. data/lib/rspec/rails/monkey/action_controller/test_case.rb +153 -145
  38. data/lib/rspec/rails/monkey/action_view/test_case.rb +201 -0
  39. data/lib/rspec/rails/null_resolver.rb +10 -0
  40. data/lib/{generators/rspec/install/templates/lib → rspec/rails}/tasks/rspec.rake +4 -5
  41. data/lib/rspec/rails/transactional_database_support.rb +4 -6
  42. data/lib/rspec/rails/version.rb +1 -1
  43. data/lib/rspec/rails/view_assigns.rb +28 -0
  44. data/lib/rspec/rails/view_rendering.rb +33 -0
  45. data/rspec-rails.gemspec +41 -11
  46. data/spec/rspec/rails/example/controller_example_group_spec.rb +11 -0
  47. data/spec/rspec/rails/example/helper_example_group_spec.rb +20 -0
  48. data/spec/rspec/rails/example/mailer_example_group_spec.rb +11 -0
  49. data/spec/rspec/rails/example/request_example_group_spec.rb +11 -0
  50. data/spec/rspec/rails/example/view_example_group_spec.rb +75 -0
  51. data/spec/rspec/rails/example/view_rendering_spec.rb +68 -0
  52. data/spec/rspec/rails/matchers/errors_on_spec.rb +38 -0
  53. data/spec/rspec/rails/mocks/ar_classes.rb +1 -1
  54. data/spec/rspec/rails/mocks/mock_model_spec.rb +88 -65
  55. data/spec/rspec/rails/mocks/stub_model_spec.rb +1 -1
  56. data/spec/rspec/rails/transactional_database_support_spec.rb +2 -2
  57. data/spec/spec_helper.rb +18 -2
  58. data/spec/support/helpers.rb +20 -0
  59. data/specs.watchr +10 -10
  60. data/templates/generate_stuff.rb +3 -1
  61. metadata +40 -9
@@ -42,7 +42,7 @@ describe "stub_model" do
42
42
  lambda do
43
43
  model = stub_model(MockableModel, :changed => true, :attributes_with_quotes => {'this' => 'that'})
44
44
  model.save
45
- end.should raise_error(Rspec::Rails::IllegalDataAccessException, /stubbed models are not allowed to access the database/)
45
+ end.should raise_error(RSpec::Rails::IllegalDataAccessException, /stubbed models are not allowed to access the database/)
46
46
  end
47
47
 
48
48
  it "should increment the id" do
@@ -1,11 +1,11 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Rspec::Rails::TransactionalDatabaseSupport do
3
+ describe RSpec::Rails::TransactionalDatabaseSupport do
4
4
 
5
5
  let(:connection) { double('connection', :open_transactions => 1) }
6
6
  let(:test_bed) do
7
7
  Class.new do
8
- include Rspec::Rails::TransactionalDatabaseSupport
8
+ include RSpec::Rails::TransactionalDatabaseSupport
9
9
  def active_record_configured?; true; end
10
10
  end.new
11
11
  end
@@ -3,11 +3,27 @@ Bundler.setup
3
3
 
4
4
  require 'rspec/rails'
5
5
 
6
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
7
+
8
+ # TODO - most of this is borrowed from rspec-core's spec_helper - should
9
+ # be extracted to something we can use here
6
10
  def in_editor?
7
11
  ENV.has_key?('TM_MODE') || ENV.has_key?('EMACS') || ENV.has_key?('VIM')
8
12
  end
9
13
 
10
- Rspec.configure do |c|
11
- c.color_enabled = !in_editor?
14
+ class RSpec::Core::ExampleGroup
15
+ def self.run_all(reporter=nil)
16
+ run(reporter || RSpec::Mocks::Mock.new('reporter').as_null_object)
17
+ end
12
18
  end
13
19
 
20
+ RSpec.configure do |c|
21
+ c.color_enabled = !in_editor?
22
+ c.before(:each) do
23
+ @real_world = RSpec.world
24
+ RSpec.instance_variable_set(:@world, RSpec::Core::World.new)
25
+ end
26
+ c.after(:each) do
27
+ RSpec.instance_variable_set(:@world, @real_world)
28
+ end
29
+ end
@@ -0,0 +1,20 @@
1
+ module Helpers
2
+ def stub_metadata(additional_metadata)
3
+ stub_metadata = metadata_with(additional_metadata)
4
+ RSpec::Core::ExampleGroup.stub(:metadata) { stub_metadata }
5
+ end
6
+
7
+ def metadata_with(additional_metadata)
8
+ m = RSpec::Core::Metadata.new
9
+ m.process("example group")
10
+
11
+ group_metadata = additional_metadata.delete(:example_group)
12
+ if group_metadata
13
+ m[:example_group].merge!(group_metadata)
14
+ end
15
+ m.merge!(additional_metadata)
16
+ m
17
+ end
18
+
19
+ RSpec.configure {|c| c.include self}
20
+ end
@@ -5,12 +5,12 @@
5
5
  # --------------------------------------------------
6
6
  # Convenience Methods
7
7
  # --------------------------------------------------
8
- def all_test_files
8
+ def all_spec_files
9
9
  Dir['spec/**/*_spec.rb']
10
10
  end
11
11
 
12
- def run_test_matching(thing_to_match)
13
- matches = all_test_files.grep(/#{thing_to_match}/i)
12
+ def run_spec_matching(thing_to_match)
13
+ matches = all_spec_files.grep(/#{thing_to_match}/i)
14
14
  if matches.empty?
15
15
  puts "Sorry, thanks for playing, but there were no matches for #{thing_to_match}"
16
16
  else
@@ -24,17 +24,17 @@ def run(files_to_run)
24
24
  no_int_for_you
25
25
  end
26
26
 
27
- def run_all_tests
28
- run(all_test_files.join(' '))
27
+ def run_all_specs
28
+ run(all_spec_files.join(' '))
29
29
  end
30
30
 
31
31
  # --------------------------------------------------
32
32
  # Watchr Rules
33
33
  # --------------------------------------------------
34
- watch('^spec/(.*)_spec\.rb') { |m| run_test_matching(m[1]) }
35
- watch('^lib/(.*)\.rb') { |m| run_test_matching(m[1]) }
36
- watch('^spec/spec_helper\.rb') { run_all_tests }
37
- watch('^spec/support/.*\.rb') { run_all_tests }
34
+ watch('^spec/(.*)_spec\.rb') { |m| run_spec_matching(m[1]) }
35
+ watch('^lib/(.*)\.rb') { |m| run_spec_matching(m[1]) }
36
+ watch('^spec/spec_helper\.rb') { run_all_specs }
37
+ watch('^spec/support/.*\.rb') { run_all_specs }
38
38
 
39
39
  # --------------------------------------------------
40
40
  # Signal Handling
@@ -52,7 +52,7 @@ Signal.trap 'INT' do
52
52
  puts " Did you just send me an INT? Ugh. I'll quit for real if you do it again."
53
53
  @sent_an_int = true
54
54
  Kernel.sleep 1.5
55
- run_all_tests
55
+ run_all_specs
56
56
  end
57
57
  end
58
58
 
@@ -3,8 +3,10 @@ generate('controller wombats index')
3
3
  generate('integration_test widgets')
4
4
  generate('mailer Notifications signup')
5
5
  generate('model thing name:string')
6
- generate('observer widget')
6
+ generate('helper things')
7
7
  generate('scaffold widget name:string')
8
+ generate('observer widget')
9
+ generate('scaffold gadget ') # scaffold with no attributes
8
10
 
9
11
  run('rake db:migrate')
10
12
  run('rake db:test:prepare')
metadata CHANGED
@@ -7,8 +7,9 @@ version: !ruby/object:Gem::Version
7
7
  - 0
8
8
  - 0
9
9
  - beta
10
- - 8
11
- version: 2.0.0.beta.8
10
+ - 9
11
+ - 1
12
+ version: 2.0.0.beta.9.1
12
13
  platform: ruby
13
14
  authors:
14
15
  - David Chelimsky
@@ -17,7 +18,7 @@ autorequire:
17
18
  bindir: bin
18
19
  cert_chain: []
19
20
 
20
- date: 2010-04-27 00:00:00 -05:00
21
+ date: 2010-05-27 00:00:00 -05:00
21
22
  default_executable:
22
23
  dependencies:
23
24
  - !ruby/object:Gem::Dependency
@@ -32,8 +33,8 @@ dependencies:
32
33
  - 0
33
34
  - 0
34
35
  - beta
35
- - 8
36
- version: 2.0.0.beta.8
36
+ - 9
37
+ version: 2.0.0.beta.9
37
38
  type: :runtime
38
39
  version_requirements: *id001
39
40
  - !ruby/object:Gem::Dependency
@@ -50,7 +51,7 @@ dependencies:
50
51
  version: 0.7.0
51
52
  type: :runtime
52
53
  version_requirements: *id002
53
- description: Rspec-2 for Rails-3
54
+ description: RSpec-2 for Rails-3
54
55
  email: dchelimsky@gmail.com;chad.humphries@gmail.com
55
56
  executables: []
56
57
 
@@ -63,9 +64,16 @@ files:
63
64
  - Gemfile
64
65
  - README.markdown
65
66
  - Rakefile
67
+ - Upgrade.markdown
66
68
  - VERSION
69
+ - autotest/discover.rb
70
+ - cucumber.yml
67
71
  - example_app_template.rb
72
+ - features/controller_specs/do_not_render_views.feature
73
+ - features/controller_specs/readers.feature
74
+ - features/controller_specs/render_views.feature
68
75
  - features/matchers/new_record_matcher.feature
76
+ - features/model_specs/errors_on.feature
69
77
  - features/model_specs/transactional_examples.feature
70
78
  - features/step_definitions/model_steps.rb
71
79
  - features/support/env.rb
@@ -80,7 +88,6 @@ files:
80
88
  - lib/generators/rspec/install/install_generator.rb
81
89
  - lib/generators/rspec/install/templates/autotest/discover.rb
82
90
  - lib/generators/rspec/install/templates/config/initializers/rspec_generator.rb.tt
83
- - lib/generators/rspec/install/templates/lib/tasks/rspec.rake
84
91
  - lib/generators/rspec/install/templates/spec/spec_helper.rb
85
92
  - lib/generators/rspec/integration/integration_generator.rb
86
93
  - lib/generators/rspec/integration/templates/request_spec.rb
@@ -106,18 +113,33 @@ files:
106
113
  - lib/rspec/rails/adapters.rb
107
114
  - lib/rspec/rails/example.rb
108
115
  - lib/rspec/rails/example/controller_example_group.rb
116
+ - lib/rspec/rails/example/helper_example_group.rb
109
117
  - lib/rspec/rails/example/mailer_example_group.rb
110
118
  - lib/rspec/rails/example/request_example_group.rb
111
119
  - lib/rspec/rails/example/view_example_group.rb
120
+ - lib/rspec/rails/extensions.rb
121
+ - lib/rspec/rails/extensions/active_record/base.rb
112
122
  - lib/rspec/rails/matchers.rb
113
123
  - lib/rspec/rails/mocks.rb
114
124
  - lib/rspec/rails/monkey.rb
115
125
  - lib/rspec/rails/monkey/action_controller/test_case.rb
126
+ - lib/rspec/rails/monkey/action_view/test_case.rb
116
127
  - lib/rspec/rails/monkey/active_support/notifications/fanout.rb
128
+ - lib/rspec/rails/null_resolver.rb
129
+ - lib/rspec/rails/tasks/rspec.rake
117
130
  - lib/rspec/rails/transactional_database_support.rb
118
131
  - lib/rspec/rails/version.rb
132
+ - lib/rspec/rails/view_assigns.rb
133
+ - lib/rspec/rails/view_rendering.rb
119
134
  - rspec-rails.gemspec
135
+ - spec/rspec/rails/example/controller_example_group_spec.rb
136
+ - spec/rspec/rails/example/helper_example_group_spec.rb
137
+ - spec/rspec/rails/example/mailer_example_group_spec.rb
138
+ - spec/rspec/rails/example/request_example_group_spec.rb
139
+ - spec/rspec/rails/example/view_example_group_spec.rb
140
+ - spec/rspec/rails/example/view_rendering_spec.rb
120
141
  - spec/rspec/rails/matchers/be_a_new_spec.rb
142
+ - spec/rspec/rails/matchers/errors_on_spec.rb
121
143
  - spec/rspec/rails/matchers/redirect_to_spec.rb
122
144
  - spec/rspec/rails/matchers/render_template_spec.rb
123
145
  - spec/rspec/rails/mocks/ar_classes.rb
@@ -125,6 +147,7 @@ files:
125
147
  - spec/rspec/rails/mocks/stub_model_spec.rb
126
148
  - spec/rspec/rails/transactional_database_support_spec.rb
127
149
  - spec/spec_helper.rb
150
+ - spec/support/helpers.rb
128
151
  - specs.watchr
129
152
  - templates/generate_stuff.rb
130
153
  - templates/run_specs.rb
@@ -135,7 +158,7 @@ licenses: []
135
158
  post_install_message: |
136
159
  **************************************************
137
160
 
138
- Thank you for installing rspec-rails-2.0.0.beta.8!
161
+ Thank you for installing rspec-rails-2.0.0.beta.9.1!
139
162
 
140
163
  This version of rspec-rails only works with
141
164
  versions of rails >= 3.0.0.pre.
@@ -172,9 +195,16 @@ rubyforge_project: rspec
172
195
  rubygems_version: 1.3.6
173
196
  signing_key:
174
197
  specification_version: 3
175
- summary: rspec-rails-2.0.0.beta.8
198
+ summary: rspec-rails-2.0.0.beta.9.1
176
199
  test_files:
200
+ - spec/rspec/rails/example/controller_example_group_spec.rb
201
+ - spec/rspec/rails/example/helper_example_group_spec.rb
202
+ - spec/rspec/rails/example/mailer_example_group_spec.rb
203
+ - spec/rspec/rails/example/request_example_group_spec.rb
204
+ - spec/rspec/rails/example/view_example_group_spec.rb
205
+ - spec/rspec/rails/example/view_rendering_spec.rb
177
206
  - spec/rspec/rails/matchers/be_a_new_spec.rb
207
+ - spec/rspec/rails/matchers/errors_on_spec.rb
178
208
  - spec/rspec/rails/matchers/redirect_to_spec.rb
179
209
  - spec/rspec/rails/matchers/render_template_spec.rb
180
210
  - spec/rspec/rails/mocks/ar_classes.rb
@@ -182,3 +212,4 @@ test_files:
182
212
  - spec/rspec/rails/mocks/stub_model_spec.rb
183
213
  - spec/rspec/rails/transactional_database_support_spec.rb
184
214
  - spec/spec_helper.rb
215
+ - spec/support/helpers.rb