Files
firehose/app/test/support/microprints_case.ex
T

44 lines
1.4 KiB
Elixir

defmodule FirehoseWeb.MicroprintsCase do
@moduledoc """
Helpers for driving the `/microprints` LiveView.
Both `FirehoseWeb.MicroprintsLiveTest` and `FirehoseWeb.SourceViewerTest` walk
the same page through the same two controls (the per-card Expand/Collapse
button and the microprint rects), so the mechanics live here instead of being
re-implemented in each test module.
A plain module, imported by the tests, rather than a `use`-able case template:
the LiveView tests own their own setup and only share these three actions.
"""
import Phoenix.LiveViewTest
@doc """
Clicks the Expand control of the card for `path` and returns the render.
"""
def expand_file(view, path) do
view
|> element(~s(button[phx-value-path="#{path}"]), "Expand")
|> render_click()
end
@doc """
Clicks the Collapse control of the card for `path` and returns the render.
"""
def collapse_file(view, path) do
view
|> element(~s(button[phx-value-path="#{path}"]), "Collapse")
|> render_click()
end
@doc """
Clicks a single line of a microprint, highlighting it in the source viewer.
The microprint renders several rect segments per line, so `element/3` cannot
pick one; the `highlight_line` event is dispatched directly instead.
"""
def click_microprint_rect(view, path, line) do
render_click(view, "highlight_line", %{"line" => Integer.to_string(line), "path" => path})
end
end