diff options
author | Claire <claire.github-309c@sitedethib.com> | 2023-04-16 17:52:44 +0200 |
---|---|---|
committer | Claire <claire.github-309c@sitedethib.com> | 2023-04-16 17:52:44 +0200 |
commit | f9a9f9344bd6e1dbe653feaf316abdf51633f587 (patch) | |
tree | ad1fef974e50279b9ffa54b504b9107f3f6f66c0 /spec/controllers/settings/aliases_controller_spec.rb | |
parent | f28942cef991c9285236ea3ecace98c9b65c5242 (diff) | |
parent | af49d93fd6168c089530240a9ab4eccb975b8c42 (diff) |
Merge branch 'main' into glitch-soc/merge-upstream
Diffstat (limited to 'spec/controllers/settings/aliases_controller_spec.rb')
-rw-r--r-- | spec/controllers/settings/aliases_controller_spec.rb | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/spec/controllers/settings/aliases_controller_spec.rb b/spec/controllers/settings/aliases_controller_spec.rb index 805f65988..ef8724faf 100644 --- a/spec/controllers/settings/aliases_controller_spec.rb +++ b/spec/controllers/settings/aliases_controller_spec.rb @@ -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 |