37 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
| 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
 | |
|       Pleroma.Config.put([:instance, :chat_limit], 2)
 | |
|       push(socket, "new_msg", %{"text" => "123"})
 | |
|       refute_broadcast("new_msg", %{text: "123"})
 | |
|     end
 | |
|   end
 | |
| end
 | 
