require 'rails_helper' describe ReportFilter do describe 'with empty params' do it 'defaults to unresolved reports list' do filter = ReportFilter.new({}) expect(filter.results).to eq Report.unresolved end end describe 'with invalid params' do it 'raises with key error' do filter = ReportFilter.new(wrong: true) expect { filter.results }.to raise_error(/wrong/) end end describe 'with valid params' do it 'combines filters on Report' do filter = ReportFilter.new(account_id: '123', resolved: true, target_account_id: '456') allow(Report).to receive(:where).and_return(Report.none) allow(Report).to receive(:resolved).and_return(Report.none) filter.results expect(Report).to have_received(:where).with(account_id: '123') expect(Report).to have_received(:where).with(target_account_id: '456') expect(Report).to have_received(:resolved) end end end