mirror of
https://github.com/jcwimer/wrestlingApp
synced 2026-04-11 16:01:56 +00:00
52 lines
1.7 KiB
Ruby
52 lines
1.7 KiB
Ruby
require "test_helper"
|
|
require "json"
|
|
|
|
class MatScoreboardBroadcastTest < ActiveSupport::TestCase
|
|
test "set_selected_scoreboard_match broadcasts updated payload" do
|
|
mat = mats(:one)
|
|
queue1_match = matches(:tournament_1_bout_1000)
|
|
selected_match = matches(:tournament_1_bout_1001)
|
|
mat.update!(queue1: queue1_match.id, queue2: selected_match.id, queue3: nil, queue4: nil)
|
|
|
|
stream = MatScoreboardChannel.broadcasting_for(mat)
|
|
clear_streams(stream)
|
|
|
|
mat.set_selected_scoreboard_match!(selected_match)
|
|
|
|
payload = JSON.parse(broadcasts_for(stream).last)
|
|
assert_equal mat.id, payload["mat_id"]
|
|
assert_equal queue1_match.id, payload["queue1_match_id"]
|
|
assert_equal queue1_match.bout_number, payload["queue1_bout_number"]
|
|
assert_equal selected_match.id, payload["selected_match_id"]
|
|
assert_equal selected_match.bout_number, payload["selected_bout_number"]
|
|
end
|
|
|
|
test "set_last_match_result broadcasts updated payload" do
|
|
mat = mats(:one)
|
|
queue1_match = matches(:tournament_1_bout_1000)
|
|
mat.update!(queue1: queue1_match.id, queue2: nil, queue3: nil, queue4: nil)
|
|
|
|
stream = MatScoreboardChannel.broadcasting_for(mat)
|
|
clear_streams(stream)
|
|
|
|
mat.set_last_match_result!("106 lbs - Winner Decision Loser 3-1")
|
|
|
|
payload = JSON.parse(broadcasts_for(stream).last)
|
|
assert_equal "106 lbs - Winner Decision Loser 3-1", payload["last_match_result"]
|
|
assert_equal queue1_match.id, payload["queue1_match_id"]
|
|
end
|
|
|
|
private
|
|
|
|
def broadcasts_for(stream)
|
|
ActionCable.server.pubsub.broadcasts(stream)
|
|
end
|
|
|
|
def clear_streams(*streams)
|
|
ActionCable.server.pubsub.clear
|
|
streams.each do |stream|
|
|
broadcasts_for(stream).clear
|
|
end
|
|
end
|
|
end
|