OptimumCredo.Check.Warning.StaleRenderBinding (OptimumCredo v0.5.0)

View Source

Basics

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.