about summary refs log tree commit diff
path: root/spec/controllers/api
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2020-07-15 14:43:19 +0200
committerGitHub <noreply@github.com>2020-07-15 14:43:19 +0200
commit0a8a3fe59590e60b28c26a2e79ffe22b4d77f698 (patch)
treeabcc4e0f2a6c43dcc49f5082d0dd2e5dadd941bb /spec/controllers/api
parent5c23ec2fa668c9a0b25681349f7e73e1dfb68ecd (diff)
Fix being unable to unboost when blocked by their author (#14308)
Fixes #14307
Diffstat (limited to 'spec/controllers/api')
-rw-r--r--spec/controllers/api/v1/statuses/reblogs_controller_spec.rb30
1 files changed, 30 insertions, 0 deletions
diff --git a/spec/controllers/api/v1/statuses/reblogs_controller_spec.rb b/spec/controllers/api/v1/statuses/reblogs_controller_spec.rb
index 93b244cc3..f1d3d949c 100644
--- a/spec/controllers/api/v1/statuses/reblogs_controller_spec.rb
+++ b/spec/controllers/api/v1/statuses/reblogs_controller_spec.rb
@@ -82,6 +82,36 @@ describe Api::V1::Statuses::ReblogsController do
         end
       end
 
+      context 'with public status when blocked by its author' do
+        let(:status) { Fabricate(:status, account: user.account) }
+
+        before do
+          ReblogService.new.call(user.account, status)
+          status.account.block!(user.account)
+          post :destroy, params: { status_id: status.id }
+        end
+
+        it 'returns http success' do
+          expect(response).to have_http_status(200)
+        end
+
+        it 'updates the reblogs count' do
+          expect(status.reblogs.count).to eq 0
+        end
+
+        it 'updates the reblogged attribute' do
+          expect(user.account.reblogged?(status)).to be false
+        end
+
+        it 'returns json with updated attributes' do
+          hash_body = body_as_json
+
+          expect(hash_body[:id]).to eq status.id.to_s
+          expect(hash_body[:reblogs_count]).to eq 0
+          expect(hash_body[:reblogged]).to be false
+        end
+      end
+
       context 'with private status that was not reblogged' do
         let(:status) { Fabricate(:status, visibility: :private) }