From da50217b8899f36137c5405423a41b8520dfdfb2 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 7 Feb 2024 05:59:32 -0500 Subject: [PATCH] Combine repeated requests in `admin/accounts` controller spec (#29119) --- .../admin/accounts_controller_spec.rb | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/spec/controllers/admin/accounts_controller_spec.rb b/spec/controllers/admin/accounts_controller_spec.rb index ef3053b6b3..b90bb414b0 100644 --- a/spec/controllers/admin/accounts_controller_spec.rb +++ b/spec/controllers/admin/accounts_controller_spec.rb @@ -9,18 +9,8 @@ RSpec.describe Admin::AccountsController do describe 'GET #index' do let(:current_user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } - - around do |example| - default_per_page = Account.default_per_page - Account.paginates_per 1 - example.run - Account.paginates_per default_per_page - end - - it 'filters with parameters' do - account_filter = instance_double(AccountFilter, results: Account.all) - allow(AccountFilter).to receive(:new).and_return(account_filter) - params = { + let(:params) do + { origin: 'local', by_domain: 'domain', status: 'active', @@ -29,25 +19,35 @@ RSpec.describe Admin::AccountsController do email: 'local-part@domain', ip: '0.0.0.42', } - - get :index, params: params - - expect(AccountFilter).to have_received(:new).with(hash_including(params)) end - it 'paginates accounts' do + around do |example| + default_per_page = Account.default_per_page + Account.paginates_per 1 + example.run + Account.paginates_per default_per_page + end + + before do Fabricate(:account) - get :index, params: { page: 2 } - - accounts = assigns(:accounts) - expect(accounts.count).to eq 1 - expect(accounts.klass).to be Account + account_filter = instance_double(AccountFilter, results: Account.all) + allow(AccountFilter).to receive(:new).and_return(account_filter) end - it 'returns http success' do - get :index - expect(response).to have_http_status(200) + it 'returns success and paginates and filters with parameters' do + get :index, params: params.merge(page: 2) + + expect(response) + .to have_http_status(200) + expect(assigns(:accounts)) + .to have_attributes( + count: eq(1), + klass: be(Account) + ) + expect(AccountFilter) + .to have_received(:new) + .with(hash_including(params)) end end