mirror of
https://github.com/jcwimer/wrestlingApp
synced 2026-04-15 09:27:03 +00:00
111 lines
3.1 KiB
Ruby
111 lines
3.1 KiB
Ruby
require "test_helper"
|
|
|
|
class MatScoreboardChannelTest < ActionCable::Channel::TestCase
|
|
setup do
|
|
@mat = mats(:one)
|
|
@match = matches(:tournament_1_bout_1000)
|
|
@alternate_match = matches(:tournament_1_bout_1001)
|
|
Rails.cache.clear
|
|
@mat.update!(queue1: @match.id, queue2: @alternate_match.id, queue3: nil, queue4: nil)
|
|
@mat.set_selected_scoreboard_match!(@match)
|
|
@mat.set_last_match_result!("106 lbs - Example Winner Decision Example Loser 3-1")
|
|
end
|
|
|
|
test "subscribes to a valid mat stream and transmits scoreboard payload" do
|
|
subscribe(mat_id: @mat.id)
|
|
|
|
assert subscription.confirmed?
|
|
assert_has_stream_for @mat
|
|
assert_equal(
|
|
{
|
|
"mat_id" => @mat.id,
|
|
"queue1_bout_number" => @match.bout_number,
|
|
"queue1_match_id" => @match.id,
|
|
"selected_bout_number" => @match.bout_number,
|
|
"selected_match_id" => @match.id,
|
|
"last_match_result" => "106 lbs - Example Winner Decision Example Loser 3-1"
|
|
},
|
|
transmissions.last
|
|
)
|
|
end
|
|
|
|
test "rejects subscription for an invalid mat" do
|
|
subscribe(mat_id: -1)
|
|
|
|
assert subscription.rejected?
|
|
end
|
|
|
|
test "transmits payload with queue1 and no selected match" do
|
|
@mat.set_selected_scoreboard_match!(nil)
|
|
|
|
subscribe(mat_id: @mat.id)
|
|
|
|
assert_equal(
|
|
{
|
|
"mat_id" => @mat.id,
|
|
"queue1_bout_number" => @match.bout_number,
|
|
"queue1_match_id" => @match.id,
|
|
"selected_bout_number" => nil,
|
|
"selected_match_id" => nil,
|
|
"last_match_result" => "106 lbs - Example Winner Decision Example Loser 3-1"
|
|
},
|
|
transmissions.last
|
|
)
|
|
end
|
|
|
|
test "transmits payload when selected match differs from queue1" do
|
|
@mat.set_selected_scoreboard_match!(@alternate_match)
|
|
|
|
subscribe(mat_id: @mat.id)
|
|
|
|
assert_equal(
|
|
{
|
|
"mat_id" => @mat.id,
|
|
"queue1_bout_number" => @match.bout_number,
|
|
"queue1_match_id" => @match.id,
|
|
"selected_bout_number" => @alternate_match.bout_number,
|
|
"selected_match_id" => @alternate_match.id,
|
|
"last_match_result" => "106 lbs - Example Winner Decision Example Loser 3-1"
|
|
},
|
|
transmissions.last
|
|
)
|
|
end
|
|
|
|
test "transmits payload when no queue1 match exists" do
|
|
@mat.update!(queue1: nil, queue2: nil, queue3: nil, queue4: nil)
|
|
@mat.set_selected_scoreboard_match!(nil)
|
|
|
|
subscribe(mat_id: @mat.id)
|
|
|
|
assert_equal(
|
|
{
|
|
"mat_id" => @mat.id,
|
|
"queue1_bout_number" => nil,
|
|
"queue1_match_id" => nil,
|
|
"selected_bout_number" => nil,
|
|
"selected_match_id" => nil,
|
|
"last_match_result" => "106 lbs - Example Winner Decision Example Loser 3-1"
|
|
},
|
|
transmissions.last
|
|
)
|
|
end
|
|
|
|
test "transmits payload with blank last match result" do
|
|
@mat.set_last_match_result!(nil)
|
|
|
|
subscribe(mat_id: @mat.id)
|
|
|
|
assert_equal(
|
|
{
|
|
"mat_id" => @mat.id,
|
|
"queue1_bout_number" => @match.bout_number,
|
|
"queue1_match_id" => @match.id,
|
|
"selected_bout_number" => @match.bout_number,
|
|
"selected_match_id" => @match.id,
|
|
"last_match_result" => nil
|
|
},
|
|
transmissions.last
|
|
)
|
|
end
|
|
end
|