Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

testing routes with subdomain constraints using rspec

I'm having trouble getting my rspec routing tests working with a subdomain constraint.

Specifically I have a route

constraints :subdomain => "api" do
  resources :sign_ups, :only => [:create]
end

and (among others) a test

it "does allow creation of sign ups" do
  {:post => "/sign_ups"}.should route_to(
    :controller => "sign_ups",
    :action => "create",
  )
end

If I remove the subdomain constraint this test passes, but with it it fails. I have to tell rspec to use the subdomain but I'm at a loss as to how

TIA

Andy

like image 486
Andrew Avatar asked Feb 17 '12 14:02

Andrew


1 Answers

I usually do:

let(:url)     { "http://api.domain.com"     }
let(:bad_url) { "http://bad_url.domain.com" }

it "does allow creation of sign ups" do
  {:post => "#{url}/sign_ups"}.should route_to(
   :controller => "sign_ups",
   :action => "create",
  )
end

it "should not route" do
  {:post => "#{bad_url}/sign_ups"}.should_not route_to(
   :controller => "sign_ups",
   :action => "create",
  )
end
like image 130
apneadiving Avatar answered Oct 21 '22 16:10

apneadiving