2012-02-17 9 views
8

Ho problemi a ottenere i miei test di routing rspec che funzionano con un vincolo di sottodominio.percorsi di test con vincoli di sottodominio usando rspec

In particolare ho un percorso

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

e (tra gli altri) un test

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

Se rimuovo il vincolo sottodominio questo test viene superato, ma con esso non riesce. Devo dire rspec di utilizzare il sottodominio, ma io sono in perdita su come

TIA

Andy

risposta

25

faccio di solito:

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 
+0

impressionante, che funziona, grazie. Non avevo idea che avrei potuto usare l'url completo .. – Andy

+0

Ricordo che questa informazione non era ovvia e ho avuto un po 'di pena a ottenerlo;) – apneadiving

+0

Crikey, questo sembra un sacco di lavoro se stai cambiando un'app esistente. – toxaq

Problemi correlati