diff options
| author | cedricnjanga | 2017-10-25 12:22:00 +0200 | 
|---|---|---|
| committer | Robert | 2017-11-02 16:59:29 +0100 | 
| commit | 4bc481fe691668a642a186931946c22ea74b0b16 (patch) | |
| tree | 5adf94b8396a14f52189eb34ad0132fc8050bd7c /spec | |
| parent | 13553712a18435f16f449a6d0c6a2ade24038797 (diff) | |
| download | chouette-core-4776-compliance_controls_policy.tar.bz2 | |
Refs #4776 Add policies to ComplianceControl and ComplianceControlSet4776-compliance_controls_policy
Diffstat (limited to 'spec')
| -rw-r--r-- | spec/policies/compliance_control_policy_spec.rb | 19 | ||||
| -rw-r--r-- | spec/policies/compliance_control_set_policy_spec.rb | 23 | ||||
| -rw-r--r-- | spec/support/pundit/shared_examples.rb | 20 | 
3 files changed, 48 insertions, 14 deletions
| diff --git a/spec/policies/compliance_control_policy_spec.rb b/spec/policies/compliance_control_policy_spec.rb index d7c80143d..c66fa8f93 100644 --- a/spec/policies/compliance_control_policy_spec.rb +++ b/spec/policies/compliance_control_policy_spec.rb @@ -2,27 +2,18 @@ require 'rails_helper'  RSpec.describe ComplianceControlPolicy do -  let(:user) { User.new } - -  subject { described_class } - -  permissions ".scope" do -    pending "add some examples to (or delete) #{__FILE__}" -  end - -  permissions :show? do -    pending "add some examples to (or delete) #{__FILE__}" -  end +  let( :record ){ build_stubbed :compliance_control } +  before { stub_policy_scope(record) }    permissions :create? do -    pending "add some examples to (or delete) #{__FILE__}" +    it_behaves_like 'permitted policy outside referential', 'compliance_controls.create'    end    permissions :update? do -    pending "add some examples to (or delete) #{__FILE__}" +    it_behaves_like 'permitted policy outside referential', 'compliance_controls.update'    end    permissions :destroy? do -    pending "add some examples to (or delete) #{__FILE__}" +    it_behaves_like 'permitted policy outside referential', 'compliance_controls.destroy'    end  end diff --git a/spec/policies/compliance_control_set_policy_spec.rb b/spec/policies/compliance_control_set_policy_spec.rb new file mode 100644 index 000000000..6ab0bd60c --- /dev/null +++ b/spec/policies/compliance_control_set_policy_spec.rb @@ -0,0 +1,23 @@ +require 'rails_helper' + +RSpec.describe ComplianceControlSetPolicy do + +  let( :record ){ build_stubbed :compliance_control_set } +  before { stub_policy_scope(record) } + +  permissions :create? do +    it_behaves_like 'permitted policy outside referential', 'compliance_controls_sets.create' +  end + +  permissions :update? do +    it_behaves_like 'permitted policy outside referential', 'compliance_controls_sets.update' +  end + +  permissions :clone? do +    it_behaves_like 'permitted policy outside referential', 'compliance_controls_sets.create' +  end + +  permissions :destroy? do +    it_behaves_like 'permitted policy outside referential', 'compliance_controls_sets.destroy' +  end +end diff --git a/spec/support/pundit/shared_examples.rb b/spec/support/pundit/shared_examples.rb index 49c6845da..49f915626 100644 --- a/spec/support/pundit/shared_examples.rb +++ b/spec/support/pundit/shared_examples.rb @@ -129,3 +129,23 @@ RSpec.shared_examples 'permitted policy' do      end    end  end + +RSpec.shared_examples 'permitted policy outside referential' do +  | permission | + +  context 'permission absent → ' do +    it "denies user" do +      expect_it.not_to permit(user_context, record) +    end +  end + +  context 'permission present → '  do +    before do +      add_permissions(permission, to_user: user) +    end + +    it 'allows user' do +      expect_it.to permit(user_context, record) +    end +  end +end
\ No newline at end of file | 
