Pre-calculate comment counts and activity scores

This commit is contained in:
Jose Farias
2024-11-15 18:17:42 -06:00
parent bf704d6d0f
commit b4e8adca47
13 changed files with 72 additions and 25 deletions
+6 -4
View File
@@ -14,8 +14,10 @@ class BubbleTest < ActiveSupport::TestCase
end
test "boosting" do
assert_difference %w[ bubbles(:logo).boost_count Event.count ], +1 do
bubbles(:logo).boost!
assert_changes "bubbles(:logo).activity_score", +1 do
assert_difference %w[ bubbles(:logo).boost_count Event.count ], +1 do
bubbles(:logo).boost!
end
end
end
@@ -33,8 +35,8 @@ class BubbleTest < ActiveSupport::TestCase
end
test "ordering by activity" do
bubbles(:layout).update! boost_count: 1_000
assert_equal bubbles(:layout, :logo, :shipping, :text), Bubble.ordered_by_activity
bubbles(:layout).tap { |b| b.update!(boost_count: 1_000) }.rescore
assert_equal bubbles(:layout, :logo, :shipping, :text).pluck(:title), Bubble.ordered_by_activity.pluck(:title)
end
test "ordering by comments" do
+14
View File
@@ -10,4 +10,18 @@ class CommentTest < ActiveSupport::TestCase
assert_includes Comment.search("something rustic"), message.comment
end
test "updating bubble counter" do
assert_changes "bubbles(:logo).activity_score" do
assert_difference "bubbles(:logo).comments_count", 1 do
bubbles(:logo).capture Comment.new(body: "I'd prefer something more rustic")
end
end
assert_changes "bubbles(:logo).activity_score" do
assert_difference "bubbles(:logo).comments_count", -1 do
bubbles(:logo).messages.comments.last.destroy
end
end
end
end