男、これらの解決策のどれも私のために働いていませんでした。
Pistosのソリューションは近づき、機能仕様で機能しましjs: true
たが、ヘッドレスの場合は失敗しました。
この以下の解決策は、ヘッドレスとスペックの両方で機能します。js: true
spec / support / when_authenticated.rb
RSpec.shared_context 'When authenticated' do
background do
authenticate
end
def authenticate
if page.driver.browser.respond_to?(:authorize)
# When headless
page.driver.browser.authorize(username, password)
else
# When javascript test
visit "http://#{username}:#{password}@#{host}:#{port}/"
end
end
def username
# Your value here. Replace with string or config location
Rails.application.secrets.http_auth_username
end
def password
# Your value here. Replace with string or config location
Rails.application.secrets.http_auth_password
end
def host
Capybara.current_session.server.host
end
def port
Capybara.current_session.server.port
end
end
次に、あなたのスペックでは:
feature 'User does something' do
include_context 'When authenticated'
# test examples
end