about summary refs log tree commit diff
path: root/spec/policies/account_policy_spec.rb
diff options
context:
space:
mode:
authorStarfall <us@starfall.systems>2020-11-19 10:02:56 -0600
committerStarfall <us@starfall.systems>2020-11-19 10:02:56 -0600
commit383bb3804bdbd6caa442283cc96ef0cdbfdb4575 (patch)
tree54ecc09c325567ab1cfc4af9ba13ad134d9c3c72 /spec/policies/account_policy_spec.rb
parent259470ec37dfc5c3d34ed5456adcd3ab1a622a18 (diff)
parentdb01f8b942b72eaa2eacbb144261b002f8079c9c (diff)
Merge branch 'glitch' into main
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