Files
once-campfire/test/system/boosting_messages_test.rb
Kevin McConnell df76a227dc Hello world
First open source release of Campfire 🎉
2025-08-21 09:31:59 +01:00

100 lines
2.4 KiB
Ruby

require "application_system_test_case"
class BoostingMessagesTest < ApplicationSystemTestCase
setup do
sign_in "kevin@37signals.com"
join_room rooms(:designers)
end
test "boosting a message" do
within_message messages(:third) do
reveal_message_actions
fill_in_boost_input "Good morning"
click_on "Submit"
assert_boost_text "Good morning"
end
end
test "deleting a boost" do
using_session("David") do
sign_in "david@37signals.com"
join_room rooms(:designers)
within "#" + dom_id(boosts(:first)) do
find("span", text: "Hello").click
assert_selector "button", text: "Delete this boost", wait: 5
click_on "Delete this boost"
end
assert_no_text "Hello"
end
end
test "message update preserves the input state" do
within_message messages(:third) do
assert_message_text "Third time's a charm."
reveal_message_actions
fill_in_boost_input "Hey!"
end
using_session("JZ") do
sign_in "jz@37signals.com"
join_room rooms(:designers)
within_message messages(:third) do
reveal_message_actions
find(".message__edit-btn").click
fill_in_rich_text_area "message_body", with: "Redacted!"
click_on "Save changes"
end
end
within_message messages(:third) do
assert_message_text "Redacted!"
assert_boost_input_value "Hey!"
end
end
test "boost by another user preserves the input state" do
within_message messages(:third) do
assert_message_text "Third time's a charm."
reveal_message_actions
fill_in_boost_input "Hey!"
end
using_session("David") do
sign_in "david@37signals.com"
join_room rooms(:designers)
within_message messages(:third) do
reveal_message_actions
fill_in_boost_input "Morning"
click_on "Submit"
assert_boost_text "Morning"
end
end
perform_enqueued_jobs
within_message messages(:third) do
assert_boost_text "Morning"
assert_boost_input_value "Hey!"
end
end
private
def fill_in_boost_input(text)
click_on "New boost"
fill_in "boost[content]", with: text
end
def assert_boost_input_value(text)
assert page.has_field? "boost[content]", with: text
end
def assert_boost_text(text, **options)
assert_selector ".boost", text: text, **options
end
end