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