about summary refs log tree commit diff
diff options
context:
space:
mode:
authorHeitor de Melo Cardozo <heitor711n@gmail.com>2023-04-17 09:16:36 -0300
committerGitHub <noreply@github.com>2023-04-17 14:16:36 +0200
commitbc75e62ca6e16d3dad43fd35ccca335de547cfb3 (patch)
treee156d5585a38d753fa793fe5afb63172b8090ec3
parentab740f464a8e5aa6b5f78c0ddab3c8e18698d810 (diff)
Change moderation search an account using the username with @ (#24242)
-rw-r--r--app/models/account_filter.rb2
-rw-r--r--spec/models/account_filter_spec.rb19
2 files changed, 20 insertions, 1 deletions
diff --git a/app/models/account_filter.rb b/app/models/account_filter.rb
index 1666ea883..55d34e85c 100644
--- a/app/models/account_filter.rb
+++ b/app/models/account_filter.rb
@@ -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'
diff --git a/spec/models/account_filter_spec.rb b/spec/models/account_filter_spec.rb
index 3032260fe..cb00e7609 100644
--- a/spec/models/account_filter_spec.rb
+++ b/spec/models/account_filter_spec.rb
@@ -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