Estoy teniendo problemas con el controlador de prueba rspec para la autenticación de dispositivo.prueba de controlador rspec con autenticación de dispositivo
Tengo un siguiente configuración
He incluido
config.include Devise::TestHelpers, :type => :controller
en mi spec_helper.rb
En mi merchants_controller_spec.rb
describe MerchantsController do
before :each do
@user = Factory(:user)
@merchant = Factory(:merchant, :user_id => @user.id,:is_approved => false, :is_blacklisted => false)
controller.stub!(:current_user).and_return(@user)
end
describe "GET index" do
it "assigns all merchants as @merchants" do
merchant = Factory(:merchant,:is_approved => true, :is_blacklisted => false)
get :index
assigns(:merchants).should eq([merchant])
end
end
end
Mi merchants_controller.rb
class MerchantsController < ApplicationController
before_filter :authenticate_user!
def index
@merchants = Merchant.approved
debugger
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @merchants }
end
end
end
que tienen un ámbito de aplicación aprobado en el modelo comercial
scope :approved, where(:is_approved => true, :is_blacklisted => false)
Ahora mi problema es que a pesar de que stubbed current_user y volví @user como current_user, mi especificación de índice merchants_controller está fallando. ¡Pero si hago un comentario sobre authenticate_user! luego la especificación pasa,
sin authenticate_user! el depurador de acción de índice está atrapado pero con authenticate_user! el depurador no está atrapado.
Creo que hay un problema al sustituir current_user y no puedo resolverlo.
me ayude ..
Substituí controller.stub! (: Current_user) .and_return (@user) con @user sign_in pero todavía no resuelve mi problema Creo que el usuario aún no está autenticado como depurador dentro de la acción del índice que aún no está capturada. ¿Algunas ideas? – Gagan
Ojalá pudiera votar esto dos veces. Tenía una fábrica anidada para crear mi administrador, y no pude entender por qué el usuario se estaba creando pero no se había conectado. – Arel