FIX: generate topic excerpt when moving posts to new topic.

FIX: generate topic excerpt when moving posts to new topic.

Currently, it’s not generating the excerpt by default. We have to trigger the “Rebuild HTML” action to do it.

diff --git a/app/models/post_mover.rb b/app/models/post_mover.rb
index 0e36834..184fd3b 100644
--- a/app/models/post_mover.rb
+++ b/app/models/post_mover.rb
@@ -49,6 +49,7 @@ class PostMover
       DiscourseTagging.tag_topic_by_names(new_topic, Guardian.new(user), tags)
       move_posts_to new_topic
       watch_new_topic
+      update_topic_excerpt new_topic
       new_topic
     end
     enqueue_jobs(topic)
@@ -57,6 +58,10 @@ class PostMover
 
   private
 
+  def update_topic_excerpt(topic)
+    topic.update_excerpt(topic.first_post.excerpt_for_topic)
+  end
+
   def move_posts_to(topic)
     Guardian.new(user).ensure_can_see! topic
     @destination_topic = topic
diff --git a/spec/requests/topics_controller_spec.rb b/spec/requests/topics_controller_spec.rb
index 6b93acb..311a7bf 100644
--- a/spec/requests/topics_controller_spec.rb
+++ b/spec/requests/topics_controller_spec.rb
@@ -118,7 +118,10 @@ RSpec.describe TopicsController do
           result = response.parsed_body
 
           expect(result['success']).to eq(true)
-          expect(result['url']).to eq(Topic.last.relative_url)
+
+          new_topic = Topic.last
+          expect(result['url']).to eq(new_topic.relative_url)
+          expect(new_topic.excerpt).to eq(p2.excerpt_for_topic)
           expect(Tag.all.pluck(:name)).to contain_exactly("tag1", "tag2")
         end
 

GitHub sha: 310952fd

1 Like

This commit has been mentioned on Discourse Meta. There might be relevant details there: