Noteworthy changes are included here. For a full version of changes, see git history.
To see dates a version was published, see the hex package page
- Fix: do not recycle fresh conn. Commit 24192e2
- 🛠️ Fix active form vs form data loading . Commit 37302b9
- Update
phx_click?
to check for valid JS commands. Commit 0d54b49 - Deduplicate data passed to FormPayload (multi checkbox fix). Commit e950ae4
-
Select options were previously matched inexactly (as a substring match). That made it impossible to differentiate between two options where one was a subset of the other.
For example, using
select(session, "Email", from: "Contact")
could not differentiate between theEmail
andEmail and SMS
options. Select options are now matched exactly. Commits dc7ba01 and e675561.This is a technically a bug fix, but it's also a potentially breaking change for existing tests that accidentally relied on that behavior. If you need inexact matches on options, please open an issue describing your use case.
- Adds
PhoenixTest.upload/3
to test file uploads. Commit d717970 - ✨ Form helpers now take
:exact
option. Commits c4f9164 and cb19f86 - Form helpers now allow passing CSS selectors to target inputs. Commits 30b4eca, 12934b8, bd595f8, 250e25e, ef2999e
- Raise nice error if field is missing
name
attribute. Commit bb6950f - Docs: Add syntax highlighting for heex and html. Commit e308f9f
- Ignore
phx-*
attrs when inferring selector. Commit b5d28c8 - Don't error on default form input without name attribute. Commit 3bd6d7a
- Check/uncheck works with phx-click outside forms. Commit 82fa973
- Select works with phx-click outside forms. Commit 1493897
- Radio buttons work with phx-click outside forms. Commit 8745ee1
- Send
_target
event with phx-change events. Commit ce093f1 - Use
[id=<id>]
when querying by ID. Commits 5dd10f5 and b79e8a3 - Allow non-string data types as inputs to fields. Commit 5cc0936
- Support default values on textareas. Commit 41c70e0
- Fix
refute_has/2
to handle:at
option withouttext
. Commit 33a02bf
- Do not assume first option to be selected by default for multiple select. Commit f146186
- Handle multiple select in forms. Commit 6b6512d
- Support pre-filled number inputs. Commit 81f03aa
- Fix
open_browser/1
doc example. Commit 8f39959 - Deep merge form data in nested/prefixed forms. Commit 34b73b0
- Fix uncheck/2 in nested forms. Commit e1a2408
- Fix: Preserve '?' in checkbox name. Commit 2e032ef
- Fix: Deep merge nested form button value (static). Commit 4303b4a
- Adds
PhoenixTest.unwrap/2
as an escape hatch. Commit 87be9c5.
- We now handle redirects on
phx-change
events. Commit cf1687c. - Click button can submit forms when not nested in form. Commit e173f5b.
- Fix
assert_path
live navigation with query params. Commit 6c58f27.
- Removes deprecated
fill_form/3
andsubmit_form/3
. Commit fef7e82. - Removes deprecated
assert_has
/refute_has
with text as positional argument. Commit 82f4170.
- Deprecates
fill_form/3
andsubmit_form/3
. Commit 996458a. See upgrade guides for more info.
- Adds
fill_in/3
helper. Commit 6c7a1d2. - Adds
select/3
helper. Commit 6efeadf. - Adds
choose/2
helper. Commit 5f58604. - Adds
within/3
helper. Commit 10b7269. - Adds
submit/1
helper. Commit fff82d1. - Adds
check/2
anduncheck/2
helpers. Commit 58110b4.
- Fix checked checkbox being overridden by hidden input. Commit a621f34
- Handle multiple checkboxes inside a label. Commit a8fc877
- Fix
assert_path
/refute_path
to handle live patching. Commit 48a29a3 - Fix
assert_path
/refute_path
to handle Live Navigation. Commit 842ab36 - Fix
assert_has
/refute_has
title matching exactly. Commit 7b2f243 - Update
assert_has
examples in README to new API. Commit cb7529b
- Add
assert_path
andrefute_path
assertions helpers. Commit f2ab02c - Include pre-selected text input values, selects, radio buttons, and checkboxes in form submissions. Commits 32a8da5, d253eba, ebba679
- Include button's
name
andvalue
if present. Commit e54c64f click_button
submits form without having tofill_form
before it does. Commit 8d16b7e
- Follow multiple redirects in
Live.click_link
. Commit 28de102
- Add
count
option in assertions. Commit 16fd0a4 - Add
exact
option in assertions. Commit da772f1 - Add
at
option in assertions. Commit 5da74ec
- Deprecate
assert_has/3
wheretext
is the third argument (positional). Useassert_has/3
withtext:
option instead. Commit 193c21a
- Adds
assert_has/2
andrefute_has/2
. Commits 3756a47 and 9709b7a. - Follows redirect on
visit/2
. Commit b4f49be
- Do not always assume
submit_button
afterfill_form
is for submitting the form. Commit e193a07
- Adds WSL2 for
open_browser/2
. Commit b852014. - Relax Elixir version requirement to 1.15. Commit 3cb9586
- Support visiting non-200 pages in Static implementation. Commit 4964ab2.
- Fixes
open_browser/1
not existing. Commit 7407b19.
- Adds
open_browser/1
function to both Live and Static implementations. Commit b9d8347. - Handle forms that use
data
attributes andPhoenix.HTML.js
to submit forms. Commit d699792.
- Correctly handles forms that PUT/DELETE (through hidden inputs). Commit 3efa4c0.
- Introduce ability to assert and refute on page title. Commit 8552ec7.
- Handle regular form submission from LiveView pages when using
submit_form
. Commit fc4d3ef.
- Improve Live validation of form fields to properly handle nested fields in forms. Commits 180dc0d and c275c0c.
- Handle form redirects from static pages. Commit 4c39920
- Handle regular form submission from LiveView pages with
fill_form
+click_button
. Commit fe755de
- Use Html.raw/1 for more errors to handle nested buttons. 82e7415
- Handle form redirects (to Live and static pages) from Live pages. Commit 531e5e9
- Expand documentation on nested forms. Commit 6809389
- Allow multiple matching elements in
assert_has
. Commit ac0e167
- Raise
AssertionError
instead ofRuntimeError
in assertions for more consistent ExUnit error messages. Commit 117bc59 - Update
fill_form
to handle that aren't direct children of theform
element. Commit 46d6229
- Improve printing of complex nested content in assertions. Commit 7151834
- Better error messages in forms when multiple submit buttons/inputs are found. Commit 82492c6
- Allow using
refute_has
in pipes in the same wayassert_has
already works. Commit 0484979
- Update our static implementation to raise when we find many elements. That brings it in line with how our LiveView implementation works. Commit daa4dca
- Improves error messages in assertions. Commit c995fc1
- Adds
click_link/3
andclick_button/3
which allow for specifying a CSS selector. Commit c7401b6.
- Initial version of the library.