grangerelixx
I have a LiveView page that returns a list of students names and ids sorted in a table.
In test,
{:ok, index, html} = live(conn, Routes.students_path(conn, :index, class.id))
I can see that the html here has the names of the students sorted but there are other unnecessary contents(for my test in this case) in between these names. So how can I eliminate other contents and just test only the names are in the expected sort order?
Trending in Questions
Hello!
Suppose you are building workflow (order / task / payment) processing system with the following requirements:
Each workflow con...
New
Hey guys,
I’ve got a huge CSV ( around 10 GB ) that needs to be processed hourly
Do you guys have any suggestions what is the best prac...
New
Kia ora,
We have been using elixir-google-api to connect to Google Drive. However, with the updates to Tesla due to CVEs this is now bro...
New
Hello!
Could someone please give me a help/sample code, how to delete a file from s3 using waffle/waffle_ecto from Phoenix app.
I creat...
New
I have what I’ve heard referred to as a “lookup table” in my database. This is a way of assigning codes to common values. One common lo...
New
Hello,
I’m developing a online persistent chat system (what’s app) like using elixir/dynamodb/aws for a mobile app(flutter).
The diffic...
New
What approach to take when sending live updates to “random” users Hi! I have a question, I have a little chat app, and when I create a DM...
New
Other Trending Topics
Hobbes is a low-level distributed database for the Elixir programming language.
Hobbes provides a simple, safe, and scalable storage lay...
New
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve.
They are GUI (Emerge) and State management (S...
New
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
There are three potential reasons for members of this forum to have a look at https://vutuv.de
You are tired or annoyed of LinkedIn.
Yo...
New
ICal is a library for interacting with iCalendar data. It parses iCalendars into typed Elixir structs via ICal.from_ics, and can prepare ...
New
Latest Phoenix Threads
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #blog-post
- #ai
- #phoenix_html
- #elixirconf-us
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming










Showing Posts 1 to 10- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
cblavier
Have you considered using Floki to parse your HTML output? I’m sure you’ll find your way with it.
Clandestino
In LiveViewTest helper is a function element/3 that you use to retrieve html elements from your view and then validate the elements. The documentation has some nice examples:
I would also recommend to keep the tests of views simple and check only that the important stuff is there.
Move the ordering of your students to a public function and test that function. This will make testing so much easier.
travisf
I’m working through this same issue right now; testing an ordering function in LiveView where users can drag divs to re-order them.
To the best of my knowledge
element/3will throw if more than one item matches. It seems like there is no way to do this except for using something like Floki? If anyone has any other ides or suggestions I’d love to hear them.sodapopcan
I just take the simple boneheaded approach:
The
sregex modifier allows matching over line breaks.travisf
Oh snap yeah that’s a much simpler idea. Thanks.
mwhitworth
I had started a PR for GitHub - mohamed-tallarium/Mononcle · GitHub (which uses Floki to represent some higher-level assertions) that would take a tab-separated string to represent an expected table and compare it against the table in the DOM.
(Certainly I’ve used that technique in other environments to make the expected table state as clear as possible)
eahanson
HtmlQuery has a
tablefunction: HtmlQuery — HtmlQuery v4.4.0It also has a bunch of other useful functions for parsing HTML. It pairs nicely with Pages, a library that implements the page pattern for UI testing and works with controllers and LiveViews without the involvement of a web browser.
sodapopcan
So I don’t know why I never thought of this before but out of the box you can use CSS selectors along with
has_element?/3for much more fine-grained and reliable results than my current regex solution:cc: @travisf
sodapopcan
PhoenixTest now has a very clean way to do this:
weirdobeaver
I think the
assert_has/4function has been removed.The current code for this would now look like that: