Extracting DOM helpers
In this section, we’ll pull out a bunch of little functions that will help our tests become more readable. This will be straightforward compared to the matcher we’ve just built.
The reactTestExtensions.js
module already contains three functions that you’ve used: initializeReactContainer
, render
, and click
.
Now, we’ll add four more: element
, elements
, typesOf
, and textOf
. These functions are designed to help your tests read much more like plain English. Let’s take a look at an example. Here are the expectations for one of our tests:
const listChildren = document.querySelectorAll("li"); expect(listChildren[0].textContent).toEqual("12:00"); expect(listChildren[1].textContent).toEqual("13:00");
We can introduce a function, elements
, that is a shorter version of document.querySelectorAll
. The shorter name means we can get rid of the extra variable:
expect(elements("li")[0].textContent...