Add support for language preferences for trending statuses and links (#18288)
This commit is contained in:
parent
678fc4d292
commit
45ebdb72ca
29 changed files with 274 additions and 121 deletions
|
@ -11,4 +11,5 @@ Fabricator(:account) do
|
|||
suspended_at { |attrs| attrs[:suspended] ? Time.now.utc : nil }
|
||||
silenced_at { |attrs| attrs[:silenced] ? Time.now.utc : nil }
|
||||
user { |attrs| attrs[:domain].nil? ? Fabricate.build(:user, account: nil) : nil }
|
||||
discoverable true
|
||||
end
|
||||
|
|
|
@ -8,7 +8,7 @@ class AdminMailerPreview < ActionMailer::Preview
|
|||
|
||||
# Preview this email at http://localhost:3000/rails/mailers/admin_mailer/new_trends
|
||||
def new_trends
|
||||
AdminMailer.new_trends(Account.first, PreviewCard.limit(3), Tag.limit(3), Status.where(reblog_of_id: nil).limit(3))
|
||||
AdminMailer.new_trends(Account.first, PreviewCard.joins(:trend).limit(3), Tag.limit(3), Status.joins(:trend).where(reblog_of_id: nil).limit(3))
|
||||
end
|
||||
|
||||
# Preview this email at http://localhost:3000/rails/mailers/admin_mailer/new_appeal
|
||||
|
|
4
spec/models/preview_card_trend_spec.rb
Normal file
4
spec/models/preview_card_trend_spec.rb
Normal file
|
@ -0,0 +1,4 @@
|
|||
require 'rails_helper'
|
||||
|
||||
RSpec.describe PreviewCardTrend, type: :model do
|
||||
end
|
4
spec/models/status_trend_spec.rb
Normal file
4
spec/models/status_trend_spec.rb
Normal file
|
@ -0,0 +1,4 @@
|
|||
require 'rails_helper'
|
||||
|
||||
RSpec.describe StatusTrend, type: :model do
|
||||
end
|
|
@ -9,8 +9,8 @@ RSpec.describe Trends::Statuses do
|
|||
let!(:query) { subject.query }
|
||||
let!(:today) { at_time }
|
||||
|
||||
let!(:status1) { Fabricate(:status, text: 'Foo', trendable: true, created_at: today) }
|
||||
let!(:status2) { Fabricate(:status, text: 'Bar', trendable: true, created_at: today) }
|
||||
let!(:status1) { Fabricate(:status, text: 'Foo', language: 'en', trendable: true, created_at: today) }
|
||||
let!(:status2) { Fabricate(:status, text: 'Bar', language: 'en', trendable: true, created_at: today) }
|
||||
|
||||
before do
|
||||
15.times { reblog(status1, today) }
|
||||
|
@ -69,9 +69,9 @@ RSpec.describe Trends::Statuses do
|
|||
let!(:today) { at_time }
|
||||
let!(:yesterday) { today - 1.day }
|
||||
|
||||
let!(:status1) { Fabricate(:status, text: 'Foo', trendable: true, created_at: yesterday) }
|
||||
let!(:status2) { Fabricate(:status, text: 'Bar', trendable: true, created_at: today) }
|
||||
let!(:status3) { Fabricate(:status, text: 'Baz', trendable: true, created_at: today) }
|
||||
let!(:status1) { Fabricate(:status, text: 'Foo', language: 'en', trendable: true, created_at: yesterday) }
|
||||
let!(:status2) { Fabricate(:status, text: 'Bar', language: 'en', trendable: true, created_at: today) }
|
||||
let!(:status3) { Fabricate(:status, text: 'Baz', language: 'en', trendable: true, created_at: today) }
|
||||
|
||||
before do
|
||||
13.times { reblog(status1, today) }
|
||||
|
@ -95,10 +95,10 @@ RSpec.describe Trends::Statuses do
|
|||
|
||||
it 'decays scores' do
|
||||
subject.refresh(today)
|
||||
original_score = subject.score(status2.id)
|
||||
original_score = status2.trend.score
|
||||
expect(original_score).to be_a Float
|
||||
subject.refresh(today + subject.options[:score_halflife])
|
||||
decayed_score = subject.score(status2.id)
|
||||
decayed_score = status2.trend.reload.score
|
||||
expect(decayed_score).to be <= original_score / 2
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue