FIX: If a category of a topic changed, watching/tracking didn't kick in
This commit is contained in:
parent
93b43c5237
commit
c4fa75918b
|
@ -474,6 +474,8 @@ class Topic < ActiveRecord::Base
|
|||
Category.where(id: new_category.id).update_all("topic_count = topic_count + 1")
|
||||
CategoryFeaturedTopic.feature_topics_for(old_category) unless @import_mode
|
||||
CategoryFeaturedTopic.feature_topics_for(new_category) unless @import_mode || old_category.id == new_category.id
|
||||
CategoryUser.auto_watch_new_topic(self)
|
||||
CategoryUser.auto_track_new_topic(self)
|
||||
end
|
||||
|
||||
true
|
||||
|
|
|
@ -49,7 +49,20 @@ describe CategoryUser do
|
|||
tu = TopicUser.get(tracked_post.topic, user)
|
||||
expect(tu.notification_level).to eq TopicUser.notification_levels[:tracking]
|
||||
expect(tu.notifications_reason_id).to eq TopicUser.notification_reasons[:auto_track_category]
|
||||
end
|
||||
|
||||
it "watches categories that have been changed" do
|
||||
watched_category = Fabricate(:category)
|
||||
user = Fabricate(:user)
|
||||
CategoryUser.create!(user: user, category: watched_category, notification_level: CategoryUser.notification_levels[:watching])
|
||||
|
||||
post = create_post
|
||||
TopicUser.get(post.topic, user).should be_blank
|
||||
|
||||
# Now, change the topic's category
|
||||
post.topic.change_category_to_id(watched_category.id)
|
||||
tu = TopicUser.get(post.topic, user)
|
||||
expect(tu.notification_level).to eq TopicUser.notification_levels[:watching]
|
||||
end
|
||||
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue