diff --git a/app/models/card/triageable.rb b/app/models/card/triageable.rb index e806ea554..1f804b0df 100644 --- a/app/models/card/triageable.rb +++ b/app/models/card/triageable.rb @@ -21,7 +21,6 @@ module Card::Triageable transaction do resume - activity_spike&.destroy update! column: column end end @@ -29,7 +28,7 @@ module Card::Triageable def send_back_to_triage transaction do resume - update!(column: nil) + update! column: nil end end end diff --git a/test/fixtures/cards.yml b/test/fixtures/cards.yml index e1ce94253..2172142f1 100644 --- a/test/fixtures/cards.yml +++ b/test/fixtures/cards.yml @@ -34,3 +34,11 @@ shipping: created_at: <%= 1.week.ago %> status: published last_active_at: <%= 1.week.ago %> + +buy_domain: + collection: writebook + creator: david + title: Buy domain + created_at: <%= 2.days.ago %> + status: published + last_active_at: <%= 2.days.ago %> diff --git a/test/models/card/triageable_test.rb b/test/models/card/triageable_test.rb new file mode 100644 index 000000000..e096e1d0c --- /dev/null +++ b/test/models/card/triageable_test.rb @@ -0,0 +1,64 @@ +require "test_helper" + +class Card::TriageableTest < ActiveSupport::TestCase + setup do + Current.session = sessions(:david) + end + + test "active cards with columns are triaged" do + assert cards(:logo).triaged? + assert cards(:text).triaged? + assert_not cards(:buy_domain).triaged? + end + + test "active cards without columns are awaiting triage" do + assert cards(:buy_domain).awaiting_triage? + assert_not cards(:logo).awaiting_triage? + assert_not cards(:text).awaiting_triage? + end + + test "triage a card" do + card = cards(:buy_domain) + column = columns(:writebook_in_progress) + + assert_nil card.column + assert card.awaiting_triage? + + card.triage_into(column) + + assert_equal column, card.reload.column + assert card.triaged? + end + + test "cannot triage into a column from a different collection" do + card = cards(:buy_domain) + other_collection_column = Column.create!( + name: "Other", + color: "#000000", + collection: collections(:private) + ) + + assert_raises(RuntimeError, "The column must belong to the card collection") do + card.triage_into(other_collection_column) + end + end + + test "send a card back to triage" do + card = cards(:logo) + assert card.triaged? + + card.send_back_to_triage + + assert card.reload.awaiting_triage? + end + + test "scopes" do + assert_includes Card.awaiting_triage, cards(:buy_domain) + assert_not_includes Card.awaiting_triage, cards(:logo) + assert_not_includes Card.awaiting_triage, cards(:text) + + assert_includes Card.triaged, cards(:logo) + assert_includes Card.triaged, cards(:text) + assert_not_includes Card.triaged, cards(:buy_domain) + end +end