Sha256: 04c4df635ade31274a6bea4963e5dea87334ef2a56a30579fc846e7d54f88927

Contents?: true

Size: 1.42 KB

Versions: 4

Compression:

Stored size: 1.42 KB

Contents

require 'spec_helper'

describe UserSessionsController do
  def mock_user_session(stubs={})
    @mock_user_session ||= mock(UserSession, stubs.update(:login_field => 'email')).as_null_object
  end

  describe "GET new" do
    it "assigns a new user_session as @user_session" do
      UserSession.stub(:new) { mock_user_session }
      get :new
      assigns(:user_session).should be(mock_user_session)
    end
  end

  describe "POST create" do
    describe "with valid params" do
      it "redirects to the dashboard page" do
        UserSession.stub(:new) { mock_user_session(:save => true) }
        post :create, :user_session => {}
        response.should redirect_to(root_url)
      end
    end

    describe "with invalid params" do
      it "re-renders the 'new' template" do
        UserSession.stub(:new) { mock_user_session(:save => false) }
        post :create, :user_session => {}
        response.should render_template "user_sessions/new"
      end
    end
  end

  #Special case for session control to use GET /logout and not DELETE /logout
  describe "GET destroy" do
    it "destroys the requested user_session" do
      UserSession.stub(:find) { mock_user_session }
      mock_user_session.should_receive(:destroy)
      get :destroy
    end

    it "redirects to the user_sessions list" do
      UserSession.stub(:find) { mock_user_session }
      get :destroy, :id => "1"
      response.should redirect_to(root_url)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
double_auth_engine-0.0.5 spec/dummy/spec/controllers/user_sessions_controller_spec.rb
double_auth_engine-0.0.4 spec/dummy/spec/controllers/user_sessions_controller_spec.rb
double_auth_engine-0.0.2 spec/dummy/spec/controllers/user_sessions_controller_spec.rb
double_auth_engine-0.0.1 spec/dummy/spec/controllers/user_sessions_controller_spec.rb