about summary refs log tree commit diff
path: root/spec/models/account_filter_spec.rb
diff options
context:
space:
mode:
authorMatt Jankowski <mjankowski@thoughtbot.com>2017-05-22 15:50:58 -0400
committerGitHub <noreply@github.com>2017-05-22 15:50:58 -0400
commite1b42e9aa01b0c6adab05afb9c5ee0cf9fbb41a9 (patch)
tree82d1b2b4c6fa8a57829b5f9885251d3ae14766b6 /spec/models/account_filter_spec.rb
parentb51398d0ddf4c4b366e104c67366f6a80b69d61b (diff)
Add coverage for ReportFilter and AccountFilter (#3236)
Diffstat (limited to 'spec/models/account_filter_spec.rb')
-rw-r--r--spec/models/account_filter_spec.rb35
1 files changed, 33 insertions, 2 deletions
diff --git a/spec/models/account_filter_spec.rb b/spec/models/account_filter_spec.rb
index 52b4c4893..8441939c5 100644
--- a/spec/models/account_filter_spec.rb
+++ b/spec/models/account_filter_spec.rb
@@ -17,19 +17,50 @@ describe AccountFilter do
     end
   end
 
+  describe 'when an IP address is provided' do
+    it 'filters with IP when valid' do
+      filter = described_class.new(ip: '127.0.0.1')
+      allow(User).to receive(:with_recent_ip_address).and_return(User.none)
+
+      filter.results
+      expect(User).to have_received(:with_recent_ip_address).with('127.0.0.1')
+    end
+
+    it 'skips IP when invalid' do
+      filter = described_class.new(ip: '345.678.901.234')
+      expect(User).not_to receive(:with_recent_ip_address)
+
+      filter.results
+    end
+  end
+
   describe 'with valid params' do
     it 'combines filters on Account' do
-      filter = described_class.new(by_domain: 'test.com', silenced: true)
+      filter = described_class.new(
+        by_domain: 'test.com',
+        silenced: true,
+        username: 'test',
+        display_name: 'name',
+        email: 'user@example.com',
+      )
 
       allow(Account).to receive(:where).and_return(Account.none)
       allow(Account).to receive(:silenced).and_return(Account.none)
+      allow(Account).to receive(:matches_display_name).and_return(Account.none)
+      allow(Account).to receive(:matches_username).and_return(Account.none)
+      allow(User).to receive(:matches_email).and_return(User.none)
+
       filter.results
+
       expect(Account).to have_received(:where).with(domain: 'test.com')
       expect(Account).to have_received(:silenced)
+      expect(Account).to have_received(:matches_username).with('test')
+      expect(Account).to have_received(:matches_display_name).with('name')
+      expect(User).to have_received(:matches_email).with('user@example.com')
     end
 
     describe 'that call account methods' do
-      %i(local remote silenced recent).each do |option|
+      %i(local remote silenced recent suspended).each do |option|
         it "delegates the #{option} option" do
           allow(Account).to receive(option).and_return(Account.none)
           filter = described_class.new({ option => true })