59 lines
1.4 KiB
Elixir
59 lines
1.4 KiB
Elixir
defmodule MvWeb.GroupLiveHelpers do
|
|
@moduledoc """
|
|
Helpers for Group LiveView tests (e.g. group show add/remove member flow).
|
|
|
|
Use these to reduce duplication in tests that open the add member area,
|
|
search, select, and add members.
|
|
"""
|
|
|
|
import Phoenix.LiveViewTest
|
|
|
|
@doc """
|
|
Opens the inline add member area by clicking "Add Member".
|
|
"""
|
|
def open_add_member(view) do
|
|
view
|
|
|> element("button", "Add Member")
|
|
|> render_click()
|
|
end
|
|
|
|
@doc """
|
|
Triggers member search by focusing the input and sending a form change with the given query.
|
|
"""
|
|
def search_member(view, query) do
|
|
view
|
|
|> element("#member-search-input")
|
|
|> render_focus()
|
|
|
|
view
|
|
|> element("form[phx-change='search_members']")
|
|
|> render_change(%{"member_search" => query})
|
|
end
|
|
|
|
@doc """
|
|
Clicks the option for the given member in the dropdown (by data-member-id).
|
|
"""
|
|
def select_member(view, member) do
|
|
view
|
|
|> element("[data-member-id='#{member.id}']")
|
|
|> render_click()
|
|
end
|
|
|
|
@doc """
|
|
Clicks the "Add" button (add_selected_members).
|
|
"""
|
|
def add_selected(view) do
|
|
view
|
|
|> element("button[phx-click='add_selected_members']")
|
|
|> render_click()
|
|
end
|
|
|
|
@doc """
|
|
Clicks the "Cancel" button to close the inline add member area.
|
|
"""
|
|
def cancel_add_member(view) do
|
|
view
|
|
|> element("button[phx-click='hide_add_member_input']")
|
|
|> render_click()
|
|
end
|
|
end
|