diff options
Diffstat (limited to 'spec/lib/gitlab/metrics/global_search_slis_spec.rb')
-rw-r--r-- | spec/lib/gitlab/metrics/global_search_slis_spec.rb | 129 |
1 files changed, 47 insertions, 82 deletions
diff --git a/spec/lib/gitlab/metrics/global_search_slis_spec.rb b/spec/lib/gitlab/metrics/global_search_slis_spec.rb index 28496eff2fc..0c09cf6dd71 100644 --- a/spec/lib/gitlab/metrics/global_search_slis_spec.rb +++ b/spec/lib/gitlab/metrics/global_search_slis_spec.rb @@ -5,26 +5,20 @@ require 'spec_helper' RSpec.describe Gitlab::Metrics::GlobalSearchSlis do using RSpec::Parameterized::TableSyntax - let(:apdex_feature_flag_enabled) { true } let(:error_rate_feature_flag_enabled) { true } before do - stub_feature_flags(global_search_custom_slis: apdex_feature_flag_enabled) stub_feature_flags(global_search_error_rate_sli: error_rate_feature_flag_enabled) end describe '#initialize_slis!' do - context 'when global_search_custom_slis feature flag is enabled' do - let(:apdex_feature_flag_enabled) { true } + it 'initializes Apdex SLIs for global_search' do + expect(Gitlab::Metrics::Sli::Apdex).to receive(:initialize_sli).with( + :global_search, + a_kind_of(Array) + ) - it 'initializes Apdex SLIs for global_search' do - expect(Gitlab::Metrics::Sli::Apdex).to receive(:initialize_sli).with( - :global_search, - a_kind_of(Array) - ) - - described_class.initialize_slis! - end + described_class.initialize_slis! end context 'when global_search_error_rate_sli feature flag is enabled' do @@ -40,16 +34,6 @@ RSpec.describe Gitlab::Metrics::GlobalSearchSlis do end end - context 'when global_search_custom_slis feature flag is disabled' do - let(:apdex_feature_flag_enabled) { false } - - it 'does not initialize the Apdex SLIs for global_search' do - expect(Gitlab::Metrics::Sli::Apdex).not_to receive(:initialize_sli) - - described_class.initialize_slis! - end - end - context 'when global_search_error_rate_sli feature flag is disabled' do let(:error_rate_feature_flag_enabled) { false } @@ -62,78 +46,59 @@ RSpec.describe Gitlab::Metrics::GlobalSearchSlis do end describe '#record_apdex' do - context 'when global_search_custom_slis feature flag is enabled' do - let(:apdex_feature_flag_enabled) { true } - - where(:search_type, :code_search, :duration_target) do - 'basic' | false | 7.031 - 'basic' | true | 21.903 - 'advanced' | false | 4.865 - 'advanced' | true | 13.546 - end - - with_them do - before do - allow(::Gitlab::ApplicationContext).to receive(:current_context_attribute).with(:caller_id).and_return('end') - end + where(:search_type, :code_search, :duration_target) do + 'basic' | false | 7.031 + 'basic' | true | 21.903 + 'advanced' | false | 4.865 + 'advanced' | true | 13.546 + end - let(:search_scope) { code_search ? 'blobs' : 'issues' } + with_them do + before do + allow(::Gitlab::ApplicationContext).to receive(:current_context_attribute).with(:caller_id).and_return('end') + end - it 'increments the global_search SLI as a success if the elapsed time is within the target' do - duration = duration_target - 0.1 + let(:search_scope) { code_search ? 'blobs' : 'issues' } - expect(Gitlab::Metrics::Sli::Apdex[:global_search]).to receive(:increment).with( - labels: { - search_type: search_type, - search_level: 'global', - search_scope: search_scope, - endpoint_id: 'end' - }, - success: true - ) + it 'increments the global_search SLI as a success if the elapsed time is within the target' do + duration = duration_target - 0.1 - described_class.record_apdex( - elapsed: duration, - search_type: search_type, - search_level: 'global', - search_scope: search_scope - ) - end - - it 'increments the global_search SLI as a failure if the elapsed time is not within the target' do - duration = duration_target + 0.1 - - expect(Gitlab::Metrics::Sli::Apdex[:global_search]).to receive(:increment).with( - labels: { - search_type: search_type, - search_level: 'global', - search_scope: search_scope, - endpoint_id: 'end' - }, - success: false - ) - - described_class.record_apdex( - elapsed: duration, + expect(Gitlab::Metrics::Sli::Apdex[:global_search]).to receive(:increment).with( + labels: { search_type: search_type, search_level: 'global', - search_scope: search_scope - ) - end + search_scope: search_scope, + endpoint_id: 'end' + }, + success: true + ) + + described_class.record_apdex( + elapsed: duration, + search_type: search_type, + search_level: 'global', + search_scope: search_scope + ) end - end - context 'when global_search_custom_slis feature flag is disabled' do - let(:apdex_feature_flag_enabled) { false } + it 'increments the global_search SLI as a failure if the elapsed time is not within the target' do + duration = duration_target + 0.1 - it 'does not call increment on the apdex SLI' do - expect(Gitlab::Metrics::Sli::Apdex[:global_search]).not_to receive(:increment) + expect(Gitlab::Metrics::Sli::Apdex[:global_search]).to receive(:increment).with( + labels: { + search_type: search_type, + search_level: 'global', + search_scope: search_scope, + endpoint_id: 'end' + }, + success: false + ) described_class.record_apdex( - elapsed: 1, - search_type: 'basic', + elapsed: duration, + search_type: search_type, search_level: 'global', - search_scope: 'issues' + search_scope: search_scope ) end end |