diff --git a/test/music_library_web/live/collection_live/index_test.exs b/test/music_library_web/live/collection_live/index_test.exs index 3b4702e8..90880cb5 100644 --- a/test/music_library_web/live/collection_live/index_test.exs +++ b/test/music_library_web/live/collection_live/index_test.exs @@ -337,20 +337,12 @@ defmodule MusicLibraryWeb.CollectionLive.IndexTest do |> assert_has("button#camera-button") session - |> unwrap(fn view -> - view - |> element("#barcode-scanner") - |> render_hook("camera_denied") - end) + |> trigger_hook("#barcode-scanner", "camera_denied") |> assert_has("button#camera-button") |> refute_has("video#camera-preview") session - |> unwrap(fn view -> - view - |> element("#barcode-scanner") - |> render_hook("camera_allowed") - end) + |> trigger_hook("#barcode-scanner", "camera_allowed") |> refute_has("button#camera-button") |> assert_has("video#camera-preview") end @@ -390,11 +382,7 @@ defmodule MusicLibraryWeb.CollectionLive.IndexTest do conn |> visit(~p"/collection/scan") - |> unwrap(fn view -> - view - |> element("#barcode-scanner") - |> render_hook("barcode_scanned", %{"number" => barcode}) - end) + |> trigger_hook("#barcode-scanner", "barcode_scanned", %{"number" => barcode}) |> assert_has("h2", text: "Marbles") |> click_button("Import releases") diff --git a/test/support/live_test_helpers.ex b/test/support/live_test_helpers.ex index 823de0b2..d703aaf3 100644 --- a/test/support/live_test_helpers.ex +++ b/test/support/live_test_helpers.ex @@ -4,4 +4,13 @@ defmodule MusicLibraryWeb.LiveTestHelpers do |> Phoenix.HTML.html_escape() |> Phoenix.HTML.safe_to_string() end + + def trigger_hook(session, selector, hook, params \\ %{}) do + session + |> PhoenixTest.unwrap(fn view -> + view + |> Phoenix.LiveViewTest.element(selector) + |> Phoenix.LiveViewTest.render_hook(hook, params) + end) + end end