Files
fizzy/test/integration/bubble_messages.rb
T
Jason Zimdars 28a569c49b Tickets
2025-03-17 21:24:08 -05:00

51 lines
2.2 KiB
Ruby

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_predicate bubble.messages.last, :event_summary?
assert_equal 2, bubble.messages.last.event_summary.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.event_summary.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_maybe).id }
assert_equal 3, bubble.messages.count
assert_predicate bubble.messages.last, :event_summary?
assert_equal 2, bubble.messages.last.event_summary.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_maybe).id }
assert_equal 3, bubble.messages.count
assert_predicate bubble.messages.last, :event_summary?
assert_equal 3, bubble.messages.last.event_summary.events.count
assert_equal "unstaged", bubble.messages.last.messageable.events.last.action
end
end