mirror of
https://github.com/mastodon/mastodon.git
synced 2025-01-08 19:35:11 +01:00
Use in_order_of
with filter: false
in AccountSummary.localized
(#33446)
This commit is contained in:
parent
612d6182e4
commit
08dd11f8d4
@ -17,6 +17,6 @@ class AccountSummary < ApplicationRecord
|
|||||||
has_many :follow_recommendation_suppressions, primary_key: :account_id, foreign_key: :account_id, inverse_of: false, dependent: nil
|
has_many :follow_recommendation_suppressions, primary_key: :account_id, foreign_key: :account_id, inverse_of: false, dependent: nil
|
||||||
|
|
||||||
scope :safe, -> { where(sensitive: false) }
|
scope :safe, -> { where(sensitive: false) }
|
||||||
scope :localized, ->(locale) { order(Arel::Nodes::Case.new.when(arel_table[:language].eq(locale)).then(1).else(0).desc) }
|
scope :localized, ->(locale) { in_order_of(:language, [locale], filter: false) }
|
||||||
scope :filtered, -> { where.missing(:follow_recommendation_suppressions) }
|
scope :filtered, -> { where.missing(:follow_recommendation_suppressions) }
|
||||||
end
|
end
|
||||||
|
26
spec/models/account_summary_spec.rb
Normal file
26
spec/models/account_summary_spec.rb
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
RSpec.describe AccountSummary do
|
||||||
|
describe 'Scopes' do
|
||||||
|
describe '.localized' do
|
||||||
|
let(:first) { Fabricate :account }
|
||||||
|
let(:last) { Fabricate :account }
|
||||||
|
|
||||||
|
before do
|
||||||
|
Fabricate :status, account: first, language: 'en'
|
||||||
|
Fabricate :status, account: last, language: 'es'
|
||||||
|
described_class.refresh
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns records in order of language' do
|
||||||
|
expect(described_class.localized('en'))
|
||||||
|
.to contain_exactly(
|
||||||
|
have_attributes(account_id: first.id, language: 'en'),
|
||||||
|
have_attributes(account_id: last.id, language: 'es')
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user