Sha256: 38f74bd773bc1479a50cd8a879e766c4d8408ca3f28e638f248925e2ef56b818

Contents?: true

Size: 1.21 KB

Versions: 4

Compression:

Stored size: 1.21 KB

Contents

require 'spec_helper'

describe MasqueradesTestsController, type: :controller do
  before { @request.env['devise.mapping'] = Devise.mappings[:user] }

  context 'no access for masquerade' do
    before do
      session.clear
      allow_any_instance_of(MasqueradesTestsController).to receive(:masquerade_authorized?) { false }
    end

    before { logged_in }

    let(:mask) { create(:user) }

    before { get :show, params: { id: mask.to_param, masquerade: mask.masquerade_key } }

    it { expect(response.status).to eq(403) }
    it { expect(Rails.cache.read('devise_masquerade_user')).not_to be }
    it { expect(session['warden.user.user.key'].first.first).not_to eq(mask.id) }
  end

  context 'access for masquerade' do
    before do
      session.clear
      allow_any_instance_of(MasqueradesTestsController).to receive(:masquerade_authorized?) { true }
    end

    before { logged_in }

    let(:mask) { create(:user) }

    before do
      get :show, params: { id: mask.to_param, masquerade: mask.masquerade_key }
    end

    it { expect(response.status).to eq(302) }
    it { expect(Rails.cache.read('devise_masquerade_user')).to be }
    it { expect(session['warden.user.user.key'].first.first).to eq(mask.id) }
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
devise_masquerade-1.3.3 spec/controllers/masquerades_tests_controller_spec.rb
devise_masquerade-1.3.2 spec/controllers/masquerades_tests_controller_spec.rb
devise_masquerade-1.3.1 spec/controllers/masquerades_tests_controller_spec.rb
devise_masquerade-1.3.0 spec/controllers/masquerades_tests_controller_spec.rb