-
Notifications
You must be signed in to change notification settings - Fork 205
Expand file tree
/
Copy pathhelpers.rb
More file actions
37 lines (34 loc) · 1.16 KB
/
helpers.rb
File metadata and controls
37 lines (34 loc) · 1.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# encoding: utf-8
# frozen_string_literal: true
module Warden
module Test
# A collection of test helpers for testing full stack rack applications using Warden
# These provide the ability to login and logout on any given request
# Note: During the teardown phase of your specs you should include: Warden.test_reset!
module Helpers
def self.included(_base)
::Warden.test_mode!
end
# A helper method that will perform a login of a user in warden for the next request.
# Provide it the same options as you would to Warden::Proxy#set_user
# @see Warden::Proxy#set_user
# @api public
def login_as(user, opts = {})
Warden.on_next_request do |proxy|
opts[:event] ||= :authentication
proxy.set_user(user, opts)
end
end
# Logs out a user from the session.
# Without arguments, all users will be logged out
# Provide a list of scopes to only log out users with that scope.
# @see Warden::Proxy#logout
# @api public
def logout(*scopes)
Warden.on_next_request do |proxy|
proxy.logout(*scopes)
end
end
end
end
end