1# frozen_string_literal: true 2 3require 'spec_helper' 4 5RSpec.describe IdentityProviderPolicy do 6 subject(:policy) { described_class.new(user, provider) } 7 8 let(:user) { User.new } 9 let(:provider) { :a_provider } 10 11 describe '#rules' do 12 it { is_expected.to be_allowed(:link) } 13 it { is_expected.to be_allowed(:unlink) } 14 15 context 'when user is anonymous' do 16 let(:user) { nil } 17 18 it { is_expected.not_to be_allowed(:link) } 19 it { is_expected.not_to be_allowed(:unlink) } 20 end 21 22 %w[saml cas3].each do |provider_name| 23 context "when provider is #{provider_name}" do 24 let(:provider) { provider_name } 25 26 it { is_expected.to be_allowed(:link) } 27 it { is_expected.not_to be_allowed(:unlink) } 28 end 29 end 30 end 31end 32