@ -100,6 +100,38 @@ RSpec.describe Tag do
end
end
describe '.recently_used' do
let ( :account ) { Fabricate ( :account ) }
let ( :other_person_status ) { Fabricate ( :status ) }
let ( :out_of_range ) { Fabricate ( :status , account : account ) }
let ( :older_in_range ) { Fabricate ( :status , account : account ) }
let ( :newer_in_range ) { Fabricate ( :status , account : account ) }
let ( :unused_tag ) { Fabricate ( :tag ) }
let ( :used_tag_one ) { Fabricate ( :tag ) }
let ( :used_tag_two ) { Fabricate ( :tag ) }
let ( :used_tag_on_out_of_range ) { Fabricate ( :tag ) }
before do
stub_const 'Tag::RECENT_STATUS_LIMIT' , 2
other_person_status . tags << used_tag_one
out_of_range . tags << used_tag_on_out_of_range
older_in_range . tags << used_tag_one
older_in_range . tags << used_tag_two
newer_in_range . tags << used_tag_one
end
it 'returns tags used by account within last X statuses ordered most used first' do
results = described_class . recently_used ( account )
expect ( results )
. to eq ( [ used_tag_one , used_tag_two ] )
end
end
describe '.find_normalized' do
it 'returns tag for a multibyte case-insensitive name' do
upcase_string = 'abcABCa b c A B C やゆよ'