0
0
Fork 0

Spec coverage on Settings/ controllers specs (#24221)

This commit is contained in:
Matt Jankowski 2023-04-11 11:35:39 +02:00 committed by GitHub
parent a2a66300d9
commit 36eeb70d53
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 205 additions and 20 deletions

View file

@ -18,4 +18,50 @@ describe Settings::AliasesController do
expect(response).to have_http_status(200)
end
end
describe 'POST #create' do
context 'with valid alias' do
before { stub_resolver }
it 'creates an alias for the user' do
expect do
post :create, params: { account_alias: { acct: 'new@example.com' } }
end.to change(AccountAlias, :count).by(1)
expect(response).to redirect_to(settings_aliases_path)
end
end
context 'with invalid alias' do
it 'does not create an alias for the user' do
expect do
post :create, params: { account_alias: { acct: 'format-wrong' } }
end.to_not change(AccountAlias, :count)
expect(response).to have_http_status(200)
end
end
end
describe 'DELETE #destroy' do
let(:account_alias) do
AccountAlias.new(account: user.account, acct: 'new@example.com').tap do |account_alias|
account_alias.save(validate: false)
end
end
it 'removes an alias' do
delete :destroy, params: { id: account_alias.id }
expect(response).to redirect_to(settings_aliases_path)
expect { account_alias.reload }.to raise_error(ActiveRecord::RecordNotFound)
end
end
private
def stub_resolver
resolver = instance_double(ResolveAccountService, call: Fabricate(:account))
allow(ResolveAccountService).to receive(:new).and_return(resolver)
end
end