48 lines
1.4 KiB
Elixir
48 lines
1.4 KiB
Elixir
defmodule MvWeb.UserLive.FormDebug2Test do
|
|
use Mv.DataCase, async: true
|
|
|
|
describe "direct ash query test" do
|
|
test "check if available_for_linking works in LiveView context" do
|
|
# Create an unlinked member
|
|
{:ok, member} =
|
|
Mv.Membership.create_member(%{
|
|
first_name: "Jane",
|
|
last_name: "Smith",
|
|
email: "jane@example.com"
|
|
})
|
|
|
|
IO.puts("\n=== Created member: #{inspect(member.id)} ===")
|
|
|
|
# Try the same query as in the LiveView
|
|
user_email_str = "user@example.com"
|
|
search_query_str = nil
|
|
|
|
IO.puts("\n=== Calling Ash.read with domain: Mv.Membership ===")
|
|
|
|
result =
|
|
Ash.read(Mv.Membership.Member,
|
|
domain: Mv.Membership,
|
|
action: :available_for_linking,
|
|
arguments: %{user_email: user_email_str, search_query: search_query_str}
|
|
)
|
|
|
|
IO.puts("Result: #{inspect(result)}")
|
|
|
|
case result do
|
|
{:ok, members} ->
|
|
IO.puts("\n✓ Query succeeded, found #{length(members)} members")
|
|
|
|
Enum.each(members, fn m ->
|
|
IO.puts(" - #{m.first_name} #{m.last_name} (#{m.email})")
|
|
end)
|
|
|
|
# Apply filter
|
|
filtered = Mv.Membership.Member.filter_by_email_match(members, user_email_str)
|
|
IO.puts("\n✓ After filter_by_email_match: #{length(filtered)} members")
|
|
|
|
{:error, error} ->
|
|
IO.puts("\n✗ Query failed: #{inspect(error)}")
|
|
end
|
|
end
|
|
end
|
|
end
|