aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/policies/compliance_control_policy_spec.rb19
-rw-r--r--spec/policies/compliance_control_set_policy_spec.rb23
-rw-r--r--spec/support/pundit/shared_examples.rb20
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