~cytrogen/masto-fe

bc75e62ca6e16d3dad43fd35ccca335de547cfb3 — Heitor de Melo Cardozo 3 years ago ab740f4
Change moderation search an account using the username with @ (#24242)

2 files changed, 20 insertions(+), 1 deletions(-)

M app/models/account_filter.rb
M spec/models/account_filter_spec.rb
M app/models/account_filter.rb => app/models/account_filter.rb +1 -1
@@ 55,7 55,7 @@ class AccountFilter
    when 'by_domain'
      Account.where(domain: value.to_s.strip)
    when 'username'
      Account.matches_username(value.to_s.strip)
      Account.matches_username(value.to_s.strip.delete_prefix('@'))
    when 'display_name'
      Account.matches_display_name(value.to_s.strip)
    when 'email'

M spec/models/account_filter_spec.rb => spec/models/account_filter_spec.rb +19 -0
@@ 44,4 44,23 @@ describe AccountFilter do
      expect(filter.results).to match_array [remote_account_one]
    end
  end

  describe 'with username' do
    let!(:local_account) { Fabricate(:account, domain: nil, username: 'validUserName') }

    it 'works with @ at the beginning of the username' do
      filter = described_class.new(username: '@validUserName')
      expect(filter.results).to match_array [local_account]
    end

    it 'does not work with more than one @ at the beginning of the username' do
      filter = described_class.new(username: '@@validUserName')
      expect(filter.results).to_not match_array [local_account]
    end

    it 'does not work with @ outside the beginning of the username' do
      filter = described_class.new(username: 'validUserName@')
      expect(filter.results).to_not match_array [local_account]
    end
  end
end