Capybara + Headless Chrome (System Spec) で Basic認証 を通過する方法

結論

  • usernamepassword のところは実際には環境変数を使ったほうがいいでしょう
  • visit_with_http_auth root_path における root_path はアクセスしたいページの path を入れましょう
require 'rails_helper'

def visit_with_http_auth(path)
  username = 'MY_USERNAME'
  password = 'MY_PASSWORD'
  visit "http://#{username}:#{password}@#{Capybara.current_session.server.host}:#{Capybara.current_session.server.port}#{path}"
end

RSpec.feature 'ベーシック認証', type: :system do
  scenario '登録されているIDとパスで通過できること' do
    visit_with_http_auth root_path
    expect(page).to have_content '表示されててほしい文字列'
  end
end

参考

Powered by はてなブログ