mirror of
https://github.com/discourse/discourse.git
synced 2024-11-25 08:43:25 +08:00
FIX: Allow triggering Discobot when bookmarking the entire topic (#27255)
This commit is contained in:
parent
5aefda1dee
commit
28fe3c339e
|
@ -170,11 +170,15 @@ after_initialize do
|
|||
|
||||
self.add_model_callback(Bookmark, :after_commit, on: :create) do
|
||||
if self.user.enqueue_narrative_bot_job?
|
||||
if self.bookmarkable_type == "Post"
|
||||
if self.bookmarkable_type == "Post" || self.bookmarkable_type == "Topic"
|
||||
is_topic = self.bookmarkable_type == "Topic"
|
||||
first_post_id =
|
||||
Post.where(topic_id: self.bookmarkable_id, post_number: 1).pick(:id) if is_topic
|
||||
|
||||
Jobs.enqueue(
|
||||
:bot_input,
|
||||
user_id: self.user_id,
|
||||
post_id: self.bookmarkable_id,
|
||||
post_id: is_topic ? first_post_id : self.bookmarkable_id,
|
||||
input: "bookmark",
|
||||
)
|
||||
end
|
||||
|
|
|
@ -287,6 +287,22 @@ RSpec.describe DiscourseNarrativeBot::NewUserNarrative do
|
|||
)
|
||||
end
|
||||
|
||||
it "triggers the response when bookmarking the topic" do
|
||||
Jobs.run_later!
|
||||
topic = Fabricate(:topic)
|
||||
post = Fabricate(:post, topic: topic)
|
||||
bookmark = Fabricate(:bookmark, bookmarkable: topic)
|
||||
|
||||
expect_job_enqueued(
|
||||
job: :bot_input,
|
||||
args: {
|
||||
user_id: bookmark.user_id,
|
||||
post_id: post.id,
|
||||
input: "bookmark",
|
||||
},
|
||||
)
|
||||
end
|
||||
|
||||
context "when the bookmark is created" do
|
||||
let(:profile_page_url) { "#{Discourse.base_url_no_prefix}/prefix/u/#{user.username}" }
|
||||
let(:new_post) { Post.last }
|
||||
|
|
Loading…
Reference in New Issue
Block a user