Fork of Pleroma with site-specific changes and feature branches https://git.pleroma.social/pleroma/pleroma
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.5KB

  1. # Pleroma: A lightweight social networking server
  2. # Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
  3. # SPDX-License-Identifier: AGPL-3.0-only
  4. defmodule Pleroma.Web.StateTest do
  5. use Pleroma.DataCase
  6. import Pleroma.Factory
  7. alias Pleroma.Web.Streamer
  8. alias Pleroma.Web.Streamer.StreamerSocket
  9. @moduletag needs_streamer: true
  10. describe "sockets" do
  11. setup do
  12. user = insert(:user)
  13. user2 = insert(:user)
  14. {:ok, %{user: user, user2: user2}}
  15. end
  16. test "it can add a socket", %{user: user} do
  17. Streamer.add_socket("public", %{transport_pid: 1, assigns: %{user: user}})
  18. assert(%{"public" => [%StreamerSocket{transport_pid: 1}]} = Streamer.get_sockets())
  19. end
  20. test "it can add multiple sockets per user", %{user: user} do
  21. Streamer.add_socket("public", %{transport_pid: 1, assigns: %{user: user}})
  22. Streamer.add_socket("public", %{transport_pid: 2, assigns: %{user: user}})
  23. assert(
  24. %{
  25. "public" => [
  26. %StreamerSocket{transport_pid: 2},
  27. %StreamerSocket{transport_pid: 1}
  28. ]
  29. } = Streamer.get_sockets()
  30. )
  31. end
  32. test "it will not add a duplicate socket", %{user: user} do
  33. Streamer.add_socket("activity", %{transport_pid: 1, assigns: %{user: user}})
  34. Streamer.add_socket("activity", %{transport_pid: 1, assigns: %{user: user}})
  35. assert(
  36. %{
  37. "activity" => [
  38. %StreamerSocket{transport_pid: 1}
  39. ]
  40. } = Streamer.get_sockets()
  41. )
  42. end
  43. end
  44. end