about summary refs log tree commit diff
path: root/spec
diff options
context:
space:
mode:
authorVarun Sharma <varun999sharma@gmail.com>2023-02-13 20:34:26 +0530
committerGitHub <noreply@github.com>2023-02-13 16:04:26 +0100
commit45e2936c89870de7cd2fd0ce159e195745d8fddc (patch)
tree8683c580f058f87fb946298d00ce6e4d1f731388 /spec
parentf553b064e09fd9005c61b910f7be9f7e2955197b (diff)
Add tests to indicate inclusion of self replies in statuses endpoint (#23266)
Diffstat (limited to 'spec')
-rw-r--r--spec/controllers/api/v1/accounts/statuses_controller_spec.rb37
1 files changed, 28 insertions, 9 deletions
diff --git a/spec/controllers/api/v1/accounts/statuses_controller_spec.rb b/spec/controllers/api/v1/accounts/statuses_controller_spec.rb
index b962b3398..01d745fc0 100644
--- a/spec/controllers/api/v1/accounts/statuses_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/statuses_controller_spec.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: true
 require 'rails_helper'
 
 describe Api::V1::Accounts::StatusesController do
@@ -15,7 +16,12 @@ describe Api::V1::Accounts::StatusesController do
     it 'returns http success' do
       get :index, params: { account_id: user.account.id, limit: 1 }
 
-      expect(response).to have_http_status(200)
+      expect(response).to have_http_status(:ok)
+    end
+
+    it 'returns expected headers' do
+      get :index, params: { account_id: user.account.id, limit: 1 }
+
       expect(response.headers['Link'].links.size).to eq(2)
     end
 
@@ -23,19 +29,29 @@ describe Api::V1::Accounts::StatusesController do
       it 'returns http success' do
         get :index, params: { account_id: user.account.id, only_media: true }
 
-        expect(response).to have_http_status(200)
+        expect(response).to have_http_status(:ok)
       end
     end
 
     context 'with exclude replies' do
+      let!(:older_statuses) { user.account.statuses.destroy_all }
+      let!(:status) { Fabricate(:status, account: user.account) }
+      let!(:status_self_reply) { Fabricate(:status, account: user.account, thread: status) }
+
       before do
-        Fabricate(:status, account: user.account, thread: Fabricate(:status))
+        Fabricate(:status, account: user.account, thread: Fabricate(:status)) # Reply to another user
+        get :index, params: { account_id: user.account.id, exclude_replies: true }
       end
 
       it 'returns http success' do
-        get :index, params: { account_id: user.account.id, exclude_replies: true }
+        expect(response).to have_http_status(:ok)
+      end
+
+      it 'returns posts along with self replies' do
+        json = body_as_json
+        post_ids = json.map { |item| item[:id].to_i }.sort
 
-        expect(response).to have_http_status(200)
+        expect(post_ids).to eq [status.id, status_self_reply.id]
       end
     end
 
@@ -47,7 +63,7 @@ describe Api::V1::Accounts::StatusesController do
       it 'returns http success' do
         get :index, params: { account_id: user.account.id, pinned: true }
 
-        expect(response).to have_http_status(200)
+        expect(response).to have_http_status(:ok)
       end
     end
 
@@ -55,12 +71,15 @@ describe Api::V1::Accounts::StatusesController do
       let(:account)        { Fabricate(:account, username: 'bob', domain: 'example.com') }
       let(:status)         { Fabricate(:status, account: account) }
       let(:private_status) { Fabricate(:status, account: account, visibility: :private) }
-      let!(:pin)           { Fabricate(:status_pin, account: account, status: status) }
-      let!(:private_pin)   { Fabricate(:status_pin, account: account, status: private_status) }
+
+      before do
+        Fabricate(:status_pin, account: account, status: status)
+        Fabricate(:status_pin, account: account, status: private_status)
+      end
 
       it 'returns http success' do
         get :index, params: { account_id: account.id, pinned: true }
-        expect(response).to have_http_status(200)
+        expect(response).to have_http_status(:ok)
       end
 
       context 'when user does not follow account' do