Merge remote-tracking branch 'parent/main' into upstream-20241107

This commit is contained in:
KMY 2024-11-07 08:33:20 +09:00
commit a003c2db89
98 changed files with 2002 additions and 590 deletions

View file

@ -57,36 +57,24 @@ RSpec.describe AccountStatusesFilter do
end
shared_examples 'filter params' do
context 'with only_media param' do
let(:params) { { only_media: true } }
it 'respects param options in results' do
expect(results_for(only_media: true))
.to all(satisfy(&:with_media?))
it 'returns only statuses with media' do
expect(subject.all?(&:with_media?)).to be true
end
expect(results_for(tagged: tag.name))
.to all(satisfy { |status| status.tags.include?(tag) })
expect(results_for(exclude_replies: true))
.to all(satisfy { |status| !status.reply? })
expect(results_for(exclude_reblogs: true))
.to all(satisfy { |status| !status.reblog? })
end
context 'with tagged param' do
let(:params) { { tagged: tag.name } }
it 'returns only statuses with tag' do
expect(subject.all? { |s| s.tags.include?(tag) }).to be true
end
end
context 'with exclude_replies param' do
let(:params) { { exclude_replies: true } }
it 'returns only statuses that are not replies' do
expect(subject.none?(&:reply?)).to be true
end
end
context 'with exclude_reblogs param' do
let(:params) { { exclude_reblogs: true } }
it 'returns only statuses that are not reblogs' do
expect(subject.none?(&:reblog?)).to be true
end
def results_for(params)
described_class
.new(account, current_account, params)
.results
end
end

View file

@ -4,17 +4,20 @@ require 'rails_helper'
RSpec.describe AnnualReport::Percentiles do
describe '#generate' do
subject { described_class.new(account, Time.zone.now.year) }
subject { described_class.new(account, year) }
let(:year) { Time.zone.now.year }
context 'with an inactive account' do
let(:account) { Fabricate :account }
it 'builds a report for an account' do
described_class.prepare(year)
expect(subject.generate)
.to include(
percentiles: include(
followers: 0,
statuses: 0
statuses: 100
)
)
end
@ -25,16 +28,15 @@ RSpec.describe AnnualReport::Percentiles do
before do
Fabricate.times 2, :status # Others as `account`
Fabricate.times 2, :follow # Others as `target_account`
Fabricate.times 2, :status, account: account
Fabricate.times 2, :follow, target_account: account
end
it 'builds a report for an account' do
described_class.prepare(year)
expect(subject.generate)
.to include(
percentiles: include(
followers: 50,
statuses: 50
)
)