From 8e35a3de9c5a802e2e9985a51dd436410f38b1dd Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 22 Apr 2025 13:03:31 +0200 Subject: [PATCH] Test workflowing updates card stages on change --- test/fixtures/cards.yml | 4 ++++ test/models/collection/workflowing_test.rb | 8 ++++++++ test/models/filter_test.rb | 6 +++--- 3 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 test/models/collection/workflowing_test.rb diff --git a/test/fixtures/cards.yml b/test/fixtures/cards.yml index c8dc163a3..2ca8fbf8f 100644 --- a/test/fixtures/cards.yml +++ b/test/fixtures/cards.yml @@ -1,6 +1,7 @@ logo: collection: writebook creator: david + stage: qa_triage title: The logo isn't big enough due_on: <%= 3.days.from_now %> created_at: <%= 1.week.ago %> @@ -10,6 +11,7 @@ logo: layout: collection: writebook creator: david + stage: qa_triage title: Layout is broken created_at: <%= 1.week.ago %> status: published @@ -18,6 +20,7 @@ layout: text: collection: writebook creator: kevin + stage: qa_triage title: The text is too small created_at: <%= 1.week.ago %> status: published @@ -27,6 +30,7 @@ text: shipping: collection: writebook creator: kevin + stage: qa_triage title: We need to ship the app created_at: <%= 1.week.ago %> status: published diff --git a/test/models/collection/workflowing_test.rb b/test/models/collection/workflowing_test.rb new file mode 100644 index 000000000..ec12bbc9d --- /dev/null +++ b/test/models/collection/workflowing_test.rb @@ -0,0 +1,8 @@ +require "test_helper" + +class Collection::WorkflowingTest < ActiveSupport::TestCase + test "change all card stages when changing workflow" do + collections(:writebook).update! workflow: workflows(:on_call) + assert_equal [ collections(:writebook).initial_workflow_stage ], collections(:writebook).cards.reload.collect(&:stage).uniq + end +end diff --git a/test/models/filter_test.rb b/test/models/filter_test.rb index 9b591bd76..cff0341d0 100644 --- a/test/models/filter_test.rb +++ b/test/models/filter_test.rb @@ -5,11 +5,11 @@ class FilterTest < ActiveSupport::TestCase Current.set session: sessions(:david) do @new_collection = Collection.create! name: "Inaccessible Collection" @new_card = @new_collection.cards.create! - @new_card.update!(stage: workflow_stages(:qa_triage)) + @new_card.update!(stage: workflow_stages(:qa_on_hold)) cards(:layout).capture Comment.new(body: "I hate haggis") cards(:logo).capture Comment.new(body: "I love haggis") - cards(:logo).update(stage: workflow_stages(:qa_triage)) + cards(:logo).update(stage: workflow_stages(:qa_on_hold)) end assert_not_includes users(:kevin).filters.new.cards, @new_card @@ -17,7 +17,7 @@ class FilterTest < ActiveSupport::TestCase filter = users(:david).filters.new creator_ids: [ users(:david).id ], tag_ids: [ tags(:mobile).id ] assert_equal [ cards(:layout) ], filter.cards - filter = users(:david).filters.new stage_ids: [ workflow_stages(:qa_triage).id ] + filter = users(:david).filters.new stage_ids: [ workflow_stages(:qa_on_hold).id ] assert_equal [ cards(:logo), @new_card ], filter.cards filter = users(:david).filters.new assignment_status: "unassigned", collection_ids: [ @new_collection.id ]