Combine repeated requests in `admin/accounts` controller spec (#29119)

pull/2647/head
Matt Jankowski 2024-02-07 05:59:32 -05:00 committed by GitHub
parent 492e25da06
commit da50217b88
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 25 additions and 25 deletions

View File

@ -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