[rspec-users] Un-recognised routes that do exist, using namespaces & subdomain checking

David Chelimsky dchelimsky at gmail.com
Tue Nov 10 17:48:27 EST 2009


On Tue, Nov 10, 2009 at 2:25 PM, DEfusion <david.spurr at gmail.com> wrote:

> I'm getting really cheesed off with RSpec not matching some of my
> routes when controller testing when I have subdomain checking
> (courtesy of subdomain-fu) on namespaces. These routes appear in the
> rake routes output, and work fine via HTTP requests .
>
> The really annoying thing is it's working fine for routes that aren't
> at the root of the namespace.
>
> E.g.  say I have
>
> map.namespace :foo, :path_prefix => '', :conditions => { :subdomain =>
> 'foo' } do |foo|
>
>    foo.bars, :controller => 'bars', :only => [:show] do |bar|
>        bar.resources some_things ....
>    end
>
>    foo.resources :monkeys
> end
>
> My specs for bars/some_things all resolve the routes fine (e.g. doing
> get :index etc.)
>
> Any spec that tries to hit monkeys/ give me a no route matches even
> though these routes exist
>
>    No route matches {:controller=>"foo/monkeys", :action=>"update"}
>
> I've tried setting both @request.host and request.host to
> foo.test.host but that doesn't make a blind bit of difference.
>
> Maybe RSpec is doing something different with the request, as if I
> monkey patch the routing with the following I never get the dumps when
> using RSpec even though both these are called pretty early on in route
> recognition.
>
> module Foo
>
>  module RouteSetExtensions
>    def self.included(base)
>      base.alias_method_chain :extract_request_environment, :debug
>      base.alias_method_chain :recognize_path, :debug
>    end
>
>    def recognize_path_with_debug(path, environment={})
>      puts path
>      puts environment.to_yaml
>      recognize_path_without_debug(path, environment)
>    end
>
>    def extract_request_environment_with_debug(request)
>      env = extract_request_environment_without_debug(request)
>      puts env.to_yaml
>      env
>    end
>  end
>
> end
>
> ActionController::Routing::RouteSet.send :include,
> Foo::RouteSetExtensions
>
> So as you can probably tell, I'm out of ideas so I wondered if anyone
> had any thoughts.


Please post the failing spec and the exact failure message.

Thx,
David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20091110/b8466f63/attachment.html>


More information about the rspec-users mailing list