diff --git a/test/fixtures/workflow/stages.yml b/test/fixtures/workflow/stages.yml new file mode 100644 index 000000000..f11d39cb0 --- /dev/null +++ b/test/fixtures/workflow/stages.yml @@ -0,0 +1,11 @@ +qa_triage: + name: Triage + workflow: qa + +qa_in_progress: + name: In Progress + workflow: qa + +qa_ready_for_review: + name: Ready for Review + workflow: qa diff --git a/test/fixtures/workflows.yml b/test/fixtures/workflows.yml new file mode 100644 index 000000000..4ac3b7570 --- /dev/null +++ b/test/fixtures/workflows.yml @@ -0,0 +1,3 @@ +qa: + account: 37s + name: QA diff --git a/test/integration/.keep b/test/integration/.keep deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/integration/bubble_messages.rb b/test/integration/bubble_messages.rb new file mode 100644 index 000000000..9eaefc8af --- /dev/null +++ b/test/integration/bubble_messages.rb @@ -0,0 +1,49 @@ +require "test_helper" + +class BubbleMessagesTest < ActionDispatch::IntegrationTest + setup do + sign_in_as :kevin + end + + test "messages system" do + # Create a bubble + post bucket_bubbles_url(buckets(:writebook)) + bubble = Bubble.last + assert_equal 1, bubble.messages.count + assert_predicate bubble.messages.last, :event_summary? + assert_equal "created", bubble.messages.last.messageable.events.sole.action + + # Boost it + post bucket_bubble_boosts_url(buckets(:writebook), bubble, format: :turbo_stream) + assert_equal 1, bubble.messages.count + assert_equal 2, bubble.messages.last.messageable.events.count + assert_equal "boosted", bubble.messages.last.messageable.events.last.action + + # Comment on it + post bucket_bubble_comments_url(buckets(:writebook), bubble), params: { comment: { body: "Agreed." } } + assert_equal 2, bubble.messages.count + assert_predicate bubble.messages.last, :comment? + assert_equal "Agreed.", bubble.messages.last.messageable.body + + # Assign it + post bucket_bubble_assignments_url(buckets(:writebook), bubble), params: { assignee_id: users(:kevin).id } + assert_equal 3, bubble.messages.count + assert_predicate bubble.messages.last, :event_summary? + assert_equal 1, bubble.messages.last.messageable.events.count + assert_equal "assigned", bubble.messages.last.messageable.events.last.action + + # Stage it + post bucket_bubble_stagings_url(buckets(:writebook), bubble), params: { stage_id: workflow_stages(:qa_triage).id } + assert_equal 3, bubble.messages.count + assert_predicate bubble.messages.last, :event_summary? + assert_equal 2, bubble.messages.last.messageable.events.count + assert_equal "staged", bubble.messages.last.messageable.events.last.action + + # Unstage it + post bucket_bubble_stagings_url(buckets(:writebook), bubble), params: { stage_id: workflow_stages(:qa_triage).id } + assert_equal 3, bubble.messages.count + assert_predicate bubble.messages.last, :event_summary? + assert_equal 3, bubble.messages.last.messageable.events.count + assert_equal "unstaged", bubble.messages.last.messageable.events.last.action + end +end