Now, it is true that I assumed you had not done anything like that yet. Is that assumption incorrect? If so I apologize and you can disregard everything I've said.
This current roommate and I have an understanding that if either of us are having anyone over, we let the other person know who and for how long.
Which is what he did. He approached me, telling me he was having a friend over 'tomorrow' (now yesterday) for a few hours in the evening. Then tomorrow comes around and it's his girlfriend from Japan (he is from Japan also) arriving with her luggage. She got here before he did and so I asked her how long she was staying. Told me she was staying here with [Roommate] until October. He comes home, he confirms. I ask the obvious question of why he lied, he says "I don't know".
Legally speaking, as
@warpus mentioned, I can go to the landlord and get them to either kick the girlfriend out or make them pay a portion of the rent, but this also comes with the realization that I'll have acted against my roommate's interests. People don't like that, and it's something I've done in the past when talking to the person themselves doesn't pan out. The usual response is "I'll do what I want" or some variation of that, which is fair I suppose, but ultimately non-ideal for the person/people you're living with and on a lease with. The issue with going over the roommate's head is that this would most likely create a hostile living environment and that's not something I can 'afford'. I live in this neighbourhood around 200-300 dollars below the market rate for an equivalent living space and it's essentially in the middle between all of my medical necessities. Needing to move because of a bad living situation would also entail no longer being in Vancouver and thus no longer being in my medical program or anywhere near my specialists/doctors. Avoiding anything that would outright be in resistance to the person I'm living with is the 'safe' choice (IMO).
So the only realistic option available to me is talking to the roommate, and that's something I've done. His girlfriend didn't bring money for a hotel/AirBnB and their plan hinged on her spending her time here in this apartment. "She's here now and she's staying." This is about par for the course when it comes to my experiences living in Vancouver; I've gone through probably 10~ different roommates in 3 years and the usual response is "deal with it" if you don't like what the person you're living with is doing or if they've lied about something. That being said, I've almost exclusively lived with foreigners who are only here in Canada temporarily. My only experience with living with someone who actually intends on staying in Canada/was born here was someone dependent on drugs who apologized just before moving out and going clean. So my experiences here have been less than ideal (which is where my comment about them "not eating my food is the gold standard" came from).
I don't blame those here temporarily for having that approach. They're only here for a year before needing to go back to their home country. I probably wouldn't waste my time trying to accommodate the person I'm living with either. It just sucks for me as the one not being accommodated.
That was a far longer explanation than I wanted to give over an off-hand complaint.

Feel loved!