about summary refs log tree commit diff
path: root/spec/controllers/settings/pictures_controller_spec.rb
diff options
context:
space:
mode:
authorClaire <claire.github-309c@sitedethib.com>2023-04-17 13:10:52 +0200
committerGitHub <noreply@github.com>2023-04-17 13:10:52 +0200
commitf30c5e7f15f967019245d2c78f3c2e89800eb838 (patch)
treec75cb4589dbc605065f9d32aef783de36631529a /spec/controllers/settings/pictures_controller_spec.rb
parentf28942cef991c9285236ea3ecace98c9b65c5242 (diff)
parent34f8e696e29683fd8b7113e7997e968869b76473 (diff)
Merge pull request #2181 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'spec/controllers/settings/pictures_controller_spec.rb')
-rw-r--r--spec/controllers/settings/pictures_controller_spec.rb30
1 files changed, 30 insertions, 0 deletions
diff --git a/spec/controllers/settings/pictures_controller_spec.rb b/spec/controllers/settings/pictures_controller_spec.rb
index 2368dc55d..705878f03 100644
--- a/spec/controllers/settings/pictures_controller_spec.rb
+++ b/spec/controllers/settings/pictures_controller_spec.rb
@@ -18,5 +18,35 @@ describe Settings::PicturesController do
         expect(response).to have_http_status(400)
       end
     end
+
+    context 'with valid picture id' do
+      context 'when account updates correctly' do
+        let(:service) { instance_double(UpdateAccountService, call: true) }
+
+        before do
+          allow(UpdateAccountService).to receive(:new).and_return(service)
+        end
+
+        it 'updates the account' do
+          delete :destroy, params: { id: 'avatar' }
+          expect(response).to redirect_to(settings_profile_path)
+          expect(response).to have_http_status(303)
+          expect(service).to have_received(:call).with(user.account, { 'avatar' => nil, 'avatar_remote_url' => '' })
+        end
+      end
+
+      context 'when account cannot update' do
+        let(:service) { instance_double(UpdateAccountService, call: false) }
+
+        before do
+          allow(UpdateAccountService).to receive(:new).and_return(service)
+        end
+
+        it 'redirects to profile' do
+          delete :destroy, params: { id: 'avatar' }
+          expect(response).to redirect_to(settings_profile_path)
+        end
+      end
+    end
   end
 end