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