From 7bcf3b02c2c751b23f1ac3d5fc99b4e2a0e22b07 Mon Sep 17 00:00:00 2001 From: Zarir Hamza Date: Tue, 25 Apr 2023 17:12:37 -0400 Subject: [PATCH] Adds shared example testing for service name setting --- .../configuration/configuration_spec.rb | 29 ++----------------- .../aws/configuration/configuration_spec.rb | 29 ++----------------- .../dalli/configuration/configuration_spec.rb | 29 ++----------------- .../configuration/configuration_spec.rb | 29 ++----------------- .../ethon/configuration/configuration_spec.rb | 29 ++----------------- .../excon/configuration/configuration_spec.rb | 29 ++----------------- .../configuration/configuration_spec.rb | 29 ++----------------- .../grpc/configuration/configuration_spec.rb | 29 ++----------------- .../http/configuration/configuration_spec.rb | 29 ++----------------- .../contrib/service_name_settings_examples.rb | 29 +++++++++++++++++++ 10 files changed, 47 insertions(+), 243 deletions(-) create mode 100644 spec/datadog/tracing/contrib/service_name_settings_examples.rb diff --git a/spec/datadog/tracing/contrib/active_record/configuration/configuration_spec.rb b/spec/datadog/tracing/contrib/active_record/configuration/configuration_spec.rb index 2f494a5aa22..27c73eaf749 100644 --- a/spec/datadog/tracing/contrib/active_record/configuration/configuration_spec.rb +++ b/spec/datadog/tracing/contrib/active_record/configuration/configuration_spec.rb @@ -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 diff --git a/spec/datadog/tracing/contrib/aws/configuration/configuration_spec.rb b/spec/datadog/tracing/contrib/aws/configuration/configuration_spec.rb index a474523a7ca..e51e26a6478 100644 --- a/spec/datadog/tracing/contrib/aws/configuration/configuration_spec.rb +++ b/spec/datadog/tracing/contrib/aws/configuration/configuration_spec.rb @@ -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 diff --git a/spec/datadog/tracing/contrib/dalli/configuration/configuration_spec.rb b/spec/datadog/tracing/contrib/dalli/configuration/configuration_spec.rb index 5c13dff5cec..3ed0af5b6bb 100644 --- a/spec/datadog/tracing/contrib/dalli/configuration/configuration_spec.rb +++ b/spec/datadog/tracing/contrib/dalli/configuration/configuration_spec.rb @@ -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 diff --git a/spec/datadog/tracing/contrib/elasticsearch/configuration/configuration_spec.rb b/spec/datadog/tracing/contrib/elasticsearch/configuration/configuration_spec.rb index 0acf244d59b..e0eb23a2e20 100644 --- a/spec/datadog/tracing/contrib/elasticsearch/configuration/configuration_spec.rb +++ b/spec/datadog/tracing/contrib/elasticsearch/configuration/configuration_spec.rb @@ -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 diff --git a/spec/datadog/tracing/contrib/ethon/configuration/configuration_spec.rb b/spec/datadog/tracing/contrib/ethon/configuration/configuration_spec.rb index ac5cd6ff9da..9bf328194c3 100644 --- a/spec/datadog/tracing/contrib/ethon/configuration/configuration_spec.rb +++ b/spec/datadog/tracing/contrib/ethon/configuration/configuration_spec.rb @@ -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 diff --git a/spec/datadog/tracing/contrib/excon/configuration/configuration_spec.rb b/spec/datadog/tracing/contrib/excon/configuration/configuration_spec.rb index ff3d5e46644..05fa382f739 100644 --- a/spec/datadog/tracing/contrib/excon/configuration/configuration_spec.rb +++ b/spec/datadog/tracing/contrib/excon/configuration/configuration_spec.rb @@ -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 diff --git a/spec/datadog/tracing/contrib/faraday/configuration/configuration_spec.rb b/spec/datadog/tracing/contrib/faraday/configuration/configuration_spec.rb index f72f0f5a79b..8e7287f25e2 100644 --- a/spec/datadog/tracing/contrib/faraday/configuration/configuration_spec.rb +++ b/spec/datadog/tracing/contrib/faraday/configuration/configuration_spec.rb @@ -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 diff --git a/spec/datadog/tracing/contrib/grpc/configuration/configuration_spec.rb b/spec/datadog/tracing/contrib/grpc/configuration/configuration_spec.rb index c736db1400f..170756da555 100644 --- a/spec/datadog/tracing/contrib/grpc/configuration/configuration_spec.rb +++ b/spec/datadog/tracing/contrib/grpc/configuration/configuration_spec.rb @@ -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 diff --git a/spec/datadog/tracing/contrib/http/configuration/configuration_spec.rb b/spec/datadog/tracing/contrib/http/configuration/configuration_spec.rb index 3b2f5711579..150cd0428ba 100644 --- a/spec/datadog/tracing/contrib/http/configuration/configuration_spec.rb +++ b/spec/datadog/tracing/contrib/http/configuration/configuration_spec.rb @@ -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 diff --git a/spec/datadog/tracing/contrib/service_name_settings_examples.rb b/spec/datadog/tracing/contrib/service_name_settings_examples.rb new file mode 100644 index 00000000000..abdf7516b47 --- /dev/null +++ b/spec/datadog/tracing/contrib/service_name_settings_examples.rb @@ -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