From 429480bb775d53009e311b605a7ca73bd3acbc97 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Fri, 28 Apr 2017 09:11:21 -0400 Subject: Return missing page when tag does not exist (#2563) --- app/controllers/tags_controller.rb | 2 +- spec/controllers/tags_controller_spec.rb | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) 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 -- cgit