Hello,

I'm using Rails 3.1.3 with rspec-rails 2.8.1. I have a scope ':locale'
in routes.rb and I want to run controller and routing
specs. I'm aware of the problem with setting default_url_options in
application.rb controller so I apply the solution found in the last
comment on rspec issue #255 ( https://github.com/rspec/rspec-rails/issues/255
)

#./spec/support/default_locale.rb
class ActionView::TestCase::TestController
  def default_url_options(options={})
    { :locale => I18n.default_locale }
  end
end

class ActionDispatch::Routing::RouteSet
  def default_url_options(options={})
    { :locale => I18n.default_locale }
  end
end

#./spec/controllers/categories_controller_spec.rb
require "spec_helper"

describe CategoriesController do

  describe "GET index" do
    it "assigns all categories as @categories" do
      category = Factory :category

      get :index
      assigns(:categories).to_a.should eq([category])
    end
  end
end

This test fails with routing error but if I use "get :index,
locale: :fr" instead of just "get :index" the test pass.
This test is a example of controller spec but I have failing tests for
routing and request. (I have no view specs but
I'm pretty sure they would also fail)

I can't figure out where the problem come from and why the patch
doesn't solve it. Is there another thing to do ? (I just put the code
in ./spec/support/default_locale.rb and verify that it loads
correctly).

Thanks in advance.
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to