From 1f4be8ed67087c743201a02bbfe9b39f9ced0d8e Mon Sep 17 00:00:00 2001 From: Jorge Manrubia Date: Fri, 4 Apr 2025 12:04:13 +0200 Subject: [PATCH] Only pop bubbles in a considering state --- app/models/bubble/poppable.rb | 2 +- test/models/bubble/engageable_test.rb | 5 ++--- test/models/bubble/poppable_test.rb | 5 ++++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/models/bubble/poppable.rb b/app/models/bubble/poppable.rb index b8e1ef855..aad36a899 100644 --- a/app/models/bubble/poppable.rb +++ b/app/models/bubble/poppable.rb @@ -9,7 +9,7 @@ module Bubble::Poppable scope :popped, -> { joins(:pop) } scope :active, -> { where.missing(:pop) } - scope :due_to_be_popped, -> { active.where(last_active_at: ..AUTO_POP_AFTER.ago) } + scope :due_to_be_popped, -> { considering.where(last_active_at: ..AUTO_POP_AFTER.ago) } end class_methods do diff --git a/test/models/bubble/engageable_test.rb b/test/models/bubble/engageable_test.rb index 57a605149..bdc75e4e3 100644 --- a/test/models/bubble/engageable_test.rb +++ b/test/models/bubble/engageable_test.rb @@ -48,11 +48,10 @@ class Bubble::EngageableTest < ActiveSupport::TestCase end test "auto_reconsider_all_stagnated" do - bubbles(:logo).update!(last_active_at: 1.day.ago - Bubble::Engageable::STAGNATED_AFTER) - bubbles(:logo).engage + bubbles(:logo, :shipping).each(&:engage) + bubbles(:logo).update!(last_active_at: 1.day.ago - Bubble::Engageable::STAGNATED_AFTER) bubbles(:shipping).update!(last_active_at: 1.day.from_now - Bubble::Engageable::STAGNATED_AFTER) - bubbles(:shipping).engage assert_difference -> { Bubble.considering.count }, +1 do Bubble.auto_reconsider_all_stagnated diff --git a/test/models/bubble/poppable_test.rb b/test/models/bubble/poppable_test.rb index 168e9c675..2eea8c30d 100644 --- a/test/models/bubble/poppable_test.rb +++ b/test/models/bubble/poppable_test.rb @@ -16,6 +16,8 @@ class Bubble::PoppableTest < ActiveSupport::TestCase end test "auto_pop_all_due" do + bubbles(:logo, :shipping).each(&:reconsider) + bubbles(:logo).update!(last_active_at: 1.day.ago - Bubble::Poppable::AUTO_POP_AFTER) bubbles(:shipping).update!(last_active_at: 1.day.from_now - Bubble::Poppable::AUTO_POP_AFTER) @@ -23,6 +25,7 @@ class Bubble::PoppableTest < ActiveSupport::TestCase Bubble.auto_pop_all_due end - assert bubbles(:logo).popped? + assert bubbles(:logo).reload.popped? + assert_not bubbles(:shipping).reload.popped? end end