OptimumCredo.Check.Warning.StaleRenderBinding (OptimumCredo v0.5.0)
View SourceBasics
This check is disabled by default.
Learn how to enable it via .credo.exs.
This check has a base priority of low and works with any version of Elixir.
Explanation
An assertion on HTML captured before an interaction can pass (or fail) for the wrong reason. Re-render or bind the interaction result.
Bad:
{:ok, view, html} = live(conn, ~p"/")
view |> element("button") |> render_click()
assert html =~ "clicked"Good:
html = view |> element("button") |> render_click()
assert html =~ "clicked"Check-Specific Parameters
Use the following parameters to configure this check:
:producers
Function names whose result is rendered HTML worth tracking.
This parameter defaults to [:live, :live_isolated, :render, :render_component, :render_click, :render_submit, :render_change, :render_keydown, :render_keyup, :render_blur, :render_focus, :render_hook, :render_async, :render_patch, :follow_redirect].
:interactions
Function names that change the rendered page.
This parameter defaults to [:render_click, :render_submit, :render_change, :render_keydown, :render_keyup, :render_blur, :render_focus, :render_hook, :render_upload, :render_async, :render_patch, :follow_redirect, :send].
:modules
Modules whose remote calls count as producers/interactions (locals always do).
This parameter defaults to [Phoenix.LiveViewTest, Phoenix.ConnTest, Kernel].
General Parameters
Like with all checks, general params can be applied.
Parameters can be configured via the .credo.exs config file.