about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatt Jankowski <mjankowski@thoughtbot.com>2017-04-28 09:11:21 -0400
committerEugen Rochko <eugen@zeonfederated.com>2017-04-28 15:11:21 +0200
commit429480bb775d53009e311b605a7ca73bd3acbc97 (patch)
treed44a670c2b5be92f8aa4eb6efdd9c20b44a1b9ee
parent61067dc2e6105c8d4fcb8c3e864a60490c384354 (diff)
Return missing page when tag does not exist (#2563)
-rw-r--r--app/controllers/tags_controller.rb2
-rw-r--r--spec/controllers/tags_controller_spec.rb6
2 files changed, 7 insertions, 1 deletions
diff --git a/app/controllers/tags_controller.rb b/app/controllers/tags_controller.rb
index d99aea2eb..53149edf0 100644
--- a/app/controllers/tags_controller.rb
+++ b/app/controllers/tags_controller.rb
@@ -4,7 +4,7 @@ class TagsController < ApplicationController
   layout 'public'
 
   def show
-    @tag      = Tag.find_by(name: params[:id].downcase)
+    @tag      = Tag.find_by!(name: params[:id].downcase)
     @statuses = @tag.nil? ? [] : Status.as_tag_timeline(@tag, current_account, params[:local]).paginate_by_max_id(20, params[:max_id])
     @statuses = cache_collection(@statuses, Status)
   end
diff --git a/spec/controllers/tags_controller_spec.rb b/spec/controllers/tags_controller_spec.rb
index 80007ecda..f1119ebce 100644
--- a/spec/controllers/tags_controller_spec.rb
+++ b/spec/controllers/tags_controller_spec.rb
@@ -12,5 +12,11 @@ RSpec.describe TagsController, type: :controller do
       get :show, params: { id: 'test' }
       expect(response).to have_http_status(:success)
     end
+
+    it 'returns http missing for non-existent tag' do
+      get :show, params: { id: 'none' }
+
+      expect(response).to have_http_status(:missing)
+    end
   end
 end