ankane/pretender

current_user does not change after signing out user, signing in different user

mkilling opened this issue · 1 comments

I‘m using pretender 0.3.1, rails 5.1.3 and devise 4.3.0. In one before_action I log out the current user and log in a different user. I am not impersonating anyone.

Unfortunately, current_user does not change, even though true_user does:

before_user = current_user
sign_out(current_user)
# at this point I expect current_user to be nil, but it is still `before_user`
sign_in(another_user)
# at this point I expect current_user to be `another_user`, but it is still `before_user`

From a quick glance at the code I think that pretender caches current_user in an instance variable, causing this unexpected behaviour.

Hey @mkilling, thanks for the detailed report. This should be fixed on master.