This commit is contained in:
26
test/elixir_ai_web/live/chat_live_test.exs
Normal file
26
test/elixir_ai_web/live/chat_live_test.exs
Normal file
@@ -0,0 +1,26 @@
|
||||
defmodule ElixirAiWeb.ChatLiveTest do
|
||||
use ElixirAiWeb.ConnCase, async: false
|
||||
import ElixirAi.PubsubTopics, only: [conversation_message_topic: 1]
|
||||
|
||||
setup do
|
||||
stub(ElixirAi.ConversationManager, :open_conversation, fn _name -> {:ok, self()} end)
|
||||
|
||||
stub(ElixirAi.ChatRunner, :get_conversation, fn _name ->
|
||||
%{messages: [], streaming_response: nil}
|
||||
end)
|
||||
|
||||
:ok
|
||||
end
|
||||
|
||||
test "displays a db error when a db_error message is broadcast", %{conn: conn} do
|
||||
{:ok, view, _html} = live(conn, ~p"/chat/test_conv")
|
||||
|
||||
Phoenix.PubSub.broadcast(
|
||||
ElixirAi.PubSub,
|
||||
conversation_message_topic("test_conv"),
|
||||
{:db_error, "unique constraint violated"}
|
||||
)
|
||||
|
||||
assert render(view) =~ "unique constraint violated"
|
||||
end
|
||||
end
|
||||
@@ -16,6 +16,7 @@ defmodule ElixirAiWeb.ConnCase do
|
||||
"""
|
||||
|
||||
use ExUnit.CaseTemplate
|
||||
use Mimic
|
||||
|
||||
using do
|
||||
quote do
|
||||
@@ -27,11 +28,18 @@ defmodule ElixirAiWeb.ConnCase do
|
||||
# Import conveniences for testing with connections
|
||||
import Plug.Conn
|
||||
import Phoenix.ConnTest
|
||||
import Phoenix.LiveViewTest
|
||||
import ElixirAiWeb.ConnCase
|
||||
use Mimic
|
||||
end
|
||||
end
|
||||
|
||||
setup :set_mimic_global
|
||||
|
||||
setup _tags do
|
||||
stub(ElixirAi.Data.DbHelpers, :run_sql, fn _sql, _params, _topic -> [] end)
|
||||
stub(ElixirAi.Data.DbHelpers, :run_sql, fn _sql, _params, _topic, _schema -> [] end)
|
||||
stub(ElixirAi.ChatUtils, :request_ai_response, fn _server, _messages, _tools -> :ok end)
|
||||
{:ok, conn: Phoenix.ConnTest.build_conn()}
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
ExUnit.start()
|
||||
Mimic.copy(ElixirAi.Data.DbHelpers)
|
||||
Mimic.copy(ElixirAi.ChatUtils)
|
||||
Mimic.copy(ElixirAi.ConversationManager)
|
||||
Mimic.copy(ElixirAi.ChatRunner)
|
||||
|
||||
Reference in New Issue
Block a user