Our client code uses Socket.IO to talk to our server. However, most of our client-side tests don’t want our code to talk to the server, so we inject a test double to prevent the network communication from happening. But using test doubles makes our tests less reliable and our code harder to change. Is there a better option? We investigate.