Hello there, I'm creating a base controller for the admin section of a project. All controllers whitin the admin section will inherit from it.
##################################################### #app/controllers/admins/base_controller.rb class Admins::BaseController < ApplicationController layout "admin_cms" before_filter :authenticate_admin! end ##################################################### #spec/controllers/admins/base_controller_spec.rb require 'spec_helper' describe Admins::BaseController do controller do def index end end describe "before_filter#authenticate_admin!" do before(:each) do @admin = FactoryGirl.create(:admin) @request.env["devise.mapping"] = Devise.mappings[:admin] end context "when admin is not logged in" do it "redirect admin to sign_in path" do get :index response.should redirect_to new_admin_session_path end end end end ##################################################### I've already inclueded Devise::TestHelpers on my spec_helper.rb and I'm getting this error when running this spec: ##################################################### Admins::BaseController before_filter#authenticate_admin! when admin is not logged in redirect admin to sign_in path (FAILED - 1) Failures: 1) Admins::BaseController before_filter#authenticate_admin! when admin is not logged in redirect admin to sign_in path Failure/Error: get :index ActionView::MissingTemplate: Missing template anonymous/index, application/index with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in: * "#<RSpec::Rails::ViewRendering::EmptyTemplatePathSetDecorator:0xbaf75d4>" # ./spec/controllers/admins/base_controller_spec.rb:17:in `block (4 levels) in <top (required)>' Finished in 0.17124 seconds 1 example, 1 failure Failed examples: rspec ./spec/controllers/admins/base_controller_spec.rb:16 # Admins::BaseController before_filter#authenticate_admin! when admin is not logged in redirect admin to sign_in path ##################################################### I changed my spec to this: ##################################################### require 'spec_helper' describe Admins::BaseController do controller do def index render nothing: true end end describe "before_filter#authenticate_admin!" do context "when admin is not logged in" do it "redirect admin to sign_in path" do get :index response.should redirect_to new_admin_session_path end end end end ##################################################### and now I'm getting this error: ##################################################### Failures: 1) Admins::BaseController before_filter#authenticate_admin! when admin is not logged in redirect admin to sign_in path Failure/Error: response.should redirect_to new_admin_session_path Expected response to be a <:redirect>, but was <200> So, for some reason it's not entering in the authenticate_admin! before filter. I'm kind of lost. Thanks again. ##################################################### I'm using Rails 3.2.13, Ruby 2.0.0, Rspec-rails 2.13.0 and Devise 2.2.3. I really appreacite if someone could help me out with this. Thanks in advance. -- Posted via http://www.ruby-forum.com/. _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users