Skip to content

Commit

Permalink
refactor: the default tracer is nameless
Browse files Browse the repository at this point in the history
  • Loading branch information
mwear committed Oct 16, 2020
1 parent 8b73cc0 commit 5b68f28
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 19 deletions.
4 changes: 2 additions & 2 deletions api/lib/opentelemetry.rb
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ def tracer_provider

# @return [Trace::Tracer] delegates to the registered tracer provider and
# returns a tracer with the given name and version. If called without without
# arguments, it returns a tracer named 'default'.
def tracer(name = 'default', version = nil)
# arguments, it returns an unnamed default tracer.
def tracer(name = nil, version = nil)
tracer_provider.tracer(name, version)
end

Expand Down
43 changes: 26 additions & 17 deletions api/test/opentelemetry_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -33,32 +33,41 @@
describe '.tracer' do
let(:mock_provider) { MiniTest::Mock.new }

before do
OpenTelemetry.tracer_provider = mock_provider
end

after do
# Ensure we don't leak custom tracer factories and tracers to other tests
OpenTelemetry.tracer_provider = nil
end

it 'delegates to tracer provider with default name' do
mock_provider.expect(:tracer, Object.new, ['default', nil])
_ = OpenTelemetry.tracer
mock_provider.verify
describe 'default tracer' do
it 'returns the same instance when accessed multiple times' do
_(OpenTelemetry.tracer).must_equal(OpenTelemetry.tracer)
end
end

it 'delegates to tracer provider with provided name' do
mock_provider.expect(:tracer, Object.new, ['foo', nil])
_ = OpenTelemetry.tracer('foo')
mock_provider.verify
end
describe 'delegation' do
before do
OpenTelemetry.tracer_provider = mock_provider
end

it 'delegates to tracer provider with provided name and version' do
mock_provider.expect(:tracer, Object.new, ['foo', '0.4.0'])
_ = OpenTelemetry.tracer('foo', '0.4.0')
mock_provider.verify
it 'delegates to tracer provider' do
mock_provider.expect(:tracer, Object.new, [nil, nil])
_ = OpenTelemetry.tracer
mock_provider.verify
end

it 'delegates to tracer provider with provided name' do
mock_provider.expect(:tracer, Object.new, ['foo', nil])
_ = OpenTelemetry.tracer('foo')
mock_provider.verify
end

it 'delegates to tracer provider with provided name and version' do
mock_provider.expect(:tracer, Object.new, ['foo', '0.4.0'])
_ = OpenTelemetry.tracer('foo', '0.4.0')
mock_provider.verify
end
end

end

describe '.logger' do
Expand Down

0 comments on commit 5b68f28

Please sign in to comment.