diff options
author | Claire <claire.github-309c@sitedethib.com> | 2023-04-17 13:10:52 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-17 13:10:52 +0200 |
commit | f30c5e7f15f967019245d2c78f3c2e89800eb838 (patch) | |
tree | c75cb4589dbc605065f9d32aef783de36631529a /spec/controllers/settings/aliases_controller_spec.rb | |
parent | f28942cef991c9285236ea3ecace98c9b65c5242 (diff) | |
parent | 34f8e696e29683fd8b7113e7997e968869b76473 (diff) |
Merge pull request #2181 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes
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 |