spec/spec_helper.rb in bugsnag-api-2.1.0 vs spec/spec_helper.rb in bugsnag-api-2.1.1

- old
+ new

@@ -21,12 +21,31 @@ # VCR VCR.configure do |c| c.cassette_library_dir = "spec/cassettes" c.hook_into :webmock c.configure_rspec_metadata! + + USER_AGENT_REGEX = /\ABugsnag API Ruby Gem \d+\.\d+\.\d+\z/ + HEADERS_SET_BY_BUGSNAG = ["Content-Type", "X-Version", "X-Bugsnag-Api", "Authorization"] + + user_agent_valid = lambda do |values| + return false if values.length != 1 + + values.first.match(USER_AGENT_REGEX) + end + + header_matcher = lambda do |request_a, request_b| + return false unless user_agent_valid.(request_a.headers["User-Agent"]) + return false unless user_agent_valid.(request_b.headers["User-Agent"]) + + HEADERS_SET_BY_BUGSNAG.all? do |header| + request_a.headers[header] == request_b.headers[header] + end + end + c.default_cassette_options = { - :record => ENV['TRAVIS'] ? :none : :once, - :match_requests_on => [:method, :path] + :record => ENV['CI'] ? :none : :once, + :match_requests_on => [:method, :path, header_matcher] } c.filter_sensitive_data("https://api.bugsnag.com") { test_bugsnag_endpoint } c.filter_sensitive_data("api.bugsnag.com") { URI.parse(Bugsnag::Api.configuration.endpoint).host } c.filter_sensitive_data("BUGSNAG_AUTH_TOKEN") { test_bugsnag_auth_token }