1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
# frozen_string_literal: true
# A stub for the Sentry agent, so we can make assertions about how it is used
if defined?(Sentry)
raise "Expected Sentry to be undefined, so that we could define a stub for it."
end
module Sentry
SPAN_OPS = []
SPAN_DATA = []
SPAN_DESCRIPTIONS = []
TRANSACTION_NAMES = []
def self.initialized?
true
end
def self.utc_now
Time.now.utc
end
def self.with_child_span(**args, &block)
SPAN_OPS << args[:op]
yield DummySpan.new
end
def self.configure_scope(&block)
yield DummyScope.new
end
def self.clear_all
SPAN_DATA.clear
SPAN_DESCRIPTIONS.clear
SPAN_OPS.clear
TRANSACTION_NAMES.clear
end
class DummySpan
def set_data(key, value)
Sentry::SPAN_DATA << [key, value]
end
def set_description(description)
Sentry::SPAN_DESCRIPTIONS << description
end
def finish
# no-op
end
end
class DummyScope
def set_transaction_name(name)
TRANSACTION_NAMES << name
end
end
end
|