diff options
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 |
