change raven syntax
This commit is contained in:
parent
185067265c
commit
1e04b52f5f
|
@ -1,15 +1,10 @@
|
|||
|
||||
# require 'sentry-raven'
|
||||
# require 'raven'
|
||||
|
||||
module Travis::API::V3
|
||||
class Router
|
||||
include Travis::API::V3
|
||||
attr_accessor :routes, :metrics_processor
|
||||
|
||||
# Raven.configure do |config|
|
||||
# config.dsn = Travis.config.sentry.dsn
|
||||
# end
|
||||
|
||||
def initialize(routes = Routes)
|
||||
@routes = routes
|
||||
@metrics_processor = Metrics::Processor.new
|
||||
|
@ -25,7 +20,6 @@ module Travis::API::V3
|
|||
env_params = params(env)
|
||||
factory, params = routes.factory_for(env['REQUEST_METHOD'.freeze], env['PATH_INFO'.freeze])
|
||||
|
||||
|
||||
raise NotFound unless factory
|
||||
metrics.name_after(factory)
|
||||
|
||||
|
@ -43,18 +37,16 @@ module Travis::API::V3
|
|||
metrics.success(status: response[0])
|
||||
response
|
||||
rescue Error => error
|
||||
Raven.capture do
|
||||
# 1 / 0
|
||||
metrics.tick(:service)
|
||||
Raven.capture_exception(error)
|
||||
metrics.tick(:service)
|
||||
|
||||
result = Result.new(access_control, :error, error)
|
||||
response = V3.response(result.render(env_params, env), {}, status: error.status)
|
||||
result = Result.new(access_control, :error, error)
|
||||
response = V3.response(result.render(env_params, env), {}, status: error.status)
|
||||
|
||||
metrics.tick(:rendered)
|
||||
metrics.failure(status: error.status)
|
||||
metrics.tick(:rendered)
|
||||
metrics.failure(status: error.status)
|
||||
|
||||
response
|
||||
end
|
||||
response
|
||||
end
|
||||
|
||||
def render(result, env_params, env)
|
||||
|
|
|
@ -13,17 +13,30 @@ describe Travis::API::V3::ServiceIndex, set_app: true do
|
|||
end
|
||||
|
||||
describe Travis::API::V3::Router, set_app: true do
|
||||
class FixRaven < Struct.new(:app)
|
||||
def call(env)
|
||||
requested_at = env['requested_at']
|
||||
env['requested_at'] = env['requested_at'].to_s if env.key?('requested_at')
|
||||
app.call(env)
|
||||
rescue Exception => e
|
||||
env['requested_at'] = requested_at
|
||||
raise e
|
||||
end
|
||||
end
|
||||
|
||||
class TestError < StandardError
|
||||
end
|
||||
|
||||
before do
|
||||
set_app Raven::Rack.new(FixRaven.new(app))
|
||||
Travis.config.sentry.dsn = "test"
|
||||
Travis::Api::App.setup_monitoring
|
||||
end
|
||||
|
||||
it 'Sentry captures router errors' do
|
||||
error = TestError.new('Konstantin broke all the thingz!')
|
||||
Travis::API::V3::Models::Repository.any_instance.stubs(:service).raises(error)
|
||||
Raven.expects(:capture).with do |event|
|
||||
Raven.expects(:send_event).with do |event|
|
||||
event.message == "#{error.class}: #{error.message}"
|
||||
end
|
||||
expect { get "/v3/repo/1" }.to raise_error(TestError)
|
||||
|
|
Loading…
Reference in New Issue
Block a user