In my test I want multiple users to be created and the last one logged in. So here is my code:
test "add_answer to ad" do
user = newuser
text = "mytext mytext mytext mytext mytext mytext mytext"
post :savenew, cityId: City.last.id, text: text , maxPrice: "1", subscribe: false
$stdout.puts "#{assigns(:current_user)} CURUSER"
@ad = assigns(:ad)
user = newuser(0, 'new2@new.com')
post :add_answer, id: @ad.id, text: text
$stdout.puts "#{assigns(:current_user)} CURFIRM"
assert_equal "Ответ успешно добавлен.", flash[:success]
user.destroy
end
How I create new users:
def newuser(rank = 2, email = 'new@new.com')
user = User.new
user.password = '123456'
user.newpassword = true
user.email = email
user.contact = 'new_user'
case rank
when 0
user.urank = URank.firm.id
when 1
user.urank = URank.admin.id
when 2
user.urank = URank.user.id
end
user.save
$stdout.puts "#{user} NEW"
this_controller = @controller
@controller = MainController.new
get :logout
post :login, email: email, pass: '123456'
@controller = this_controller
return user
end
And my logout:
if cookies[:id]
Rails.cache.delete(cookies.signed[:id][0])
cookies.delete(:id)
end
@current_user = nil
(There is no cache it Test)
So as a result when I create new users I can see this:
As you can see the first user is just another user and second == first. What is happening there and how can I fix this? Thank you!
Aucun commentaire:
Enregistrer un commentaire