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

David Chelimsky dchelimsky at gmail.com
Tue Nov 10 19:54:35 EST 2009


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

> Removing the :sub domain conditions from the namespace does fix the
> issue, and moving the sub domain conditions to the individual route
> definitions causes them all to fail.
>
> On Nov 10, 11:59 pm, DEfusion <david.sp... at gmail.com> wrote:
> > Okay I've managed to re-create my original problem by trying to use
> > params_from to verify the routing (which was another area I was
> > experiencing problems with before).
> >
> > Note each one of the routes I'm defining here all return fine in the
> > browser, they hit the appropriate controller and run the show action,
> > however as you can see by the comments 2 of the specs fail to find the
> > routes defined.
> >
> > http://gist.github.com/231408
>

Can you try using route_to instead of params_from().should ==?

See http://github.com/dchelimsky/rspec-rails/blob/master/Upgrade.rdoc

Let me know if that works better.

David


>
> >
> > -D
> >
> > On Nov 10, 11:25 pm, DEfusion <david.sp... at gmail.com> wrote:
> >
> > > Now that is weird. I tried to make an isolated example for you and
> > > that worked fine. So I put un-commented my spec bit by bit and it
> > > works fine.
> >
> > > I'm sure I've had this problem before. If I do re-create it I'll post
> > > more details here.
> >
> > > =D
> >
> > > On Nov 10, 10:48 pm, David Chelimsky <dchelim... at gmail.com> wrote:
> >
> > > > On Tue, Nov 10, 2009 at 2:25 PM, DEfusion <david.sp... 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
> >
> > > > _______________________________________________
> > > > rspec-users mailing list
> > > > rspec-us... at rubyforge.orghttp://
> rubyforge.org/mailman/listinfo/rspec-users
> >
> > > _______________________________________________
> > > rspec-users mailing list
> > > rspec-us... at rubyforge.orghttp://
> rubyforge.org/mailman/listinfo/rspec-users
> >
> > _______________________________________________
> > rspec-users mailing list
> > rspec-us... at rubyforge.orghttp://
> rubyforge.org/mailman/listinfo/rspec-users
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20091110/f0bb2e7c/attachment-0001.html>


More information about the rspec-users mailing list