Running Tests: Providing Support for JavaScript
Explore how to enable JavaScript testing support in Dockerized Rails applications by configuring Capybara with Selenium Chrome. Understand running Chrome inside a Docker container using Selenium's standalone image. This lesson guides you to perform effective system tests involving JavaScript behavior within your Rails app.
Running tests that rely on JavaScript
OK, let’s take this up a notch. Setting up testing with JavaScript support is not going to be so straightforward with Docker. But you are ready to handle it.
Imagine that we have an enhanced version of our /welcome page
that has extra behavior that only works with JavaScript enabled. In fact, when functioning correctly, this JavaScript literally adds the message “ENHANCED!” on the page.
Modify index.html.erb
Here is a rather crude implementation in app/views/welcome/index.html.erb:
Modify application.html.erb
We also need a tweak to app/views/layouts/application.html.erb to make this work:
Adding scenario to test JavaScript behavior
Let’s add a second scenario to our page-views-spec.rb in spec/system to test this behavior:
As per the RSpec convention, we have indicated that this new scenario is only expected to pass with JavaScript enabled, by specifying js: ...