Sha256: ac07644cf738ef1c726b3362ac544eabede3f9927ed6dd159b52253972c5c543

Contents?: true

Size: 1.24 KB

Versions: 4

Compression:

Stored size: 1.24 KB

Contents

require 'rails_helper'

RSpec.describe Exposition::Admin::SessionsController, type: :controller do
  routes { Exposition::Engine.routes }

  describe "GET #new" do
    it "returns http success" do
      get :new
      expect(response).to have_http_status(:success)
    end
  end

  describe "POST #create" do
    it "finds the user by the session email" do
      user = create(:user, email: 'user@user.com', password: 'password')

      post :create, params: {
        session: {email: user.email, password: user.password}
      }
      expect(response).to redirect_to(admin_posts_path)
    end

    it "generates an error message with incorrect login credentials" do
      post :create, params: {session: {email: '', password: ''}}

      expect(flash[:error]).to be_present

      get :new

      expect(flash[:error]).to_not be_present
    end
  end

  describe "DELETE #destroy" do
    it "deletes the sesssion and cookies" do
      build_user_and_login
      session['user_id'] = 1
      request.cookies['user_id'] = 1
      request.cookies['remember_token'] = 'token'

      delete :destroy

      expect(session['user_id']).to be_nil
      expect(response.cookies['user_id']).to be_nil
      expect(response.cookies['remember_token']).to be_nil
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
exposition-0.0.5.7.pre.alpha spec/controllers/exposition/admin/sessions_controller_spec.rb
exposition-0.0.5.6.pre.alpha spec/controllers/exposition/admin/sessions_controller_spec.rb
exposition-0.0.5.5.pre.alpha spec/controllers/exposition/admin/sessions_controller_spec.rb
exposition-0.0.5.4.pre.alpha spec/controllers/exposition/admin/sessions_controller_spec.rb