It’s time to work on the client side of our Socket.IO implementation. We decide to start by implementing an abstraction layer over Socket.IO for ease of future testing and design changes. The question: how do we test it? Our client tests run in the browser, which is tightly sandboxed. How do we start and stop the test server? We start working on the problem.