Установить заголовок в запросе RSpec 3

Я пытаюсь установить заголовок для некоторых запросов RSpec, которые требуют аутентификации. ЗаголовокACCESS_TOKEN, Независимо от того, как я пытаюсь установить заголовок, он никогда не устанавливается. Я знаю, что приложение работает, потому что я могу проверить его вручную, я просто не могу заставить работать тесты rspec. Смотрите полный исходный код и тесты для этой проблемы здесь:https://github.com/lightswitch05/rspec-set-header-example

Поскольку аутентификация используется в большинстве моих спецификаций запросов, я создал вспомогательный вспомогательный модуль для извлечения токена доступа и установки его в заголовок. Ниже приводится краткое описание того, как я пытаюсь установить заголовок, посмотрите все, что я пробовал вполный источник

# my_app/spec/support/session_helper.rb
module SessionHelper
  def retrieve_access_token
    post api_v1_session_path({email: '[email protected]', password: 'poor_password'})

    expect(response.response_code).to eq 201
    expect(response.body).to match(/"access_token":".{20}"/)
    parsed = JSON(response.body)
    token = parsed['access_token']['access_token']

    @request.headers['HTTP_ACCESS_TOKEN'] = token
  end
end

пример спецификации запроса, который использует этот помощник и должен работать, но всегда терпит неудачу, потому что заголовок никогда не устанавливается:

# my_app/spec/requests/posts_spec.rb
# ...
context "create" do
  it "creates a post" do
    retrieve_access_token
    post = FactoryGirl.build(:post)

    post api_v1_posts_path(
      post: {
        title: post.title,
        content: post.content
      }
    )

    expect(response.body).to include('"id":')
    expect(response.body).to include('"title":"' + post.title + '"')
    expect(response.body).to include('"content":"' + post.content + '"')
    expect(response.response_code).to eq 201
  end
end

Я знаю, я могу вручную установить заголовок в отдельныхget а такжеpost запросы - но это не поддерживаемое решение для авторизации всего API. Представьте, что нужно менять каждый тест, если имя заголовка изменилось незначительно.

Ответы на вопрос(4)

Ваш ответ на вопрос