CapybaraでHTTP Headerに値を追加する


RSpecでHTTP Headerにある値を編集してテストしたいとき、こうすると良いみたいです。

Capybara.current_session.driver.header('HOGE', 'fuga')

ただし、driverがpoltergeistの場合はメソッドが違う模様。

Capybara.current_session.driver.add_header('HOGE', 'fuga')

なのでこんな感じにしました。

RSpec.configure do |config|
  config.before(:each, type: :feature) do
    driver = Capybara.current_session.driver
    driver.instance_of?(Capybara::Poltergeist::Driver) ? driver.add_header('HOGE', 'fuga') : driver.header('HOGE', 'fuga')
  end
end

もっとスマートな方法あったら教えて下さい

参考