Files
bDS2/test/bds/csm036_file_split_test.exs

59 lines
2.9 KiB
Elixir

defmodule BDS.CSM036FileSplitTest do
use ExUnit.Case, async: false
@shell_live_path "lib/bds/desktop/shell_live.ex"
@shell_live_content_state_path "lib/bds/desktop/shell_live/content_state.ex"
@chat_path "lib/bds/ai/chat.ex"
@chat_title_generator_path "lib/bds/ai/chat_title_generator.ex"
@chat_tools_path "lib/bds/ai/chat_tools.ex"
@chat_tool_schemas_path "lib/bds/ai/chat_tool_schemas.ex"
describe "source-level: shell_live refresh orchestration split" do
test "shell_live delegates refresh_content and reload_shell to a helper module" do
shell_live_source = File.read!(@shell_live_path)
content_state_source = File.read!(@shell_live_content_state_path)
refute shell_live_source =~ "defp refresh_content(socket, workbench) do"
refute shell_live_source =~ "defp reload_shell(socket, workbench) do"
assert shell_live_source =~ "defp refresh_content(socket, workbench), do: ContentState.refresh_content(socket, workbench)"
assert shell_live_source =~ "defp reload_shell(socket, workbench), do: ContentState.reload_shell(socket, workbench)"
assert content_state_source =~ "def refresh_content(socket, workbench) do"
assert content_state_source =~ "def reload_shell(socket, workbench) do"
end
end
describe "source-level: ai chat title split" do
test "chat title generation logic lives in a dedicated helper module" do
chat_source = File.read!(@chat_path)
title_generator_source = File.read!(@chat_title_generator_path)
refute chat_source =~ "defp generate_chat_title(user_content, opts)"
refute chat_source =~ "defp build_chat_title_request(user_content, model)"
refute chat_source =~ "defp sanitize_chat_title(title) when is_binary(title)"
assert title_generator_source =~ "def generate_chat_title(user_content, opts)"
assert title_generator_source =~ "def build_chat_title_request(user_content, model)"
assert title_generator_source =~ "def sanitize_chat_title(title) when is_binary(title)"
end
end
describe "source-level: ai chat tool schema split" do
test "chat tool JSON schema builders live in a dedicated helper module" do
chat_tools_source = File.read!(@chat_tools_path)
chat_tool_schemas_source = File.read!(@chat_tool_schemas_path)
refute chat_tools_source =~ "defp tool_spec(name, description, parameters) do"
refute chat_tools_source =~ "defp render_chart_schema do"
refute chat_tools_source =~ "defp render_form_schema do"
refute chat_tools_source =~ "defp post_search_schema(require_query) do"
assert chat_tool_schemas_source =~ "def tool_spec(name, description, parameters) do"
assert chat_tool_schemas_source =~ "def render_chart_schema do"
assert chat_tool_schemas_source =~ "def render_form_schema do"
assert chat_tool_schemas_source =~ "def post_search_schema(require_query) do"
end
end
end