mirror of
https://github.com/basecamp/once-campfire.git
synced 2026-03-15 18:55:56 +09:00
100 lines
2.4 KiB
Ruby
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
|