about summary refs log tree commit diff
path: root/spec/controllers/api/v1
diff options
context:
space:
mode:
authorThibaut Girka <thib@sitedethib.com>2020-07-15 15:32:40 +0200
committerThibaut Girka <thib@sitedethib.com>2020-07-15 15:32:40 +0200
commit3f60b096b51b000905290d69ea05b874b60fa9e0 (patch)
tree0b8c7011810b4a97523c2c63816735e519f0682c /spec/controllers/api/v1
parent7a23347db5be3f262dbcafbecf768588dc648bda (diff)
parentd9cad44ca54374cafa0c97775083bb1bc0a5a3ce (diff)
Merge branch 'master' into glitch-soc/merge-upstream
Conflicts:
- `config/routes.rb`:
  Upstream disabled E2EE routes, which we did earlier, but slightly
  differently. Took upstream's version.
Diffstat (limited to 'spec/controllers/api/v1')
-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) }