diff options
Diffstat (limited to 'spec/lib/gitlab/usage/metrics/instrumentations')
7 files changed, 52 insertions, 21 deletions
diff --git a/spec/lib/gitlab/usage/metrics/instrumentations/count_boards_metric_spec.rb b/spec/lib/gitlab/usage/metrics/instrumentations/count_boards_metric_spec.rb index 52c1ccdcd47..6f03c5a9ae3 100644 --- a/spec/lib/gitlab/usage/metrics/instrumentations/count_boards_metric_spec.rb +++ b/spec/lib/gitlab/usage/metrics/instrumentations/count_boards_metric_spec.rb @@ -5,5 +5,8 @@ require 'spec_helper' RSpec.describe Gitlab::Usage::Metrics::Instrumentations::CountBoardsMetric do let_it_be(:board) { create(:board) } - it_behaves_like 'a correct instrumented metric value', { time_frame: 'all', data_source: 'database' }, 1 + let(:expected_value) { 1 } + let(:expected_query) { 'SELECT COUNT("boards"."id") FROM "boards"' } + + it_behaves_like 'a correct instrumented metric value and query', { time_frame: 'all' } end diff --git a/spec/lib/gitlab/usage/metrics/instrumentations/count_issues_metric_spec.rb b/spec/lib/gitlab/usage/metrics/instrumentations/count_issues_metric_spec.rb index c3b59904f41..183aa03dd8a 100644 --- a/spec/lib/gitlab/usage/metrics/instrumentations/count_issues_metric_spec.rb +++ b/spec/lib/gitlab/usage/metrics/instrumentations/count_issues_metric_spec.rb @@ -5,5 +5,8 @@ require 'spec_helper' RSpec.describe Gitlab::Usage::Metrics::Instrumentations::CountIssuesMetric do let_it_be(:issue) { create(:issue) } - it_behaves_like 'a correct instrumented metric value', { time_frame: 'all', data_source: 'database' }, 1 + let(:expected_value) { 1 } + let(:expected_query) { 'SELECT COUNT("issues"."id") FROM "issues"' } + + it_behaves_like 'a correct instrumented metric value and query', { time_frame: 'all' } end diff --git a/spec/lib/gitlab/usage/metrics/instrumentations/count_users_creating_issues_metric_spec.rb b/spec/lib/gitlab/usage/metrics/instrumentations/count_users_creating_issues_metric_spec.rb index 9f4686ab6cd..3fb4c3a4e3f 100644 --- a/spec/lib/gitlab/usage/metrics/instrumentations/count_users_creating_issues_metric_spec.rb +++ b/spec/lib/gitlab/usage/metrics/instrumentations/count_users_creating_issues_metric_spec.rb @@ -8,10 +8,18 @@ RSpec.describe Gitlab::Usage::Metrics::Instrumentations::CountUsersCreatingIssue let_it_be(:old_issue) { create(:issue, author: author, created_at: 2.months.ago) } context 'with all time frame' do - it_behaves_like 'a correct instrumented metric value', { time_frame: 'all', data_source: 'database' }, 1 + let(:expected_value) { 1 } + let(:expected_query) { 'SELECT COUNT(DISTINCT "issues"."author_id") FROM "issues"' } + + it_behaves_like 'a correct instrumented metric value and query', { time_frame: 'all' } end context 'for 28d time frame' do - it_behaves_like 'a correct instrumented metric value', { time_frame: '28d', data_source: 'database' }, 1 + let(:expected_value) { 1 } + let(:start) { 30.days.ago.to_s(:db) } + let(:finish) { 2.days.ago.to_s(:db) } + let(:expected_query) { "SELECT COUNT(DISTINCT \"issues\".\"author_id\") FROM \"issues\" WHERE \"issues\".\"created_at\" BETWEEN '#{start}' AND '#{finish}'" } + + it_behaves_like 'a correct instrumented metric value and query', { time_frame: '28d' } end end diff --git a/spec/lib/gitlab/usage/metrics/instrumentations/count_users_using_approve_quick_action_metric_spec.rb b/spec/lib/gitlab/usage/metrics/instrumentations/count_users_using_approve_quick_action_metric_spec.rb deleted file mode 100644 index 7adba825a13..00000000000 --- a/spec/lib/gitlab/usage/metrics/instrumentations/count_users_using_approve_quick_action_metric_spec.rb +++ /dev/null @@ -1,15 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe Gitlab::Usage::Metrics::Instrumentations::CountUsersUsingApproveQuickActionMetric, :clean_gitlab_redis_shared_state do - before do - Gitlab::UsageDataCounters::HLLRedisCounter.track_event(:i_quickactions_approve, values: 1, time: 1.week.ago) - Gitlab::UsageDataCounters::HLLRedisCounter.track_event(:i_quickactions_approve, values: 1, time: 2.weeks.ago) - Gitlab::UsageDataCounters::HLLRedisCounter.track_event(:i_quickactions_approve, values: 2, time: 2.weeks.ago) - Gitlab::UsageDataCounters::HLLRedisCounter.track_event(:i_quickactions_approve, values: 2, time: 2.months.ago) - end - - it_behaves_like 'a correct instrumented metric value', { time_frame: '28d', data_source: 'redis_hll' }, 2 - it_behaves_like 'a correct instrumented metric value', { time_frame: '7d', data_source: 'redis_hll' }, 1 -end diff --git a/spec/lib/gitlab/usage/metrics/instrumentations/hostname_metric_spec.rb b/spec/lib/gitlab/usage/metrics/instrumentations/hostname_metric_spec.rb index 83e07200025..95e159a5bf7 100644 --- a/spec/lib/gitlab/usage/metrics/instrumentations/hostname_metric_spec.rb +++ b/spec/lib/gitlab/usage/metrics/instrumentations/hostname_metric_spec.rb @@ -3,5 +3,7 @@ require 'spec_helper' RSpec.describe Gitlab::Usage::Metrics::Instrumentations::HostnameMetric do - it_behaves_like 'a correct instrumented metric value', { time_frame: 'none', data_source: 'ruby' }, Gitlab.config.gitlab.host + let(:expected_value) { Gitlab.config.gitlab.host } + + it_behaves_like 'a correct instrumented metric value', { time_frame: 'none' } end diff --git a/spec/lib/gitlab/usage/metrics/instrumentations/redis_hll_metric_spec.rb b/spec/lib/gitlab/usage/metrics/instrumentations/redis_hll_metric_spec.rb new file mode 100644 index 00000000000..347a2c779cb --- /dev/null +++ b/spec/lib/gitlab/usage/metrics/instrumentations/redis_hll_metric_spec.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Gitlab::Usage::Metrics::Instrumentations::RedisHLLMetric, :clean_gitlab_redis_shared_state do + before do + Gitlab::UsageDataCounters::HLLRedisCounter.track_event(:i_quickactions_approve, values: 1, time: 1.week.ago) + Gitlab::UsageDataCounters::HLLRedisCounter.track_event(:i_quickactions_approve, values: 1, time: 2.weeks.ago) + Gitlab::UsageDataCounters::HLLRedisCounter.track_event(:i_quickactions_approve, values: 2, time: 2.weeks.ago) + Gitlab::UsageDataCounters::HLLRedisCounter.track_event(:i_quickactions_approve, values: 2, time: 2.months.ago) + end + + context 'for 28d' do + let(:expected_value) { 2 } + + it_behaves_like 'a correct instrumented metric value', { time_frame: '28d', options: { events: ['i_quickactions_approve'] } } + end + + context 'for 7d' do + let(:expected_value) { 1 } + + it_behaves_like 'a correct instrumented metric value', { time_frame: '7d', options: { events: ['i_quickactions_approve'] } } + end + + it 'raise exception if events options is not present' do + expect { described_class.new(time_frame: '28d') }.to raise_error(ArgumentError) + end +end diff --git a/spec/lib/gitlab/usage/metrics/instrumentations/uuid_metric_spec.rb b/spec/lib/gitlab/usage/metrics/instrumentations/uuid_metric_spec.rb index 212dd3dc851..33e7e85611d 100644 --- a/spec/lib/gitlab/usage/metrics/instrumentations/uuid_metric_spec.rb +++ b/spec/lib/gitlab/usage/metrics/instrumentations/uuid_metric_spec.rb @@ -3,5 +3,7 @@ require 'spec_helper' RSpec.describe Gitlab::Usage::Metrics::Instrumentations::UuidMetric do - it_behaves_like 'a correct instrumented metric value', { time_frame: 'none' }, Gitlab::CurrentSettings.uuid + let(:expected_value) { Gitlab::CurrentSettings.uuid } + + it_behaves_like 'a correct instrumented metric value', { time_frame: 'none' } end |