diff options
author | marcin mikołajczak <git@mkljczk.pl> | 2023-02-19 22:02:03 +0100 |
---|---|---|
committer | marcin mikołajczak <git@mkljczk.pl> | 2023-02-19 22:02:03 +0100 |
commit | 92592c25c219f44ab6454762f5a5a97e800f5b1d (patch) | |
tree | f1db48a9b222d875841c43b9c5f9b6d2c810a500 /test/support/websocket_client.ex | |
parent | 3ed39e310939d90ddbad7bd7ffa1ebd8aca6e74c (diff) | |
parent | 8a0162cd9694a1c5bf131fefb6e6a8d3dcb68fae (diff) | |
download | pleroma-92592c25c219f44ab6454762f5a5a97e800f5b1d.tar.gz pleroma-92592c25c219f44ab6454762f5a5a97e800f5b1d.zip |
Merge remote-tracking branch 'pleroma/develop' into status-notification-type
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
Diffstat (limited to 'test/support/websocket_client.ex')
-rw-r--r-- | test/support/websocket_client.ex | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/test/support/websocket_client.ex b/test/support/websocket_client.ex index d149b324e..7163bbd41 100644 --- a/test/support/websocket_client.ex +++ b/test/support/websocket_client.ex @@ -5,18 +5,17 @@ defmodule Pleroma.Integration.WebsocketClient do # https://github.com/phoenixframework/phoenix/blob/master/test/support/websocket_client.exs + use WebSockex + @doc """ Starts the WebSocket server for given ws URL. Received Socket.Message's are forwarded to the sender pid """ def start_link(sender, url, headers \\ []) do - :crypto.start() - :ssl.start() - - :websocket_client.start_link( - String.to_charlist(url), + WebSockex.start_link( + url, __MODULE__, - [sender], + %{sender: sender}, extra_headers: headers ) end @@ -36,27 +35,32 @@ defmodule Pleroma.Integration.WebsocketClient do end @doc false - def init([sender], _conn_state) do - {:ok, %{sender: sender}} + @impl true + def handle_frame(frame, state) do + send(state.sender, frame) + {:ok, state} end - @doc false - def websocket_handle(frame, _conn_state, state) do - send(state.sender, frame) + @impl true + def handle_disconnect(conn_status, state) do + send(state.sender, {:close, conn_status}) {:ok, state} end @doc false - def websocket_info({:text, msg}, _conn_state, state) do + @impl true + def handle_info({:text, msg}, state) do {:reply, {:text, msg}, state} end - def websocket_info(:close, _conn_state, _state) do + @impl true + def handle_info(:close, _state) do {:close, <<>>, "done"} end @doc false - def websocket_terminate(_reason, _conn_state, _state) do + @impl true + def terminate(_reason, _state) do :ok end end |