Now that we have a nice abstraction for our tests’s Socket.IO clients, we no longer need our tests to manually wait for connections to be established. (The abstraction does it for us.) We make a final pass through our test code to remove unneeded code. That brings us to the end of the chapter.