diff options
author | ysksn <bluewhale1982@gmail.com> | 2018-12-21 01:52:18 +0900 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2018-12-20 17:52:18 +0100 |
commit | 6a2d030c2f5aec5cbfcfd88ab4ec4c12864e35ba (patch) | |
tree | d948d3046c8db00584f8bd0dac8b1d45635aedbb /spec/policies | |
parent | b93e3178863fee1d6cb1da1f6baa5bb038903af4 (diff) |
Add specs for ReportNotePolicy (#9592)
Diffstat (limited to 'spec/policies')
-rw-r--r-- | spec/policies/report_note_policy_spec.rb | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/spec/policies/report_note_policy_spec.rb b/spec/policies/report_note_policy_spec.rb new file mode 100644 index 000000000..596d7d7a9 --- /dev/null +++ b/spec/policies/report_note_policy_spec.rb @@ -0,0 +1,48 @@ +# frozen_string_literal: true + +require 'rails_helper' +require 'pundit/rspec' + +RSpec.describe ReportNotePolicy do + let(:subject) { described_class } + let(:admin) { Fabricate(:user, admin: true).account } + let(:john) { Fabricate(:user).account } + + permissions :create? do + context 'staff?' do + it 'permits' do + expect(subject).to permit(admin, ReportNote) + end + end + + context '!staff?' do + it 'denies' do + expect(subject).to_not permit(john, ReportNote) + end + end + end + + permissions :destroy? do + context 'admin?' do + it 'permit' do + expect(subject).to permit(admin, ReportNote) + end + end + + context 'admin?' do + context 'owner?' do + it 'permit' do + report_note = Fabricate(:report_note, account: john) + expect(subject).to permit(john, report_note) + end + end + + context '!owner?' do + it 'denies' do + report_note = Fabricate(:report_note) + expect(subject).to_not permit(john, report_note) + end + end + end + end +end |