Hello all,
I’m trying to run the liveview update test below
test "updates branch in listing", %{conn: conn, branch: branch} do
{:ok, index_live, _html} = live(conn, ~p"/ar/branches")
assert index_live
|> element("#branches-#{branch.id} a", "Edit")
|> render_click() =~ "Edit"
assert_patched(index_live, ~p"/ar/branches/#{branch.id}/edit")
assert index_live
|> form("#branch-form", branch: @invalid_attrs)
|> render_change() =~ "Cannot be empty"
end
and it appears as if the render_click() call is not causing the edit view to be rendered although manually clicking the Edit element/link works fine when tested manually (in the browser). The test complains that there’s no #branch-form element in the view and that appears to be correct as rendering the view shows the elements listing (index) page.
This test returns the following:
** (ArgumentError) expected selector "#branch-form" to return a single element, but got none within:
...
I don’t think I need to run follow_redirect (and that didn’t work anyway) but clearly I’m missing something here
. Might someone kindly point me in the right direction with a hint, please?
I’m running this with liveview v1.0.18 I upgraded from v1.0.9 after giving up on making it work with that but it may be something else that I’m doing.
The index.html.heex template with the target element has this:
<:action :let={{_id, branch}}>
<div class="sr-only">
<.link navigate={~p"/#{current_locale()}/branches/#{branch}"}>Show</.link>
</div>
<.link patch={~p"/#{current_locale()}/branches/#{branch}/edit"}>Edit</.link>
</:action>
and attempting to target the element directly with element/2 with something like “#branches-#{branch.id} a:nth-child(2)” yielded the same result.






















