mirror of
https://github.com/mastodon/mastodon.git
synced 2026-03-21 18:05:23 -05:00
Add shared example for RankedTrend concern (#33125)
Some checks failed
Check i18n / check-i18n (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (ruby) (push) Waiting to run
Check formatting / lint (push) Waiting to run
Ruby Linting / lint (push) Waiting to run
Historical data migration test / test (14-alpine) (push) Waiting to run
Historical data migration test / test (15-alpine) (push) Waiting to run
Historical data migration test / test (16-alpine) (push) Waiting to run
Historical data migration test / test (17-alpine) (push) Waiting to run
Ruby Testing / build (production) (push) Waiting to run
Ruby Testing / build (test) (push) Waiting to run
Ruby Testing / test (.ruby-version) (push) Blocked by required conditions
Ruby Testing / test (3.2) (push) Blocked by required conditions
Ruby Testing / Libvips tests (.ruby-version) (push) Blocked by required conditions
Ruby Testing / Libvips tests (3.2) (push) Blocked by required conditions
Ruby Testing / End to End testing (.ruby-version) (push) Blocked by required conditions
Ruby Testing / End to End testing (3.2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:8.10.2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, opensearchproject/opensearch:2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (3.2, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Bundler Audit / security (push) Has been cancelled
Some checks failed
Check i18n / check-i18n (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (ruby) (push) Waiting to run
Check formatting / lint (push) Waiting to run
Ruby Linting / lint (push) Waiting to run
Historical data migration test / test (14-alpine) (push) Waiting to run
Historical data migration test / test (15-alpine) (push) Waiting to run
Historical data migration test / test (16-alpine) (push) Waiting to run
Historical data migration test / test (17-alpine) (push) Waiting to run
Ruby Testing / build (production) (push) Waiting to run
Ruby Testing / build (test) (push) Waiting to run
Ruby Testing / test (.ruby-version) (push) Blocked by required conditions
Ruby Testing / test (3.2) (push) Blocked by required conditions
Ruby Testing / Libvips tests (.ruby-version) (push) Blocked by required conditions
Ruby Testing / Libvips tests (3.2) (push) Blocked by required conditions
Ruby Testing / End to End testing (.ruby-version) (push) Blocked by required conditions
Ruby Testing / End to End testing (3.2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:8.10.2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, opensearchproject/opensearch:2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (3.2, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Bundler Audit / security (push) Has been cancelled
This commit is contained in:
parent
75ecc6df06
commit
3cd308523a
|
|
@ -3,20 +3,9 @@
|
|||
require 'rails_helper'
|
||||
|
||||
RSpec.describe PreviewCardTrend do
|
||||
include_examples 'RankedTrend'
|
||||
|
||||
describe 'Associations' do
|
||||
it { is_expected.to belong_to(:preview_card).required }
|
||||
end
|
||||
|
||||
describe '.locales' do
|
||||
before do
|
||||
Fabricate :preview_card_trend, language: 'en'
|
||||
Fabricate :preview_card_trend, language: 'en'
|
||||
Fabricate :preview_card_trend, language: 'es'
|
||||
end
|
||||
|
||||
it 'returns unique set of languages' do
|
||||
expect(described_class.locales)
|
||||
.to eq(['en', 'es'])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -3,21 +3,10 @@
|
|||
require 'rails_helper'
|
||||
|
||||
RSpec.describe StatusTrend do
|
||||
include_examples 'RankedTrend'
|
||||
|
||||
describe 'Associations' do
|
||||
it { is_expected.to belong_to(:account).required }
|
||||
it { is_expected.to belong_to(:status).required }
|
||||
end
|
||||
|
||||
describe '.locales' do
|
||||
before do
|
||||
Fabricate :status_trend, language: 'en'
|
||||
Fabricate :status_trend, language: 'en'
|
||||
Fabricate :status_trend, language: 'es'
|
||||
end
|
||||
|
||||
it 'returns unique set of languages' do
|
||||
expect(described_class.locales)
|
||||
.to eq(['en', 'es'])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
55
spec/support/examples/models/concerns/ranked_trend.rb
Normal file
55
spec/support/examples/models/concerns/ranked_trend.rb
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
RSpec.shared_examples 'RankedTrend' do
|
||||
describe 'Scopes' do
|
||||
describe '.by_rank' do
|
||||
let!(:lower_rank) { Fabricate factory_name, rank: 5 }
|
||||
let!(:higher_rank) { Fabricate factory_name, rank: 50 }
|
||||
|
||||
it 'returns records ordered by rank' do
|
||||
expect(described_class.by_rank)
|
||||
.to eq([higher_rank, lower_rank])
|
||||
end
|
||||
end
|
||||
|
||||
describe '.ranked_below' do
|
||||
let!(:low_rank) { Fabricate factory_name, rank: 5 }
|
||||
let!(:med_rank) { Fabricate factory_name, rank: 50 }
|
||||
let!(:high_rank) { Fabricate factory_name, rank: 500 }
|
||||
|
||||
it 'returns records ordered by rank' do
|
||||
expect(described_class.ranked_below(100))
|
||||
.to include(low_rank)
|
||||
.and include(med_rank)
|
||||
.and not_include(high_rank)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '.locales' do
|
||||
before do
|
||||
Fabricate.times 2, factory_name, language: 'en'
|
||||
Fabricate factory_name, language: 'es'
|
||||
end
|
||||
|
||||
it 'returns unique set of languages' do
|
||||
expect(described_class.locales)
|
||||
.to eq(['en', 'es'])
|
||||
end
|
||||
end
|
||||
|
||||
describe '.recalculate_ordered_rank' do
|
||||
let!(:low_score) { Fabricate factory_name, score: 5, rank: 123 }
|
||||
let!(:high_score) { Fabricate factory_name, score: 10, rank: 456 }
|
||||
|
||||
it 'ranks records based on their score' do
|
||||
expect { described_class.recalculate_ordered_rank }
|
||||
.to change { low_score.reload.rank }.to(2)
|
||||
.and change { high_score.reload.rank }.to(1)
|
||||
end
|
||||
end
|
||||
|
||||
def factory_name
|
||||
described_class.name.underscore.to_sym
|
||||
end
|
||||
end
|
||||
Loading…
Reference in New Issue
Block a user