about summary refs log tree commit diff
path: root/spec/controllers/media_controller_spec.rb
diff options
context:
space:
mode:
authorClaire <claire.github-309c@sitedethib.com>2021-10-13 15:50:24 +0200
committerClaire <claire.github-309c@sitedethib.com>2021-10-13 15:50:24 +0200
commit1665b842856811c16b904c3b99be6b141a0e1c7b (patch)
tree6fba595782a93008ed3dd6f3ac9e19b7271df6b3 /spec/controllers/media_controller_spec.rb
parent022006577027ca040f4411489821f2e3311f0db6 (diff)
parent5159ba26e485daaeded2288c1b02bd1e516e1ca6 (diff)
Merge branch 'main' into glitch-soc/merge-upstream
Conflicts:
- `package.json`:
  Not really a conflict, just a glitch-soc-only dependency textually too close
  to an updated upstream one.
- `yarn.lock`:
  Not really a conflict, just a glitch-soc-only dependency textually too close
  to an updated upstream one.
Diffstat (limited to 'spec/controllers/media_controller_spec.rb')
-rw-r--r--spec/controllers/media_controller_spec.rb63
1 files changed, 45 insertions, 18 deletions
diff --git a/spec/controllers/media_controller_spec.rb b/spec/controllers/media_controller_spec.rb
index 6651e9d84..efd15b5b4 100644
--- a/spec/controllers/media_controller_spec.rb
+++ b/spec/controllers/media_controller_spec.rb
@@ -6,33 +6,60 @@ describe MediaController do
   render_views
 
   describe '#show' do
-    it 'redirects to the file url when attached to a status' do
-      status = Fabricate(:status)
-      media_attachment = Fabricate(:media_attachment, status: status, shortcode: 'foo')
-      get :show, params: { id: media_attachment.to_param }
+    it 'raises when shortcode cant be found' do
+      get :show, params: { id: 'missing' }
 
-      expect(response).to redirect_to(media_attachment.file.url(:original))
+      expect(response).to have_http_status(404)
     end
 
-    it 'responds with missing when there is not an attached status' do
-      media_attachment = Fabricate(:media_attachment, status: nil, shortcode: 'foo')
-      get :show, params: { id: media_attachment.to_param }
+    context 'when the media attachment has a shortcode' do
+      it 'redirects to the file url when attached to a status' do
+        status = Fabricate(:status)
+        media_attachment = Fabricate(:media_attachment, status: status, shortcode: 'OI6IgDzG-nYTqvDQ994')
+        get :show, params: { id: media_attachment.to_param }
 
-      expect(response).to have_http_status(404)
-    end
+        expect(response).to redirect_to(media_attachment.file.url(:original))
+      end
 
-    it 'raises when shortcode cant be found' do
-      get :show, params: { id: 'missing' }
+      it 'responds with missing when there is not an attached status' do
+        media_attachment = Fabricate(:media_attachment, status: nil, shortcode: 'OI6IgDzG-nYTqvDQ994')
+        get :show, params: { id: media_attachment.to_param }
 
-      expect(response).to have_http_status(404)
+        expect(response).to have_http_status(404)
+      end
+
+      it 'raises when not permitted to view' do
+        status = Fabricate(:status, visibility: :direct)
+        media_attachment = Fabricate(:media_attachment, status: status, shortcode: 'OI6IgDzG-nYTqvDQ994')
+        get :show, params: { id: media_attachment.to_param }
+
+        expect(response).to have_http_status(404)
+      end
     end
 
-    it 'raises when not permitted to view' do
-      status = Fabricate(:status, visibility: :direct)
-      media_attachment = Fabricate(:media_attachment, status: status, shortcode: 'foo')
-      get :show, params: { id: media_attachment.to_param }
+    context 'when the media attachment has no shortcode' do
+      it 'redirects to the file url when attached to a status' do
+        status = Fabricate(:status)
+        media_attachment = Fabricate(:media_attachment, status: status)
+        get :show, params: { id: media_attachment.to_param }
 
-      expect(response).to have_http_status(404)
+        expect(response).to redirect_to(media_attachment.file.url(:original))
+      end
+
+      it 'responds with missing when there is not an attached status' do
+        media_attachment = Fabricate(:media_attachment, status: nil)
+        get :show, params: { id: media_attachment.to_param }
+
+        expect(response).to have_http_status(404)
+      end
+
+      it 'raises when not permitted to view' do
+        status = Fabricate(:status, visibility: :direct)
+        media_attachment = Fabricate(:media_attachment, status: status)
+        get :show, params: { id: media_attachment.to_param }
+
+        expect(response).to have_http_status(404)
+      end
     end
   end
 end