Sha256: 57ac69d53287bc5bb062db5d21c22c2bff6cc78d88991d9f2240a1c0767b44da

Contents?: true

Size: 1.59 KB

Versions: 9

Compression:

Stored size: 1.59 KB

Contents

require 'rails_helper'

RSpec.describe Exposition::Admin::SessionsHelper, type: :helper do
  describe "#current_user" do
    context "when logged in via a session" do
      it "returns the logged in user" do
        user = create(:user,
                      password: 'password',
                      email: 'j@j.com',
                      name: 'Josh')
        session_params = {user_id: user.id}
        allow(helper).to receive(:session).and_return(session_params)

        expect(helper.current_user).to eq(user)
      end
    end


    context "when logged in via a cookie" do
      it "returns the logged in user and sets the user_id in the session" do
        user = create(:user,
                      password: 'password',
                      email: 'j@j.com',
                      name: 'Josh')
        user.set_encrypted_remember_token!
        session_params = {}
        signed_cookie_params = {user_id: user.id}
        cookie_params = {remember_token: user.remember_token}
        fake_cookie = FakeCookies.new(
          signed: signed_cookie_params,
          unsigned: cookie_params
        )
        allow(controller).to receive(:cookies).and_return(fake_cookie)
        allow(controller).to receive(:session).and_return(session_params)

        expect(helper.current_user).to eq(user)
        expect(session_params[:user_id]).to eq(user.id)
      end
    end

    class FakeCookies
      def initialize(unsigned:{}, signed:{})
        @signed = signed
        @unsigned = unsigned
      end

      def [](key)
        @unsigned[key]
      end

      def signed
        @signed
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
exposition-0.0.5.7.pre.alpha spec/helpers/admin/sessions_helper_spec.rb
exposition-0.0.5.6.pre.alpha spec/helpers/admin/sessions_helper_spec.rb
exposition-0.0.5.5.pre.alpha spec/helpers/admin/sessions_helper_spec.rb
exposition-0.0.5.4.pre.alpha spec/helpers/admin/sessions_helper_spec.rb
exposition-0.0.5.2.pre.alpha spec/helpers/admin/sessions_helper_spec.rb
exposition-0.0.5.1.pre.alpha spec/helpers/admin/sessions_helper_spec.rb
exposition-0.0.5.pre.alpha spec/helpers/admin/sessions_helper_spec.rb
exposition-0.0.4.pre.alpha spec/helpers/admin/sessions_helper_spec.rb
exposition-0.0.3.pre.alpha spec/helpers/admin/sessions_helper_spec.rb