Skip to content

Commit

Permalink
Adds shared example testing for service name setting
Browse files Browse the repository at this point in the history
  • Loading branch information
zarirhamza committed Apr 25, 2023
1 parent 8cc9c2a commit 7bcf3b0
Show file tree
Hide file tree
Showing 10 changed files with 47 additions and 243 deletions.
Original file line number Diff line number Diff line change
@@ -1,31 +1,6 @@
require 'datadog/tracing/contrib/active_record/configuration/settings'
require 'datadog/tracing/contrib/service_name_settings_examples'

RSpec.describe Datadog::Tracing::Contrib::ActiveRecord::Configuration::Settings do
describe 'Option `service_name`' do
context 'when with service_name' do # default to include base
it do
expect(described_class.new(service_name: 'test-service').service_name).to eq('test-service')
end
end

context 'when without service_name v0' do # default to include base
it do
with_modified_env DD_TRACE_SPAN_ATTRIBUTE_SCHEMA: 'v0' do
expect(described_class.new.service_name).to eq('defaultdb')
end
end
end

context 'when without service_name v1' do # default to include base
it do
with_modified_env DD_TRACE_SPAN_ATTRIBUTE_SCHEMA: 'v1' do
expect(described_class.new.service_name).to eq('rspec')
end
end
end
end

def with_modified_env(options = {}, &block)
ClimateControl.modify(options, &block)
end
it_behaves_like 'service name setting', 'defaultdb'
end
Original file line number Diff line number Diff line change
@@ -1,31 +1,6 @@
require 'datadog/tracing/contrib/aws/configuration/settings'
require 'datadog/tracing/contrib/service_name_settings_examples'

RSpec.describe Datadog::Tracing::Contrib::Aws::Configuration::Settings do
describe 'Option `service_name`' do
context 'when with service_name' do # default to include base
it do
expect(described_class.new(service_name: 'test-service').service_name).to eq('test-service')
end
end

context 'when without service_name v0' do # default to include base
it do
with_modified_env DD_TRACE_SPAN_ATTRIBUTE_SCHEMA: 'v0' do
expect(described_class.new.service_name).to eq('aws')
end
end
end

context 'when without service_name v1' do # default to include base
it do
with_modified_env DD_TRACE_SPAN_ATTRIBUTE_SCHEMA: 'v1' do
expect(described_class.new.service_name).to eq('rspec')
end
end
end
end

def with_modified_env(options = {}, &block)
ClimateControl.modify(options, &block)
end
it_behaves_like 'service name setting', 'aws'
end
Original file line number Diff line number Diff line change
@@ -1,31 +1,6 @@
require 'datadog/tracing/contrib/dalli/configuration/settings'
require 'datadog/tracing/contrib/service_name_settings_examples'

RSpec.describe Datadog::Tracing::Contrib::Dalli::Configuration::Settings do
describe 'Option `service_name`' do
context 'when with service_name' do # default to include base
it do
expect(described_class.new(service_name: 'test-service').service_name).to eq('test-service')
end
end

context 'when without service_name v0' do # default to include base
it do
with_modified_env DD_TRACE_SPAN_ATTRIBUTE_SCHEMA: 'v0' do
expect(described_class.new.service_name).to eq('memcached')
end
end
end

context 'when without service_name v1' do # default to include base
it do
with_modified_env DD_TRACE_SPAN_ATTRIBUTE_SCHEMA: 'v1' do
expect(described_class.new.service_name).to eq('rspec')
end
end
end
end

def with_modified_env(options = {}, &block)
ClimateControl.modify(options, &block)
end
it_behaves_like 'service name setting', 'memcached'
end
Original file line number Diff line number Diff line change
@@ -1,31 +1,6 @@
require 'datadog/tracing/contrib/elasticsearch/configuration/settings'
require 'datadog/tracing/contrib/service_name_settings_examples'

RSpec.describe Datadog::Tracing::Contrib::Elasticsearch::Configuration::Settings do
describe 'Option `service_name`' do
context 'when with service_name' do # default to include base
it do
expect(described_class.new(service_name: 'test-service').service_name).to eq('test-service')
end
end

context 'when without service_name v0' do # default to include base
it do
with_modified_env DD_TRACE_SPAN_ATTRIBUTE_SCHEMA: 'v0' do
expect(described_class.new.service_name).to eq('elasticsearch')
end
end
end

context 'when without service_name v1' do # default to include base
it do
with_modified_env DD_TRACE_SPAN_ATTRIBUTE_SCHEMA: 'v1' do
expect(described_class.new.service_name).to eq('rspec')
end
end
end
end

def with_modified_env(options = {}, &block)
ClimateControl.modify(options, &block)
end
it_behaves_like 'service name setting', 'elasticsearch'
end
Original file line number Diff line number Diff line change
@@ -1,31 +1,6 @@
require 'datadog/tracing/contrib/ethon/configuration/settings'
require 'datadog/tracing/contrib/service_name_settings_examples'

RSpec.describe Datadog::Tracing::Contrib::Ethon::Configuration::Settings do
describe 'Option `service_name`' do
context 'when with service_name' do # default to include base
it do
expect(described_class.new(service_name: 'test-service').service_name).to eq('test-service')
end
end

context 'when without service_name v0' do # default to include base
it do
with_modified_env DD_TRACE_SPAN_ATTRIBUTE_SCHEMA: 'v0' do
expect(described_class.new.service_name).to eq('ethon')
end
end
end

context 'when without service_name v1' do # default to include base
it do
with_modified_env DD_TRACE_SPAN_ATTRIBUTE_SCHEMA: 'v1' do
expect(described_class.new.service_name).to eq('rspec')
end
end
end
end

def with_modified_env(options = {}, &block)
ClimateControl.modify(options, &block)
end
it_behaves_like 'service name setting', 'ethon'
end
Original file line number Diff line number Diff line change
@@ -1,31 +1,6 @@
require 'datadog/tracing/contrib/excon/configuration/settings'
require 'datadog/tracing/contrib/service_name_settings_examples'

RSpec.describe Datadog::Tracing::Contrib::Excon::Configuration::Settings do
describe 'Option `service_name`' do
context 'when with service_name' do # default to include base
it do
expect(described_class.new(service_name: 'test-service').service_name).to eq('test-service')
end
end

context 'when without service_name v0' do # default to include base
it do
with_modified_env DD_TRACE_SPAN_ATTRIBUTE_SCHEMA: 'v0' do
expect(described_class.new.service_name).to eq('excon')
end
end
end

context 'when without service_name v1' do # default to include base
it do
with_modified_env DD_TRACE_SPAN_ATTRIBUTE_SCHEMA: 'v1' do
expect(described_class.new.service_name).to eq('rspec')
end
end
end
end

def with_modified_env(options = {}, &block)
ClimateControl.modify(options, &block)
end
it_behaves_like 'service name setting', 'excon'
end
Original file line number Diff line number Diff line change
@@ -1,31 +1,6 @@
require 'datadog/tracing/contrib/faraday/configuration/settings'
require 'datadog/tracing/contrib/service_name_settings_examples'

RSpec.describe Datadog::Tracing::Contrib::Faraday::Configuration::Settings do
describe 'Option `service_name`' do
context 'when with service_name' do # default to include base
it do
expect(described_class.new(service_name: 'test-service').service_name).to eq('test-service')
end
end

context 'when without service_name v0' do # default to include base
it do
with_modified_env DD_TRACE_SPAN_ATTRIBUTE_SCHEMA: 'v0' do
expect(described_class.new.service_name).to eq('faraday')
end
end
end

context 'when without service_name v1' do # default to include base
it do
with_modified_env DD_TRACE_SPAN_ATTRIBUTE_SCHEMA: 'v1' do
expect(described_class.new.service_name).to eq('rspec')
end
end
end
end

def with_modified_env(options = {}, &block)
ClimateControl.modify(options, &block)
end
it_behaves_like 'service name setting', 'faraday'
end
Original file line number Diff line number Diff line change
@@ -1,31 +1,6 @@
require 'datadog/tracing/contrib/grpc/configuration/settings'
require 'datadog/tracing/contrib/service_name_settings_examples'

RSpec.describe Datadog::Tracing::Contrib::GRPC::Configuration::Settings do
describe 'Option `service_name`' do
context 'when with service_name' do # default to include base
it do
expect(described_class.new(service_name: 'test-service').service_name).to eq('test-service')
end
end

context 'when without service_name v0' do # default to include base
it do
with_modified_env DD_TRACE_SPAN_ATTRIBUTE_SCHEMA: 'v0' do
expect(described_class.new.service_name).to eq('grpc')
end
end
end

context 'when without service_name v1' do # default to include base
it do
with_modified_env DD_TRACE_SPAN_ATTRIBUTE_SCHEMA: 'v1' do
expect(described_class.new.service_name).to eq('rspec')
end
end
end
end

def with_modified_env(options = {}, &block)
ClimateControl.modify(options, &block)
end
it_behaves_like 'service name setting', 'grpc'
end
Original file line number Diff line number Diff line change
@@ -1,31 +1,6 @@
require 'datadog/tracing/contrib/http/configuration/settings'
require 'datadog/tracing/contrib/service_name_settings_examples'

RSpec.describe Datadog::Tracing::Contrib::HTTP::Configuration::Settings do
describe 'Option `service_name`' do
context 'when with service_name' do # default to include base
it do
expect(described_class.new(service_name: 'test-service').service_name).to eq('test-service')
end
end

context 'when without service_name v0' do # default to include base
it do
with_modified_env DD_TRACE_SPAN_ATTRIBUTE_SCHEMA: 'v0' do
expect(described_class.new.service_name).to eq('net/http')
end
end
end

context 'when without service_name v1' do # default to include base
it do
with_modified_env DD_TRACE_SPAN_ATTRIBUTE_SCHEMA: 'v1' do
expect(described_class.new.service_name).to eq('rspec')
end
end
end
end

def with_modified_env(options = {}, &block)
ClimateControl.modify(options, &block)
end
it_behaves_like 'service name setting', 'net/http'
end
29 changes: 29 additions & 0 deletions spec/datadog/tracing/contrib/service_name_settings_examples.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
RSpec.shared_examples 'service name setting' do |default_service_name_v0|
describe 'Option `service_name`' do
context 'when with service_name' do # default to include base
it do
expect(described_class.new(service_name: 'test-service').service_name).to eq('test-service')
end
end

context 'when without service_name v0' do # default to include base
it do
with_modified_env DD_TRACE_SPAN_ATTRIBUTE_SCHEMA: 'v0' do
expect(described_class.new.service_name).to eq(default_service_name_v0)
end
end
end

context 'when without service_name v1' do # default to include base
it do
with_modified_env DD_TRACE_SPAN_ATTRIBUTE_SCHEMA: 'v1' do
expect(described_class.new.service_name).to eq('rspec')
end
end
end
end

def with_modified_env(options = {}, &block)
ClimateControl.modify(options, &block)
end
end

0 comments on commit 7bcf3b0

Please sign in to comment.