54 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
| # Pleroma: A lightweight social networking server
 | |
| # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
 | |
| # SPDX-License-Identifier: AGPL-3.0-only
 | |
| 
 | |
| defmodule Pleroma.Web.StateTest do
 | |
|   use Pleroma.DataCase
 | |
| 
 | |
|   import Pleroma.Factory
 | |
|   alias Pleroma.Web.Streamer
 | |
|   alias Pleroma.Web.Streamer.StreamerSocket
 | |
| 
 | |
|   @moduletag needs_streamer: true
 | |
| 
 | |
|   describe "sockets" do
 | |
|     setup do
 | |
|       user = insert(:user)
 | |
|       user2 = insert(:user)
 | |
|       {:ok, %{user: user, user2: user2}}
 | |
|     end
 | |
| 
 | |
|     test "it can add a socket", %{user: user} do
 | |
|       Streamer.add_socket("public", %{transport_pid: 1, assigns: %{user: user}})
 | |
| 
 | |
|       assert(%{"public" => [%StreamerSocket{transport_pid: 1}]} = Streamer.get_sockets())
 | |
|     end
 | |
| 
 | |
|     test "it can add multiple sockets per user", %{user: user} do
 | |
|       Streamer.add_socket("public", %{transport_pid: 1, assigns: %{user: user}})
 | |
|       Streamer.add_socket("public", %{transport_pid: 2, assigns: %{user: user}})
 | |
| 
 | |
|       assert(
 | |
|         %{
 | |
|           "public" => [
 | |
|             %StreamerSocket{transport_pid: 2},
 | |
|             %StreamerSocket{transport_pid: 1}
 | |
|           ]
 | |
|         } = Streamer.get_sockets()
 | |
|       )
 | |
|     end
 | |
| 
 | |
|     test "it will not add a duplicate socket", %{user: user} do
 | |
|       Streamer.add_socket("activity", %{transport_pid: 1, assigns: %{user: user}})
 | |
|       Streamer.add_socket("activity", %{transport_pid: 1, assigns: %{user: user}})
 | |
| 
 | |
|       assert(
 | |
|         %{
 | |
|           "activity" => [
 | |
|             %StreamerSocket{transport_pid: 1}
 | |
|           ]
 | |
|         } = Streamer.get_sockets()
 | |
|       )
 | |
|     end
 | |
|   end
 | |
| end
 | 
