41 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
# Pleroma: A lightweight social networking server
 | 
						|
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
 | 
						|
# SPDX-License-Identifier: AGPL-3.0-only
 | 
						|
 | 
						|
defmodule Pleroma.Web.ChatChannelTest do
 | 
						|
  use Pleroma.Web.ChannelCase
 | 
						|
  alias Pleroma.Web.ChatChannel
 | 
						|
  alias Pleroma.Web.UserSocket
 | 
						|
 | 
						|
  import Pleroma.Factory
 | 
						|
 | 
						|
  setup do
 | 
						|
    user = insert(:user)
 | 
						|
 | 
						|
    {:ok, _, socket} =
 | 
						|
      socket(UserSocket, "", %{user_name: user.nickname})
 | 
						|
      |> subscribe_and_join(ChatChannel, "chat:public")
 | 
						|
 | 
						|
    {:ok, socket: socket}
 | 
						|
  end
 | 
						|
 | 
						|
  test "it broadcasts a message", %{socket: socket} do
 | 
						|
    push(socket, "new_msg", %{"text" => "why is tenshi eating a corndog so cute?"})
 | 
						|
    assert_broadcast("new_msg", %{text: "why is tenshi eating a corndog so cute?"})
 | 
						|
  end
 | 
						|
 | 
						|
  describe "message lengths" do
 | 
						|
    setup do: clear_config([:instance, :chat_limit])
 | 
						|
 | 
						|
    test "it ignores messages of length zero", %{socket: socket} do
 | 
						|
      push(socket, "new_msg", %{"text" => ""})
 | 
						|
      refute_broadcast("new_msg", %{text: ""})
 | 
						|
    end
 | 
						|
 | 
						|
    test "it ignores messages above a certain length", %{socket: socket} do
 | 
						|
      clear_config([:instance, :chat_limit], 2)
 | 
						|
      push(socket, "new_msg", %{"text" => "123"})
 | 
						|
      refute_broadcast("new_msg", %{text: "123"})
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |