Solo quiero probar la solicitud de ajax en la especificación del controlador. El código de producto está debajo. Estoy usando Devise para la autenticación.¿Cómo pruebo la solicitud 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
Y las especificaciones están por debajo.
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
lo esperado El código de respuesta para ser 200, pero vuelve 401. supongo que debe ser porque la solicitud que arroja rspec carece authenticity_token o algo así. ¿Cómo puedo cortarlo?
Cualquier ayuda sería muy apreciada.
Gracias. Intenté este consejo pero no hizo ningún cambio. Y por cierto, me siento un poco incómodo al ver csrf verificar. – morygonzalez
-1 deshabilitar la protección CSRF NO es una solución a este problema. –