In case of should not remove user, we're going to do some similar stuff, we're just going to tweak userId. I can actually copy the contents of our first test case, paste it into the second one, and all we need to do is make a few tweaks. I'm going to change the ID to an invalid ID like 99. We are still going to call removeUser with the ID. In this case, though instead of expecting user to have an id property, we're going to expect that user does not exist using toNotExist. Next up, we're going to expect the length has not changed, and we're going to make sure that the length still equals 3:
it ('should not remove user', () => {
var userId = '99';
var user = users.removeUser(userId);
expect(user).toBe(userId);
expect(users.users.length).toBe(3);
});
Now I can go ahead and save the users.test file. This is going to restart everything inside nodemon, and what we should get is a test suite that's passing. It looks like it did already run although the content didn't change so it's a little hard to figure out if anything happened. I'm going to shut that down and run npm test just to verify, and right here you can see all 12 test cases are passing:

We now have all of the methods we need to persist a user across the different event listeners; whether they're sending a message, a location message, whether they're connecting or leaving, we're going to be able to keep track of them and send the right thing to the right people.