Я строю REST API на Rails, и я пытаюсь использовать RSpec для его проверки. Я использую довольно шаблонный код аутентификации:Тестирование Rails API REST с RSpec
def authenticate_user_from_token
pp 'authenticate_user_from_token'
pp request.headers.inspect
user = authenticate_with_http_token do |token, options|
pp token
user_id = options[:user_id]
user = user_id && Eater.find_by_id(user_id)
if user && Devise.secure_compare(user.auth_token, token)
user
else
nil
end
end
@current_user = user
end
Это отлично работает, если я посылаю запросы с завитком, но я не могу понять, как передать маркер аутентификации в Rspec. Мой основной запрос заключается в следующем:
get '/api/1/users/1'
Я попытался установить маркер, используя метод заголовка:
header 'Authorization: Token token', @token
Это не работает. Я также попытался передать его методу получения, как я видел в некоторых примерах:
get '/api/1/users/1', :authorization => @token
Также не работает. Каков правильный способ сделать это?
Это спецификация контроллера или спецификация запроса? –
Запрос. Я пытаюсь проверить API, используя его как клиент. –