Devise: Testing a custom sessions controller
Sonntag, 10. April 2011, 13:17 Uhr | roberto@vasquez-angel.de |Assume you have a custom devise sessions controller for your customer login at Rails.root/app/controllers/customers/sessions_controller.rb:
class Customers::SessionsController < Devise::SessionsController end
To test it with rspec, you’ll have to add a before(:each) to the test:
before(:each) do setup_controller_for_warden request.env["devise.mapping"] = Devise.mappings[:customer] end
You’re test should look like this:
require 'spec_helper'
describe Customers::SessionsController do
render_views
before(:each) do
setup_controller_for_warden
request.env["devise.mapping"] = Devise.mappings[:customer]
end
context "as a visitor" do
describe "GET 'sign_in'" do
it "should have an email field" do
get :new
response.should have_selector("input[name='customer[email]']")
end
it "should have a password field" do
get :new
response.should have_selector("input[name='customer[password]']")
end
end
end
end