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...@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 > > -D > > On Nov 10, 11:25 pm, DEfusion <david.sp...@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...@gmail.com> wrote: > > > > On Tue, Nov 10, 2009 at 2:25 PM, DEfusion <david.sp...@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...@rubyforge.orghttp://rubyforge.org/mailman/listinfo/rspec-users > > > _______________________________________________ > > rspec-users mailing list > > rspec-us...@rubyforge.orghttp://rubyforge.org/mailman/listinfo/rspec-users > > _______________________________________________ > rspec-users mailing list > rspec-us...@rubyforge.orghttp://rubyforge.org/mailman/listinfo/rspec-users _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users