Skip to content

Commit

Permalink
bump to phoenix 1.4
Browse files Browse the repository at this point in the history
  • Loading branch information
ecly committed Mar 2, 2019
1 parent 204c62e commit b06643e
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 82 deletions.
5 changes: 3 additions & 2 deletions apps/buddy_matching_web/.formatter.exs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
[
inputs: ["mix.exs", "{config,lib,test}/**/*.{ex,exs}"]
]
import_deps: [:phoenix],
inputs: ["*.{ex,exs}", "{config,lib,priv,test}/**/*.{ex,exs}"]
]
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,6 @@ defmodule BuddyMatchingWeb.PlayerSocket do
## Channels
channel("players:*", BuddyMatchingWeb.PlayersChannel)

## Transports
transport(:websocket, Phoenix.Transports.WebSocket, timeout: 100_000)

# O n connect verify that the session and session token match
def connect(%{"session_id" => session_id, "session_token" => session_token}, socket) do
if Auth.verify_session(session_id, session_token) do
Expand Down
2 changes: 1 addition & 1 deletion apps/buddy_matching_web/lib/buddy_matching_web/endpoint.ex
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
defmodule BuddyMatchingWeb.Endpoint do
use Phoenix.Endpoint, otp_app: :buddy_matching_web

socket("/socket", BuddyMatchingWeb.PlayerSocket)
socket("/socket", BuddyMatchingWeb.PlayerSocket, websocket: [timeout: 100_000])

# Serve at "/" the static files from "priv/static" directory.
#
Expand Down
4 changes: 2 additions & 2 deletions apps/buddy_matching_web/mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,10 @@ defmodule BuddyMatchingWeb.Mixfile do
{:riot_api, in_umbrella: true},
{:buddy_matching, in_umbrella: true},
{:fortnite_api, in_umbrella: true},
{:phoenix, "~> 1.3.0"},
{:phoenix, "~> 1.4.0"},
{:phoenix_pubsub, "~> 1.0"},
{:gettext, "~> 0.11"},
{:cowboy, "~> 1.0"},
{:plug_cowboy, "~> 2.0"},
{:cors_plug, "~> 1.3"},
{:ok, "~> 1.9"},
{:uuid, "~> 1.1"},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -200,11 +200,8 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do
{socket1, player1, topic1} = setup_socket(@base_player1)
{socket2, player2, topic2} = setup_socket(@base_player2)

{:ok, _, channel1} = socket1 |> subscribe_and_join(PlayersChannel, topic1, player1)
{:ok, _, channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2)

:ok = close(channel1)
:ok = close(channel2)
{:ok, _, _channel1} = socket1 |> subscribe_and_join(PlayersChannel, topic1, player1)
{:ok, _, _channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2)

# assert player 1 got no one else
assert_receive %Phoenix.Socket.Message{
Expand Down Expand Up @@ -233,8 +230,7 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do
player = generate_player(auth_player.id)
data = Poison.Parser.parse!(player)

{:ok, _, channel} = socket |> subscribe_and_join(PlayersChannel, topic, data)
:ok = close(channel)
{:ok, _, _channel} = socket |> subscribe_and_join(PlayersChannel, topic, data)

assert_receive %Phoenix.Socket.Message{
topic: ^topic,
Expand All @@ -257,13 +253,10 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do
{socket2, player2, topic2} = setup_socket(@base_player2)

{:ok, _, channel1} = socket1 |> subscribe_and_join(PlayersChannel, topic1, player1)
{:ok, _, channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2)
{:ok, _, _channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2)

push(channel1, "request_match", %{"player" => player2})

:ok = close(channel1)
:ok = close(channel2)

assert_receive %Phoenix.Socket.Message{
topic: ^topic2,
event: @request_event,
Expand All @@ -277,11 +270,8 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do
{socket1, player1, topic1} = setup_socket(@base_player1)
{socket2, player2, topic2} = setup_socket(@base_player1)

{:ok, _, channel1} = socket1 |> subscribe_and_join(PlayersChannel, topic1, player1)
{:ok, _, channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2)

:ok = close(channel1)
:ok = close(channel2)
{:ok, _, _channel1} = socket1 |> subscribe_and_join(PlayersChannel, topic1, player1)
{:ok, _, _channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2)

assert_receive %Phoenix.Socket.Message{
topic: ^topic2,
Expand All @@ -295,13 +285,10 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do
{socket2, player2, topic2} = setup_socket(@base_player2)

{:ok, _, channel1} = socket1 |> subscribe_and_join(PlayersChannel, topic1, player1)
{:ok, _, channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2)
{:ok, _, _channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2)

push(channel1, "respond_to_request", %{"id" => player2.id, "response" => "accepted"})

:ok = close(channel1)
:ok = close(channel2)

# player2 should recive the request response from player1
assert_receive %Phoenix.Socket.Message{
topic: ^topic2,
Expand All @@ -315,31 +302,30 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do
{socket2, player2, topic2} = setup_socket(@base_player2)

{:ok, _, channel1} = socket1 |> subscribe_and_join(PlayersChannel, topic1, player1)
{:ok, _, channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2)
{:ok, _, _channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2)

assert_receive %Phoenix.Socket.Message{
topic: ^topic1,
event: @new_match_event,
payload: ^player2
}

:ok = close(channel1)
Process.unlink(channel1.channel_pid)
_ = leave(channel1)

assert_receive %Phoenix.Socket.Message{
topic: ^topic2,
event: @unmatch_event,
payload: ^player1
}

:ok = close(channel2)
end

test "send leave event to player 2 when player 1 crashes" do
{socket1, player1, topic1} = setup_socket(@base_player1)
{socket2, player2, topic2} = setup_socket(@base_player2)

{:ok, _, channel1} = socket1 |> subscribe_and_join(PlayersChannel, topic1, player1)
{:ok, _, channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2)
{:ok, _, _channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2)

# unlink to first to avoid test being killed as well
Process.unlink(channel1.channel_pid)
Expand All @@ -350,8 +336,6 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do
event: @unmatch_event,
payload: ^player1
}

:ok = close(channel2)
end

@tag :only
Expand All @@ -360,7 +344,7 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do
{socket2, player2, topic2} = setup_socket(@base_player2)

{:ok, _, channel1} = socket1 |> subscribe_and_join(PlayersChannel, topic1, player1)
{:ok, _, channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2)
{:ok, _, _channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2)

# assert player 1 got no one else
assert_receive %Phoenix.Socket.Message{
Expand Down Expand Up @@ -393,9 +377,6 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do
event: @unmatch_event,
payload: ^narrow_player1
}

:ok = close(channel1)
:ok = close(channel2)
end

test "update criteria sends error if criteria can't be parsed" do
Expand Down Expand Up @@ -425,16 +406,14 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do
},
2000
)

:ok = close(channel1)
end

test "update criteria sends unmatch events when no longer matching" do
{socket1, player1, topic1} = setup_socket(@base_player1)
{socket2, player2, topic2} = setup_socket(@base_player2)

{:ok, _, channel1} = socket1 |> subscribe_and_join(PlayersChannel, topic1, player1)
{:ok, _, channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2)
{:ok, _, _channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2)

# assert player 1 got no one else
assert_receive(
Expand Down Expand Up @@ -485,9 +464,6 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do
%Phoenix.Socket.Message{topic: ^topic2, event: @unmatch_event, payload: ^narrow_player1},
2000
)

:ok = close(channel1)
:ok = close(channel2)
end

test "update criteria sends unmatch events when no longer matching, and match event
Expand All @@ -498,7 +474,7 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do
setup_socket(%Player{@base_player2 | criteria: @player_broad_criteria})

{:ok, _, channel1} = socket1 |> subscribe_and_join(PlayersChannel, topic1, player1)
{:ok, _, channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2)
{:ok, _, _channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2)

# assert player 1 got no one else
assert_receive(
Expand Down Expand Up @@ -559,8 +535,5 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do
%Phoenix.Socket.Message{topic: ^topic2, event: @new_match_event, payload: ^broad_player1},
2000
)

:ok = close(channel1)
:ok = close(channel2)
end
end
Loading

0 comments on commit b06643e

Please sign in to comment.