Voglio solo testare una richiesta Ajax sulle specifiche del controller. Il codice prodotto è sotto Sto usando Devise per l'autenticazione.Come si esegue il test della richiesta POST ajax con RSpec?
class NotesController < ApplicationController
def create
if request.xhr?
@note = Note.new(params[:note])
if @note.save
render json: { notice: "success" }
end
end
end
end
E le specifiche sono riportate di seguito.
describe NotesController do
before do
user = FactoryGirl.create(:user)
user.confirm!
sign_in user
end
it "has a 200 status code" do
xhr :post, :create, note: { title: "foo", body: "bar" }, format: :json
response.code.should == "200"
end
end
mi aspetto che il codice di risposta per essere 200, ma restituisce 401. Credo che deve essere perché la richiesta che RSpec getta manca authenticity_token o qualcosa del genere. Come posso mozzarlo?
Qualsiasi aiuto sarebbe molto apprezzato.
Grazie. Ho provato questo suggerimento ma non ha apportato alcuna modifica. E mi sento poco a disagio, e csrf si verifica a proposito. – morygonzalez
-1 la disattivazione della protezione CSRF NON è una soluzione a questo problema. –