From 1c826471e7d964f0fdb2dc2b89dcd5a19c017538 Mon Sep 17 00:00:00 2001 From: Jeong Arm Date: Sat, 27 Nov 2021 06:12:27 +0900 Subject: [PATCH] Fix admin statuses order(#16937) (#16969) * Fix #16937 * Add test for statuses order --- app/controllers/admin/statuses_controller.rb | 2 +- spec/controllers/admin/statuses_controller_spec.rb | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/controllers/admin/statuses_controller.rb b/app/controllers/admin/statuses_controller.rb index 58a0eb84c..b3fd4c424 100644 --- a/app/controllers/admin/statuses_controller.rb +++ b/app/controllers/admin/statuses_controller.rb @@ -14,7 +14,7 @@ module Admin @statuses = @account.statuses.where(visibility: [:public, :unlisted]) if params[:media] - @statuses.merge!(Status.joins(:media_attachments).merge(@account.media_attachments.reorder(nil)).group(:id)).reorder('statuses.id desc') + @statuses = @statuses.merge(Status.joins(:media_attachments).merge(@account.media_attachments.reorder(nil)).group(:id)).reorder('statuses.id desc') end @statuses = @statuses.preload(:media_attachments, :mentions).page(params[:page]).per(PER_PAGE) diff --git a/spec/controllers/admin/statuses_controller_spec.rb b/spec/controllers/admin/statuses_controller_spec.rb index d9690d83f..e388caae2 100644 --- a/spec/controllers/admin/statuses_controller_spec.rb +++ b/spec/controllers/admin/statuses_controller_spec.rb @@ -8,6 +8,9 @@ describe Admin::StatusesController do let!(:status) { Fabricate(:status, account: account) } let(:media_attached_status) { Fabricate(:status, account: account, sensitive: !sensitive) } let!(:media_attachment) { Fabricate(:media_attachment, account: account, status: media_attached_status) } + let(:last_media_attached_status) { Fabricate(:status, account: account, sensitive: !sensitive) } + let!(:last_media_attachment) { Fabricate(:media_attachment, account: account, status: last_media_attached_status) } + let!(:last_status) { Fabricate(:status, account: account) } let(:sensitive) { true } before do @@ -19,7 +22,8 @@ describe Admin::StatusesController do get :index, params: { account_id: account.id } statuses = assigns(:statuses).to_a - expect(statuses.size).to eq 2 + expect(statuses.size).to eq 4 + expect(statuses.first.id).to eq last_status.id expect(response).to have_http_status(200) end @@ -27,7 +31,8 @@ describe Admin::StatusesController do get :index, params: { account_id: account.id, media: true } statuses = assigns(:statuses).to_a - expect(statuses.size).to eq 1 + expect(statuses.size).to eq 2 + expect(statuses.first.id).to eq last_media_attached_status.id expect(response).to have_http_status(200) end end