fix: still fighting crashes on close and weird AI chat behaviou
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
defmodule BDS.AITest do
|
||||
use ExUnit.Case, async: false
|
||||
|
||||
import ExUnit.CaptureLog
|
||||
import Ecto.Query
|
||||
require Logger
|
||||
|
||||
alias BDS.Media.Media
|
||||
alias BDS.Persistence
|
||||
@@ -342,17 +344,28 @@ defmodule BDS.AITest do
|
||||
|
||||
{:ok, {_address, port}} = ThousandIsland.listener_info(server)
|
||||
|
||||
assert {:ok, %{content: "Short Title"}} =
|
||||
BDS.AI.OpenAICompatibleRuntime.generate(
|
||||
%{url: "http://127.0.0.1:#{port}/v1", api_key: nil},
|
||||
%{
|
||||
operation: :chat_title,
|
||||
model: "qwen3.5-122b",
|
||||
messages: [%{"role" => "user", "content" => "Topic: posts per month"}],
|
||||
max_output_tokens: 20
|
||||
},
|
||||
[]
|
||||
)
|
||||
previous_level = Logger.level()
|
||||
Logger.configure(level: :debug)
|
||||
|
||||
log =
|
||||
capture_log(fn ->
|
||||
assert {:ok, %{content: "Short Title"}} =
|
||||
BDS.AI.OpenAICompatibleRuntime.generate(
|
||||
%{url: "http://127.0.0.1:#{port}/v1", api_key: nil},
|
||||
%{
|
||||
operation: :chat_title,
|
||||
model: "qwen3.5-122b",
|
||||
messages: [%{"role" => "user", "content" => "Topic: posts per month"}],
|
||||
max_output_tokens: 20
|
||||
},
|
||||
[]
|
||||
)
|
||||
end)
|
||||
|
||||
Logger.configure(level: previous_level)
|
||||
|
||||
assert log =~ "AI OpenAI-compatible request operation=:chat_title"
|
||||
assert log =~ ~s(model="qwen3.5-122b")
|
||||
|
||||
assert_received {:completion_payload, payload}
|
||||
assert payload["model"] == "qwen3.5-122b"
|
||||
|
||||
@@ -23,6 +23,18 @@ defmodule BDS.DesktopTest do
|
||||
end
|
||||
end
|
||||
|
||||
defmodule FakeWindowLifecycle do
|
||||
def hide(window_id) do
|
||||
send(Application.fetch_env!(:bds, :desktop_shutdown_test_pid), {:window_hide_requested, window_id})
|
||||
:ok
|
||||
end
|
||||
|
||||
def quit do
|
||||
send(Application.fetch_env!(:bds, :desktop_shutdown_test_pid), :window_quit_requested)
|
||||
:ok
|
||||
end
|
||||
end
|
||||
|
||||
test "desktop configuration no longer uses a pending adapter" do
|
||||
assert Application.get_env(:bds, BDS.Application)[:desktop_adapter] == :desktop
|
||||
end
|
||||
@@ -191,6 +203,30 @@ defmodule BDS.DesktopTest do
|
||||
assert_receive :window_quit_requested
|
||||
end
|
||||
|
||||
test "app-owned shutdown hides the window before hard quit" do
|
||||
previous_module = Application.get_env(:bds, :desktop_shutdown_module)
|
||||
previous_quit_module = Application.get_env(:bds, :desktop_window_quit_module)
|
||||
previous_window_module = Application.get_env(:bds, :desktop_window_module)
|
||||
previous_pid = Application.get_env(:bds, :desktop_shutdown_test_pid)
|
||||
|
||||
Application.put_env(:bds, :desktop_shutdown_module, BDS.Desktop.Shutdown)
|
||||
Application.put_env(:bds, :desktop_window_quit_module, FakeWindowLifecycle)
|
||||
Application.put_env(:bds, :desktop_window_module, FakeWindowLifecycle)
|
||||
Application.put_env(:bds, :desktop_shutdown_test_pid, self())
|
||||
expected_window_id = BDS.Desktop.MainWindow.window_id()
|
||||
|
||||
on_exit(fn ->
|
||||
restore_env(:desktop_shutdown_module, previous_module)
|
||||
restore_env(:desktop_window_quit_module, previous_quit_module)
|
||||
restore_env(:desktop_window_module, previous_window_module)
|
||||
restore_env(:desktop_shutdown_test_pid, previous_pid)
|
||||
end)
|
||||
|
||||
assert :ok = BDS.Desktop.Shutdown.request_quit()
|
||||
assert_receive {:window_hide_requested, ^expected_window_id}
|
||||
assert_receive :window_quit_requested
|
||||
end
|
||||
|
||||
test "desktop root html is a LiveView shell and references only the live bootstrap assets" do
|
||||
conn = conn(:get, "/?k=#{Desktop.Auth.login_key()}")
|
||||
conn = BDS.Desktop.Endpoint.call(conn, BDS.Desktop.Endpoint.init([]))
|
||||
|
||||
Reference in New Issue
Block a user