ijdickinson

ijdickinson

Link following in Wallaby

I’m trying to write a really basic Wallaby test to check that an anchor link navigates the user to the right page. My link:

<a href="/cases/new-case" class="button button__primary ">
  Add a new case
</a>

My test:

session =
  session
  |> visit(~p"/cases")
  |> assert_has(Query.link("Add a new case", count: 1))
  |> click(Query.link("Add a new case"))
  |> assert_has(..predicates to test new page ...)

The problem is that although the assert_has succeeds, and I can see that the link is visible in the browser, the navigation to the new page does not happen - even if I insert a sleep.

This seems like a pretty basic test automation, so I’m really not sure why the link follow is not working. I know I can just visit() the URL of the destination page, but in this test I want to text the UX of clicking on the link. But I have no hypotheses left to explore as to why the link is not being visited, and would welcome any suggestions.

I’m on Ubuntu, using chromedriver-120.0.6099.109 and an identical version of Google Chrome

Most Liked

ijdickinson

ijdickinson

@sodapopcan The additional context, I think, is to do with authentication. The route I’m testing requires user log-in. I’m following this pattern to set a browser cookie as though the user had logged in. From what I can tell, this is allowing me to successfully visit the initial page (/cases/, but not navigate to the second route /cases/new-case), even though both are normally navigable in one session.

I’m only trying the cookie-injection method because I’ve been seeing some non-deterministic failures when I create the same test but replicate the user logging-in at the start of the session. It’s all been a bit frustrating, tbh!

Where Next?

Popular in Questions Top

shahryarjb
Hello, I get Persian date from my client and convert it to normal calendar like this: def jalali_string_to_miladi_english_number(persi...
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
LegitStack
I’m trying to make a websocket server in Phoenix or raw Elixir. I heard about gun, I think I could use cowboy, but since I’m not that sma...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID&lt;0.412.0&gt; terminating ** (Postgrex.Error) FATAL...
New
sabri
Can someone explain the settings of pool_size of Ecto in config file? and what is the recommend size? Thanks
New
Mooodi
Given a string, how can I get access to its character by index? Enum.at("my_string", 2) doesn't work. Or rather, not char, but a substr...
New
romenigld
I am trying to run a deploy with docker and I successfully runned with this command: docker build -t romenigld/blog-prod . but when I t...
New
vrod
I am using the Starship cross-shell prompt – it seems pretty nice, but I get some errors: [WARN] - (starship::utils): Executing command ...
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New

Other popular topics Top

sergio
In Ruby, I can go: User.find_by(email: "foobar@email.com").update(email: "hello@email.com") How can I do something similar in Elixir? ...
New
jerry
Good day to you all. I have been struggling to get a query involving like and ilike to work. Can anyone assist me on this, please? pro...
New
itssasanka
Hi all, Trying to get some more clarity over utc_datetime and naive_datetime for Ecto: https://hexdocs.pm/ecto/Ecto.Schema.html#module-...
New
sergio
I couldn’t find any guides that worked well with Phoenix 1.6.0 and esbuild. I hope this helps people test the waters and eases you into t...
New
lk-geimfari
What is most correct way to open, read and parse JSON file with poison? For example if we have example.json file in root of some projec...
New
fireproofsocks
Forgive me if this is obvious, but how does one delete a database record WITHOUT selecting it first? https://hexdocs.pm/ecto/Ecto.Repo.h...
New
electic
Hi, I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
josevalim
Hi everyone, One of the features added to Elixir early on to help integration with Erlang code was the idea of overridable function defi...
New
TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
273 38985 115
New
magnetic
Hey :wave:t3: Elixir community, I’ve been learning Elixir, and working on some side projects. My editor of choice is VSCode, and althoug...
New

We're in Beta

About us Mission Statement