about summary refs log tree commit diff
path: root/spec/controllers/settings/pictures_controller_spec.rb
diff options
context:
space:
mode:
authorStarfall <us@starfall.systems>2023-04-22 20:32:00 -0500
committerStarfall <us@starfall.systems>2023-04-22 20:32:00 -0500
commit609ee7b2979252464e63acbfd2eff3e0e3786f3e (patch)
tree6ade160c4354b803ed36ae5dae28a0ae38bcf032 /spec/controllers/settings/pictures_controller_spec.rb
parent4fe1689de43f4404eb9530fcfbcbfb26d6c1c13a (diff)
parent5b58ebb04fe197cc7aa0cfc05a4d1b2df8da0050 (diff)
Merge remote-tracking branch 'glitch/main'
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