Sha256: 0553e7c9747567a2d931c3d094519ddde4c4549eaf2e8837b2443907e75228a3

Contents?: true

Size: 1.66 KB

Versions: 6

Compression:

Stored size: 1.66 KB

Contents

# frozen_string_literal: true

RSpec.describe Spotlight::AdminUsersController, type: :controller do
  routes { Spotlight::Engine.routes }

  before { sign_in(user) }

  context 'by a non-admin' do
    let(:user) { FactoryBot.create(:exhibit_visitor) }
    it 'redirects with an error message' do
      get :index
      expect(response).to redirect_to '/'
      expect(flash[:alert]).to eq 'You are not authorized to access this page.'
    end
  end

  context 'by an admin user' do
    before { request.env['HTTP_REFERER'] = 'http://example.com' }

    let(:user) { FactoryBot.create(:site_admin) }
    describe 'GET index' do
      it 'is successful' do
        get :index
        expect(response).to be_successful
      end
    end

    describe 'DELETE destroy' do
      let(:user) { FactoryBot.create(:user) }
      let!(:admin_role) { FactoryBot.create(:role, role: 'admin', user: user, resource: Spotlight::Site.instance) }
      it 'removes the site admin role from the given user' do
        delete :destroy, params: { id: user.id }
        expect(response).to redirect_to(admin_users_path)
        expect(flash[:notice]).to eq 'User removed from site adminstrator role'
        expect(Spotlight::Site.instance.roles.where(user_id: user.id)).to be_none
      end
    end

    describe 'PATCH update' do
      let(:non_admin) { FactoryBot.create(:exhibit_visitor) }
      it 'adds the site admin role to the given user' do
        patch :update, params: { id: non_admin.id }
        expect(response).to redirect_to(admin_users_path)
        expect(flash[:notice]).to eq 'Added user as an adminstrator'
        expect(non_admin.roles.map(&:role)).to eq ['admin']
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
blacklight-spotlight-3.0.0.alpha.2 spec/controllers/spotlight/admin_users_controller_spec.rb
blacklight-spotlight-3.0.0.alpha.1 spec/controllers/spotlight/admin_users_controller_spec.rb
blacklight-spotlight-2.13.0 spec/controllers/spotlight/admin_users_controller_spec.rb
blacklight-spotlight-2.12.1 spec/controllers/spotlight/admin_users_controller_spec.rb
blacklight-spotlight-2.12.0 spec/controllers/spotlight/admin_users_controller_spec.rb
blacklight-spotlight-2.11.0 spec/controllers/spotlight/admin_users_controller_spec.rb