From 768c80c2a44be7d4be35c3d0c8ffa805a605a0f0 Mon Sep 17 00:00:00 2001 From: Jarek Radosz Date: Tue, 8 Mar 2022 17:39:52 +0100 Subject: [PATCH] DEV: Make `find_post_using` raise only `Discourse::NotFound` (#16133) --- app/controllers/posts_controller.rb | 2 +- spec/requests/posts_controller_spec.rb | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb index e31b08fbe9..7954e3b86a 100644 --- a/app/controllers/posts_controller.rb +++ b/app/controllers/posts_controller.rb @@ -869,7 +869,7 @@ class PostsController < ApplicationController post = finder.with_deleted.first raise Discourse::NotFound unless post - post.topic = Topic.with_deleted.find(post.topic_id) + post.topic = Topic.with_deleted.find_by(id: post.topic_id) if !post.topic || ( diff --git a/spec/requests/posts_controller_spec.rb b/spec/requests/posts_controller_spec.rb index f0cc6654bb..96a6ceb78a 100644 --- a/spec/requests/posts_controller_spec.rb +++ b/spec/requests/posts_controller_spec.rb @@ -16,6 +16,12 @@ shared_examples 'finding and showing post' do expect(response.status).to eq(200) end + it "returns 404 when post's topic is deleted" do + post.topic.destroy! + get url + expect(response.status).to eq(404) + end + context "deleted post" do before do post.trash!(user)