spec/spec_helper.rb in bugsnag-2.5.1 vs spec/spec_helper.rb in bugsnag-2.6.0

- old
+ new

@@ -1,32 +1,52 @@ require 'bugsnag' +require 'webmock/rspec' +require 'rspec/expectations' + class BugsnagTestException < RuntimeError; end def get_event_from_payload(payload) - expect(payload[:events].size).to eq(1) - payload[:events].first + expect(payload["events"].size).to eq(1) + payload["events"].first end def get_exception_from_payload(payload) event = get_event_from_payload(payload) - expect(event[:exceptions].size).to eq(1) - event[:exceptions].last + expect(event["exceptions"].size).to eq(1) + event["exceptions"].last end +def notify_test_exception(*args) + Bugsnag.notify(RuntimeError.new("test message"), *args) +end + RSpec.configure do |config| config.order = "random" - + config.before(:each) do + WebMock.stub_request(:post, "https://notify.bugsnag.com/") + Bugsnag.instance_variable_set(:@configuration, Bugsnag::Configuration.new) Bugsnag.configure do |config| config.api_key = "c9d60ae4c7e70c4b6c4ebd3e8056d2b8" config.release_stage = "production" + config.delivery_method = :synchronous # silence logger in tests config.logger = Logger.new(StringIO.new) end end - + config.after(:each) do Bugsnag.configuration.clear_request_data + end +end + +def have_sent_notification(&matcher) + have_requested(:post, "https://notify.bugsnag.com/").with do |request| + if matcher + matcher.call JSON.parse(request.body) + else + true + end end end