rspec-rails 1.2.9 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.rdoc +7 -0
- data/Rakefile +1 -1
- data/Upgrade.rdoc +1 -1
- data/generators/rspec/rspec_generator.rb +20 -0
- data/generators/rspec/templates/spec_helper.rb +1 -1
- data/generators/rspec_scaffold/templates/controller_spec.rb +13 -13
- data/lib/spec/rails/example/controller_example_group.rb +33 -26
- data/lib/spec/rails/example/functional_example_group.rb +1 -1
- data/lib/spec/rails/example/model_example_group.rb +2 -1
- data/lib/spec/rails/matchers/ar_be_valid.rb +15 -38
- data/lib/spec/rails/mocks.rb +1 -0
- data/lib/spec/rails/version.rb +2 -2
- data/spec/resources/views/view_spec/accessor.html.erb +1 -0
- data/spec/spec/rails/example/model_example_group_spec.rb +12 -0
- data/spec/spec/rails/example/view_example_group_spec.rb +11 -14
- data/spec/spec/rails/mocks/mock_model_spec.rb +3 -0
- metadata +5 -5
data/History.rdoc
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
=== Version 1.3.0 / 2010-01-11
|
2
|
+
|
3
|
+
* enhancements
|
4
|
+
* use stub() instead of stub!() in generators
|
5
|
+
* generate gem config in test.rb with 'script/generate rspec'
|
6
|
+
|
1
7
|
=== Version 1.2.9 / 2009-10-05
|
2
8
|
|
3
9
|
* enhancements
|
@@ -15,6 +21,7 @@
|
|
15
21
|
* no error if either action or template exist
|
16
22
|
* error if neither exist
|
17
23
|
* Closes #888.
|
24
|
+
* mock_model stubs destroyed? to return false
|
18
25
|
|
19
26
|
* removals
|
20
27
|
* spec_server has been removed in favor of spork.
|
data/Rakefile
CHANGED
@@ -15,7 +15,7 @@ Hoe.spec 'rspec-rails' do
|
|
15
15
|
self.description = "Behaviour Driven Development for Ruby on Rails."
|
16
16
|
self.rubyforge_name = 'rspec'
|
17
17
|
self.developer 'RSpec Development Team', 'rspec-devel@rubyforge.org'
|
18
|
-
self.extra_deps = [["rspec",">=1.
|
18
|
+
self.extra_deps = [["rspec",">=1.3.0"],["rack",">=1.0.0"]]
|
19
19
|
self.extra_dev_deps = [["cucumber",">= 0.3.99"]]
|
20
20
|
self.remote_rdoc_dir = "rspec-rails/#{Spec::Rails::VERSION::STRING}"
|
21
21
|
self.history_file = 'History.rdoc'
|
data/Upgrade.rdoc
CHANGED
@@ -24,6 +24,26 @@ file so that it can be updated and you can manually restore your changes.
|
|
24
24
|
HELPFUL_INSTRUCTIONS
|
25
25
|
end
|
26
26
|
Dir.mkdir('lib/tasks') unless File.directory?('lib/tasks')
|
27
|
+
|
28
|
+
if Rails::VERSION::STRING >= '2.1'
|
29
|
+
test_env = 'config/environments/test.rb'
|
30
|
+
contents = File.read(test_env)
|
31
|
+
unless contents =~ /config\.gem\s+(\"|\')rspec/m
|
32
|
+
puts "Configuring rspec and rspec-rails gems in #{test_env} ..."
|
33
|
+
puts
|
34
|
+
require File.expand_path('../../../lib/spec/rails/version.rb', __FILE__)
|
35
|
+
rspec_config = <<-EOF
|
36
|
+
config.gem 'rspec', :version => '>= #{Spec::Rails::VERSION::STRING}', :lib => false unless File.directory?(File.join(Rails.root, 'vendor/plugins/rspec'))
|
37
|
+
config.gem 'rspec-rails', :version => '>= #{Spec::Rails::VERSION::STRING}', :lib => false unless File.directory?(File.join(Rails.root, 'vendor/plugins/rspec-rails'))
|
38
|
+
EOF
|
39
|
+
File.open(test_env, "wb") do |f|
|
40
|
+
f.puts contents
|
41
|
+
f.puts
|
42
|
+
f.puts rspec_config
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
27
47
|
super
|
28
48
|
end
|
29
49
|
|
@@ -41,7 +41,7 @@ Spec::Runner.configure do |config|
|
|
41
41
|
#
|
42
42
|
# == Mock Framework
|
43
43
|
#
|
44
|
-
# RSpec uses
|
44
|
+
# RSpec uses its own mocking framework by default. If you prefer to
|
45
45
|
# use mocha, flexmock or RR, uncomment the appropriate line:
|
46
46
|
#
|
47
47
|
# config.mock_with :mocha
|
@@ -8,7 +8,7 @@ describe <%= controller_class_name %>Controller do
|
|
8
8
|
|
9
9
|
describe "GET index" do
|
10
10
|
it "assigns all <%= table_name.pluralize %> as @<%= table_name.pluralize %>" do
|
11
|
-
<%= class_name %>.stub
|
11
|
+
<%= class_name %>.stub(:find).with(:all).and_return([mock_<%= file_name %>])
|
12
12
|
get :index
|
13
13
|
assigns[:<%= table_name %>].should == [mock_<%= file_name %>]
|
14
14
|
end
|
@@ -16,7 +16,7 @@ describe <%= controller_class_name %>Controller do
|
|
16
16
|
|
17
17
|
describe "GET show" do
|
18
18
|
it "assigns the requested <%= file_name %> as @<%= file_name %>" do
|
19
|
-
<%= class_name %>.stub
|
19
|
+
<%= class_name %>.stub(:find).with("37").and_return(mock_<%= file_name %>)
|
20
20
|
get :show, :id => "37"
|
21
21
|
assigns[:<%= file_name %>].should equal(mock_<%= file_name %>)
|
22
22
|
end
|
@@ -24,7 +24,7 @@ describe <%= controller_class_name %>Controller do
|
|
24
24
|
|
25
25
|
describe "GET new" do
|
26
26
|
it "assigns a new <%= file_name %> as @<%= file_name %>" do
|
27
|
-
<%= class_name %>.stub
|
27
|
+
<%= class_name %>.stub(:new).and_return(mock_<%= file_name %>)
|
28
28
|
get :new
|
29
29
|
assigns[:<%= file_name %>].should equal(mock_<%= file_name %>)
|
30
30
|
end
|
@@ -32,7 +32,7 @@ describe <%= controller_class_name %>Controller do
|
|
32
32
|
|
33
33
|
describe "GET edit" do
|
34
34
|
it "assigns the requested <%= file_name %> as @<%= file_name %>" do
|
35
|
-
<%= class_name %>.stub
|
35
|
+
<%= class_name %>.stub(:find).with("37").and_return(mock_<%= file_name %>)
|
36
36
|
get :edit, :id => "37"
|
37
37
|
assigns[:<%= file_name %>].should equal(mock_<%= file_name %>)
|
38
38
|
end
|
@@ -42,13 +42,13 @@ describe <%= controller_class_name %>Controller do
|
|
42
42
|
|
43
43
|
describe "with valid params" do
|
44
44
|
it "assigns a newly created <%= file_name %> as @<%= file_name %>" do
|
45
|
-
<%= class_name %>.stub
|
45
|
+
<%= class_name %>.stub(:new).with({'these' => 'params'}).and_return(mock_<%= file_name %>(:save => true))
|
46
46
|
post :create, :<%= file_name %> => {:these => 'params'}
|
47
47
|
assigns[:<%= file_name %>].should equal(mock_<%= file_name %>)
|
48
48
|
end
|
49
49
|
|
50
50
|
it "redirects to the created <%= file_name %>" do
|
51
|
-
<%= class_name %>.stub
|
51
|
+
<%= class_name %>.stub(:new).and_return(mock_<%= file_name %>(:save => true))
|
52
52
|
post :create, :<%= file_name %> => {}
|
53
53
|
response.should redirect_to(<%= table_name.singularize %>_url(mock_<%= file_name %>))
|
54
54
|
end
|
@@ -56,13 +56,13 @@ describe <%= controller_class_name %>Controller do
|
|
56
56
|
|
57
57
|
describe "with invalid params" do
|
58
58
|
it "assigns a newly created but unsaved <%= file_name %> as @<%= file_name %>" do
|
59
|
-
<%= class_name %>.stub
|
59
|
+
<%= class_name %>.stub(:new).with({'these' => 'params'}).and_return(mock_<%= file_name %>(:save => false))
|
60
60
|
post :create, :<%= file_name %> => {:these => 'params'}
|
61
61
|
assigns[:<%= file_name %>].should equal(mock_<%= file_name %>)
|
62
62
|
end
|
63
63
|
|
64
64
|
it "re-renders the 'new' template" do
|
65
|
-
<%= class_name %>.stub
|
65
|
+
<%= class_name %>.stub(:new).and_return(mock_<%= file_name %>(:save => false))
|
66
66
|
post :create, :<%= file_name %> => {}
|
67
67
|
response.should render_template('new')
|
68
68
|
end
|
@@ -80,13 +80,13 @@ describe <%= controller_class_name %>Controller do
|
|
80
80
|
end
|
81
81
|
|
82
82
|
it "assigns the requested <%= file_name %> as @<%= file_name %>" do
|
83
|
-
<%= class_name %>.stub
|
83
|
+
<%= class_name %>.stub(:find).and_return(mock_<%= file_name %>(:update_attributes => true))
|
84
84
|
put :update, :id => "1"
|
85
85
|
assigns[:<%= file_name %>].should equal(mock_<%= file_name %>)
|
86
86
|
end
|
87
87
|
|
88
88
|
it "redirects to the <%= file_name %>" do
|
89
|
-
<%= class_name %>.stub
|
89
|
+
<%= class_name %>.stub(:find).and_return(mock_<%= file_name %>(:update_attributes => true))
|
90
90
|
put :update, :id => "1"
|
91
91
|
response.should redirect_to(<%= table_name.singularize %>_url(mock_<%= file_name %>))
|
92
92
|
end
|
@@ -100,13 +100,13 @@ describe <%= controller_class_name %>Controller do
|
|
100
100
|
end
|
101
101
|
|
102
102
|
it "assigns the <%= file_name %> as @<%= file_name %>" do
|
103
|
-
<%= class_name %>.stub
|
103
|
+
<%= class_name %>.stub(:find).and_return(mock_<%= file_name %>(:update_attributes => false))
|
104
104
|
put :update, :id => "1"
|
105
105
|
assigns[:<%= file_name %>].should equal(mock_<%= file_name %>)
|
106
106
|
end
|
107
107
|
|
108
108
|
it "re-renders the 'edit' template" do
|
109
|
-
<%= class_name %>.stub
|
109
|
+
<%= class_name %>.stub(:find).and_return(mock_<%= file_name %>(:update_attributes => false))
|
110
110
|
put :update, :id => "1"
|
111
111
|
response.should render_template('edit')
|
112
112
|
end
|
@@ -122,7 +122,7 @@ describe <%= controller_class_name %>Controller do
|
|
122
122
|
end
|
123
123
|
|
124
124
|
it "redirects to the <%= table_name %> list" do
|
125
|
-
<%= class_name %>.stub
|
125
|
+
<%= class_name %>.stub(:find).and_return(mock_<%= file_name %>(:destroy => true))
|
126
126
|
delete :destroy, :id => "1"
|
127
127
|
response.should redirect_to(<%= table_name %>_url)
|
128
128
|
end
|
@@ -43,7 +43,7 @@ module Spec
|
|
43
43
|
#
|
44
44
|
class ControllerExampleGroup < FunctionalExampleGroup
|
45
45
|
class << self
|
46
|
-
|
46
|
+
|
47
47
|
# Use integrate_views to instruct RSpec to render views in
|
48
48
|
# your controller examples in Integration mode.
|
49
49
|
#
|
@@ -56,11 +56,11 @@ module Spec
|
|
56
56
|
def integrate_views(integrate_views = true)
|
57
57
|
@integrate_views = integrate_views
|
58
58
|
end
|
59
|
-
|
59
|
+
|
60
60
|
def integrate_views? # :nodoc:
|
61
61
|
@integrate_views
|
62
62
|
end
|
63
|
-
|
63
|
+
|
64
64
|
def inherited(klass) # :nodoc:
|
65
65
|
klass.integrate_views(integrate_views?)
|
66
66
|
klass.subject { controller }
|
@@ -93,7 +93,7 @@ module Spec
|
|
93
93
|
tests "#{name}_controller".camelize.constantize
|
94
94
|
end
|
95
95
|
end
|
96
|
-
|
96
|
+
|
97
97
|
before(:each) do
|
98
98
|
# Some Rails apps explicitly disable ActionMailer in environment.rb
|
99
99
|
if defined?(ActionMailer)
|
@@ -107,7 +107,7 @@ Controller specs need to know what controller is being specified. You can
|
|
107
107
|
indicate this by passing the controller to describe():
|
108
108
|
|
109
109
|
describe MyController do
|
110
|
-
|
110
|
+
|
111
111
|
or by declaring the controller's name
|
112
112
|
|
113
113
|
describe "a MyController" do
|
@@ -121,7 +121,7 @@ MESSAGE
|
|
121
121
|
end
|
122
122
|
|
123
123
|
attr_reader :response, :request, :controller
|
124
|
-
|
124
|
+
|
125
125
|
def integrate_views?
|
126
126
|
@integrate_views || self.class.integrate_views?
|
127
127
|
end
|
@@ -143,7 +143,7 @@ MESSAGE
|
|
143
143
|
end
|
144
144
|
end
|
145
145
|
end
|
146
|
-
|
146
|
+
|
147
147
|
protected
|
148
148
|
|
149
149
|
def _assigns_hash_proxy
|
@@ -151,27 +151,33 @@ MESSAGE
|
|
151
151
|
end
|
152
152
|
|
153
153
|
private
|
154
|
-
|
154
|
+
|
155
155
|
module TemplateIsolationExtensions
|
156
156
|
def file_exists?(ignore); true; end
|
157
|
-
|
157
|
+
|
158
158
|
def render_file(*args)
|
159
159
|
@first_render ||= args[0] unless args[0] =~ /^layouts/
|
160
160
|
end
|
161
|
-
|
161
|
+
|
162
162
|
# Rails 2.2
|
163
163
|
def _pick_template(*args)
|
164
164
|
@_first_render ||= args[0] unless args[0] =~ /^layouts/
|
165
165
|
PickedTemplate.new
|
166
166
|
end
|
167
|
-
|
167
|
+
|
168
168
|
def __action_exists?(params)
|
169
169
|
controller.respond_to? params[:action]
|
170
170
|
end
|
171
|
-
|
171
|
+
|
172
|
+
def __template_exists?(args)
|
173
|
+
self.view_paths.respond_to?(:find_template) ?
|
174
|
+
self.view_paths.find_template(args[0][:file], template_format) :
|
175
|
+
false
|
176
|
+
end
|
177
|
+
|
172
178
|
def render(*args)
|
173
179
|
if ::Rails::VERSION::STRING >= "2.1"
|
174
|
-
return super unless __action_exists?(params)
|
180
|
+
return super unless __action_exists?(params) || __template_exists?(args)
|
175
181
|
end
|
176
182
|
if file = args.last[:file].instance_eval{@template_path}
|
177
183
|
record_render :file => file
|
@@ -183,23 +189,24 @@ MESSAGE
|
|
183
189
|
super
|
184
190
|
end
|
185
191
|
end
|
186
|
-
|
192
|
+
|
187
193
|
private
|
188
|
-
|
194
|
+
|
189
195
|
def record_render(opts)
|
190
|
-
|
191
|
-
|
196
|
+
return unless @_rendered
|
197
|
+
@_rendered[:template] ||= opts[:file] if opts[:file]
|
198
|
+
@_rendered[:partials][opts[:partial]] += 1 if opts[:partial]
|
192
199
|
end
|
193
|
-
|
200
|
+
|
194
201
|
# Returned by _pick_template when running controller examples in isolation mode.
|
195
|
-
class PickedTemplate
|
202
|
+
class PickedTemplate
|
196
203
|
# Do nothing when running controller examples in isolation mode.
|
197
204
|
def render_template(*ignore_args); end
|
198
205
|
# Do nothing when running controller examples in isolation mode.
|
199
206
|
def render_partial(*ignore_args); end
|
200
207
|
end
|
201
208
|
end
|
202
|
-
|
209
|
+
|
203
210
|
module ControllerInstanceMethods # :nodoc:
|
204
211
|
include Spec::Rails::Example::RenderObserver
|
205
212
|
|
@@ -230,7 +237,7 @@ MESSAGE
|
|
230
237
|
end
|
231
238
|
end
|
232
239
|
end
|
233
|
-
|
240
|
+
|
234
241
|
# Rails 2.3
|
235
242
|
def default_template(action_name = self.action_name)
|
236
243
|
if integrate_views?
|
@@ -243,7 +250,7 @@ MESSAGE
|
|
243
250
|
end
|
244
251
|
end
|
245
252
|
end
|
246
|
-
|
253
|
+
|
247
254
|
def response(&block)
|
248
255
|
# NOTE - we're setting @update for the assert_select_spec - kinda weird, huh?
|
249
256
|
@update = block
|
@@ -255,7 +262,7 @@ MESSAGE
|
|
255
262
|
end
|
256
263
|
|
257
264
|
private
|
258
|
-
|
265
|
+
|
259
266
|
def integrate_views?
|
260
267
|
@integrate_views
|
261
268
|
end
|
@@ -263,15 +270,15 @@ MESSAGE
|
|
263
270
|
def matching_message_expectation_exists(options)
|
264
271
|
render_proxy.__send__(:__mock_proxy).__send__(:find_matching_expectation, :render, options)
|
265
272
|
end
|
266
|
-
|
273
|
+
|
267
274
|
def matching_stub_exists(options)
|
268
275
|
render_proxy.__send__(:__mock_proxy).__send__(:find_matching_method_stub, :render, options)
|
269
276
|
end
|
270
|
-
|
277
|
+
|
271
278
|
end
|
272
279
|
|
273
280
|
Spec::Example::ExampleGroupFactory.register(:controller, self)
|
274
|
-
|
281
|
+
|
275
282
|
end
|
276
283
|
end
|
277
284
|
end
|
@@ -38,7 +38,7 @@ module Spec
|
|
38
38
|
@controller.__send__ :flash
|
39
39
|
end
|
40
40
|
|
41
|
-
# Provides
|
41
|
+
# Provides access to the session hash. Use this before or after
|
42
42
|
# rendering a view, calling a helper or calling a controller action.
|
43
43
|
def session
|
44
44
|
request.session
|
@@ -6,7 +6,8 @@ module Spec
|
|
6
6
|
# Model examples use Spec::Rails::Example::ModelExampleGroup, which
|
7
7
|
# provides support for fixtures and some custom expectations via extensions
|
8
8
|
# to ActiveRecord::Base.
|
9
|
-
|
9
|
+
base = defined?(ActiveRecord::TestCase) ? ActiveRecord::TestCase : ActiveSupport::TestCase
|
10
|
+
class ModelExampleGroup < base
|
10
11
|
Spec::Example::ExampleGroupFactory.register(:model, self)
|
11
12
|
end
|
12
13
|
end
|
@@ -1,46 +1,23 @@
|
|
1
1
|
if defined?(ActiveRecord::Base)
|
2
|
-
module Spec
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
@matcher.__send__ :handling_predicate!
|
11
|
-
end
|
12
|
-
|
13
|
-
def matches?(actual)
|
14
|
-
@actual = actual
|
15
|
-
@matcher.matches? @actual
|
16
|
-
end
|
17
|
-
|
18
|
-
def failure_message_for_should
|
19
|
-
if @actual.respond_to?(:errors) &&
|
20
|
-
ActiveRecord::Errors === @actual.errors
|
21
|
-
"Expected #{@actual.inspect} to be valid, but it was not\nErrors: " + @actual.errors.full_messages.join(", ")
|
22
|
-
else
|
23
|
-
@matcher.failure_message_for_should
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def failure_message_for_should_not
|
28
|
-
@matcher.failure_message_for_should_not
|
29
|
-
end
|
30
|
-
|
31
|
-
def description
|
32
|
-
"be valid"
|
33
|
-
end
|
2
|
+
module Spec::Rails::Matchers
|
3
|
+
# :call-seq:
|
4
|
+
# response.should be_valid
|
5
|
+
# response.should_not be_valid
|
6
|
+
def be_valid
|
7
|
+
::Spec::Matchers::Matcher.new :be_valid do
|
8
|
+
match do |actual|
|
9
|
+
actual.valid?
|
34
10
|
end
|
35
11
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
12
|
+
failure_message_for_should do |actual|
|
13
|
+
if actual.respond_to?(:errors) && ActiveRecord::Errors === actual.errors
|
14
|
+
"Expected #{actual.inspect} to be valid, but it was not\nErrors: " + actual.errors.full_messages.join(", ")
|
15
|
+
else
|
16
|
+
"Expected #{actual.inspect} to be valid"
|
17
|
+
end
|
41
18
|
end
|
42
|
-
|
43
19
|
end
|
44
20
|
end
|
21
|
+
|
45
22
|
end
|
46
23
|
end
|
data/lib/spec/rails/mocks.rb
CHANGED
data/lib/spec/rails/version.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
<div id="session"><%= session[:key] %></div>
|
2
2
|
<div id="params"><%= params[:key] %></div>
|
3
3
|
<div id="flash"><%= flash[:key] %></div>
|
4
|
+
<div id="flash_now"><%= flash[:now_key] %></div>
|
4
5
|
<div id="controller"><%= params[:controller] %></div>
|
5
6
|
<div id="action"><%= params[:action] %></div>
|
@@ -6,6 +6,18 @@ module Spec
|
|
6
6
|
describe ModelExampleGroup do
|
7
7
|
accesses_configured_helper_methods
|
8
8
|
|
9
|
+
if defined?(ActiveRecord::TestCase)
|
10
|
+
it "derives from ActiveRecord::TestCase" do
|
11
|
+
group = describe("foo", :type => :model) do; end
|
12
|
+
group.ancestors.should include(ActiveRecord::TestCase)
|
13
|
+
end
|
14
|
+
else
|
15
|
+
it "derives from ActiveSupport::TestCase" do
|
16
|
+
group = describe("foo", :type => :model) do; end
|
17
|
+
group.ancestors.should include(ActiveSupport::TestCase)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
9
21
|
it "clears its name from the description" do
|
10
22
|
group = describe("foo", :type => :model) do
|
11
23
|
$nested_group = describe("bar") do
|
@@ -176,38 +176,35 @@ describe "A view", :type => :view do
|
|
176
176
|
session[:key] = "session"
|
177
177
|
params[:key] = "params"
|
178
178
|
flash[:key] = "flash"
|
179
|
+
flash.now[:now_key] = "flash.now"
|
179
180
|
render "view_spec/accessor"
|
180
181
|
end
|
181
182
|
|
182
|
-
it "
|
183
|
+
it "uses the template as the implicit subject" do
|
183
184
|
subject.should == template
|
184
185
|
end
|
185
186
|
|
186
|
-
|
187
|
-
subject { 'specified' }
|
188
|
-
|
189
|
-
it "should use the specified subject" do
|
190
|
-
subject.should == 'specified'
|
191
|
-
end
|
192
|
-
end
|
193
|
-
|
194
|
-
it "should have access to session data" do
|
187
|
+
it "has access to session data" do
|
195
188
|
response.should have_tag("div#session", "session")
|
196
189
|
end
|
197
190
|
|
198
|
-
|
191
|
+
it "has access to params data" do
|
199
192
|
response.should have_tag("div#params", "params")
|
200
193
|
end
|
201
194
|
|
202
|
-
it "
|
195
|
+
it "has access to flash" do
|
203
196
|
response.should have_tag("div#flash", "flash")
|
204
197
|
end
|
205
198
|
|
206
|
-
it "
|
199
|
+
it "has access to flash.now" do
|
200
|
+
response.should have_tag("div#flash_now", "flash.now")
|
201
|
+
end
|
202
|
+
|
203
|
+
it "has a controller param" do
|
207
204
|
response.should have_tag("div#controller", "view_spec")
|
208
205
|
end
|
209
206
|
|
210
|
-
it "
|
207
|
+
it "has an action param" do
|
211
208
|
response.should have_tag("div#action", "accessor")
|
212
209
|
end
|
213
210
|
end
|
@@ -24,6 +24,9 @@ describe "mock_model" do
|
|
24
24
|
it "should not say it instance_of? if it isn't, even if it's ancestor is" do
|
25
25
|
@model.instance_of?(MockableModel).should be(false)
|
26
26
|
end
|
27
|
+
it "should say it is not destroyed" do
|
28
|
+
@model.destroyed?(SubMockableModel).should be(false)
|
29
|
+
end
|
27
30
|
end
|
28
31
|
|
29
32
|
describe "with params" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- RSpec Development Team
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-01-11 00:00:00 -06:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -20,7 +20,7 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 1.
|
23
|
+
version: 1.3.0
|
24
24
|
version:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rack
|
@@ -237,7 +237,7 @@ licenses: []
|
|
237
237
|
post_install_message: |
|
238
238
|
**************************************************
|
239
239
|
|
240
|
-
Thank you for installing rspec-rails-1.
|
240
|
+
Thank you for installing rspec-rails-1.3.0
|
241
241
|
|
242
242
|
If you are upgrading, do this in each of your rails apps
|
243
243
|
that you want to upgrade:
|
@@ -272,6 +272,6 @@ rubyforge_project: rspec
|
|
272
272
|
rubygems_version: 1.3.5
|
273
273
|
signing_key:
|
274
274
|
specification_version: 3
|
275
|
-
summary: rspec-rails 1.
|
275
|
+
summary: rspec-rails 1.3.0
|
276
276
|
test_files: []
|
277
277
|
|