Jestem małpiąca łatką Capybara :: Sesja z metodą set_headers, która przypisuje atrybutowi Capybara :: RackTest :: Browser (który zmieniłem z attr_reader na attr_accessor).Jaki jest najlepszy sposób ustawiania niestandardowych nagłówków żądań podczas korzystania z Capybara w specyfikacji żądań RSpec?
Plastry:
class Capybara::RackTest::Browser
attr_accessor :options
end
class Capybara::Session
def set_headers(headers)
if driver.browser.respond_to?(:options=) #because we've monkey patched it above
options = driver.browser.options
if options.nil? || options[:headers].nil?
options ||= {}
options[:headers] = headers
else
options[:headers].merge!(headers)
end
else
raise Capybara::NotSupportedByDriverError
end
end
end
Moim życzeniem specyfikacji, robię:
page.set_headers("REMOTE_ADDR" => "1.2.3.4")
visit root_path
To działa, ale zastanawiam się, czy jest jakiś lepszy sposób, że wydaje się nieco przesadny, aby móc ustawić niestandardowy remote_ip/remote_addr na żądanie. jakieś pomysły?