In this section, you'll learn how to test asynchronous functions. The process of testing asynchronous functions isn't that different from synchronous ones, like what we've done already, but it is a little different so it justifies its own section.
The asynchronous testing
Creating the asyncAdd function using the setTimeout object
To kick things off, we'll make a fake async function using setTimeout to simulate a delay inside utils.js. Just below where we make our add function, let's make one called asyncAdd. It'll essentially have the same features, but it'll use setTimeout and it'll have a callback to simulate a delay. Now in the real world, this delay might be a database request or...