Using the “path” method the spec passes, but i don’t use the path
method on my controller. First, here’s my controller code:
def create
@static_page = @event.static_pages.build(params[:static_page])
respond_to do |format|
if @static_page.save
flash[:notice] = 'Page was successfully created.'
format.html { redirect_to(:action => 'show', :id =>
@static_page.permalink ) } ## thats what i’m testing agains
format.xml { render :xml => @static_page, :status =>
:created, :location => @static_page }
else
format.html { render :action => “new” }
format.xml { render :xml => @static_page.errors, :status =>
:unprocessable_entity }
end
end
end
And here is the spec:
it 'Should redirect to the new page' do
do_post
response.should be_redirect
response.should redirect_to( page_path( :action => 'show', :id
=> @static_page.permalink ) ) ## this one, with the page_path goes
fine
response.should redirect_to( :action => ‘show’, :id =>
@static_page.permalink ) ## this one, without the page_path doesn’t
work
end
It seems that the redirect_to matcher doesn’t recognize the current
controller.
And here goes the full backtrace:
ActionController::MethodNotAllowed in ‘StaticPagesController Handling
POST /pages With successful save Should redirect to the new page’
Only get, put, and delete requests are allowed.
/usr/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/routing.rb:1439:in
recognize_path' /home/mauricio/workspace/antares/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/redirect_to.rb:43:in
path_hash’
/home/mauricio/workspace/antares/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/redirect_to.rb:38:in
hash_from_url' /home/mauricio/workspace/antares/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/redirect_to.rb:26:in
actual_hash’
/home/mauricio/workspace/antares/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/redirect_to.rb:34:in
actual_redirect_to_valid_route' /home/mauricio/workspace/antares/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/redirect_to.rb:18:in
matches?’
/home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/expectations/handler.rb:19:in
handle_matcher' /home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/expectations/extensions/object.rb:34:in
should’
./spec/controllers/static_pages_controller_spec.rb:119:
/home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/example/example_methods.rb:78:in
instance_eval' /home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/example/example_methods.rb:78:in
run_with_description_capturing’
/home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/example/example_methods.rb:19:in
execute' /usr/lib/ruby/1.8/timeout.rb:48:in
timeout’
/home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/example/example_methods.rb:16:in
execute' /home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/example/example_group_methods.rb:292:in
execute_examples’
/home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/example/example_group_methods.rb:291:in
each' /home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/example/example_group_methods.rb:291:in
execute_examples’
/home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/example/example_group_methods.rb:121:in
run' /home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb:22:in
run’
/home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb:21:in
each' /home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb:21:in
run’
/home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/runner/options.rb:90:in
run_examples' /home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/runner/command_line.rb:19:in
run’
script/spec:4:
On Fri, Feb 22, 2008 at 11:00 AM, David C. [email protected]
wrote:
response.should be_redirect
POST /pages With successful save Should redirect to the new page’
João Pessoa, PB, +55 83 8867-7208
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users
–
Maurício Linhares
http://alinhavado.wordpress.com/ (pt-br) |
http://codeshooter.wordpress.com/ (en)
João Pessoa, PB, +55 83 8867-7208