d376d7aa0c
Specifically, reconsidering removes the existing activity spike (if one exists). This happens whether the card is reconsidered by entropy or manually by a user. ref: https://fizzy.37signals.com/5986089/collections/2/cards/916
67 lines
2.0 KiB
Ruby
67 lines
2.0 KiB
Ruby
require "test_helper"
|
|
|
|
class Card::StallableTest < ActiveSupport::TestCase
|
|
include CardActivityTestHelper
|
|
|
|
setup do
|
|
Current.session = sessions(:david)
|
|
end
|
|
|
|
test "a card without activity spike is not stalled" do
|
|
assert_not cards(:logo).stalled?
|
|
assert_not_includes Card.stalled, cards(:logo)
|
|
end
|
|
|
|
test "a card with a recent activity spike is not stalled" do
|
|
cards(:logo).create_activity_spike!
|
|
|
|
assert_not cards(:logo).stalled?
|
|
assert_not_includes Card.stalled, cards(:logo)
|
|
end
|
|
|
|
test "a card with an old activity spike is stalled" do
|
|
cards(:logo).create_activity_spike!(updated_at: 3.months.ago)
|
|
|
|
assert cards(:logo).stalled?
|
|
assert_includes Card.stalled, cards(:logo)
|
|
end
|
|
|
|
test "a card with an old activity spike is not stalled after falling back to considering" do
|
|
card = cards(:logo)
|
|
card.engage
|
|
card.update!(last_active_at: 1.day.ago - card.collection.entropy_configuration.auto_reconsider_period)
|
|
card.create_activity_spike!(updated_at: 3.months.ago)
|
|
|
|
assert card.stalled?
|
|
assert_includes Card.stalled, card
|
|
|
|
assert_difference -> { Card.considering.count }, +1 do
|
|
Card.auto_reconsider_all_stagnated
|
|
end
|
|
|
|
assert_not card.reload.stalled?
|
|
end
|
|
|
|
# More fine-grained testing in Card::ActivitySpike::Detector
|
|
test "detect activity spikes" do
|
|
assert_not cards(:logo).stalled?
|
|
multiple_people_comment_on(cards(:logo))
|
|
|
|
travel_to 1.month.from_now
|
|
assert cards(:logo).reload.stalled?
|
|
assert_includes Card.stalled, cards(:logo)
|
|
end
|
|
|
|
test "don't detect activity spikes when updating attributes other than last_active_at" do
|
|
assert_no_enqueued_jobs only: Card::ActivitySpike::DetectionJob do
|
|
cards(:logo).update! created_at: 1.day.ago
|
|
end
|
|
end
|
|
|
|
test "don't detect activity spikes when creating new cards" do
|
|
assert_no_enqueued_jobs only: Card::ActivitySpike::DetectionJob do
|
|
collections(:writebook).cards.create! title: "A new card", creator: users(:kevin)
|
|
end
|
|
end
|
|
end
|