aboutsummaryrefslogtreecommitdiff
path: root/spec/policies/account_policy_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/policies/account_policy_spec.rb')
-rw-r--r--spec/policies/account_policy_spec.rb35
1 files changed, 34 insertions, 1 deletions
diff --git a/spec/policies/account_policy_spec.rb b/spec/policies/account_policy_spec.rb
index 6648b0888..1347ca4a0 100644
--- a/spec/policies/account_policy_spec.rb
+++ b/spec/policies/account_policy_spec.rb
@@ -7,8 +7,9 @@ RSpec.describe AccountPolicy do
let(:subject) { described_class }
let(:admin) { Fabricate(:user, admin: true).account }
let(:john) { Fabricate(:user).account }
+ let(:alice) { Fabricate(:user).account }
- permissions :index?, :show?, :unsuspend?, :unsilence?, :remove_avatar?, :remove_header? do
+ permissions :index? do
context 'staff' do
it 'permits' do
expect(subject).to permit(admin)
@@ -22,6 +23,38 @@ RSpec.describe AccountPolicy do
end
end
+ permissions :show?, :unsilence?, :unsensitive?, :remove_avatar?, :remove_header? do
+ context 'staff' do
+ it 'permits' do
+ expect(subject).to permit(admin, alice)
+ end
+ end
+
+ context 'not staff' do
+ it 'denies' do
+ expect(subject).to_not permit(john, alice)
+ end
+ end
+ end
+
+ permissions :unsuspend? do
+ before do
+ alice.suspend!
+ end
+
+ context 'staff' do
+ it 'permits' do
+ expect(subject).to permit(admin, alice)
+ end
+ end
+
+ context 'not staff' do
+ it 'denies' do
+ expect(subject).to_not permit(john, alice)
+ end
+ end
+ end
+
permissions :redownload?, :subscribe?, :unsubscribe? do
context 'admin' do
it 'permits' do