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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
# 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 = []
class << self
attr_accessor :use_nil_span
end
def self.initialized?
true
end
def self.utc_now
Time.now.utc
end
def self.get_current_scope
self
end
def self.get_span
use_nil_span ? nil : DummySpan
end
def self.with_child_span(**args, &block)
SPAN_OPS << args[:op]
yield DummySpan
end
def self.configure_scope(&block)
yield DummyScope
end
def self.clear_all
SPAN_DATA.clear
SPAN_DESCRIPTIONS.clear
SPAN_OPS.clear
TRANSACTION_NAMES.clear
end
module DummySpan
module_function
def set_data(key, value)
Sentry::SPAN_DATA << [key, value]
end
def set_description(description)
Sentry::SPAN_DESCRIPTIONS << description
end
def start_child(op:)
SPAN_OPS << op
end
def finish
# no-op
end
end
module DummyScope
module_function
def set_transaction_name(name)
TRANSACTION_NAMES << name
end
end
end
|