diff options
Diffstat (limited to 'spec/support/shared_examples/lib/gitlab/usage_data_counters/incident_management_activity_shared_examples.rb')
-rw-r--r-- | spec/support/shared_examples/lib/gitlab/usage_data_counters/incident_management_activity_shared_examples.rb | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/spec/support/shared_examples/lib/gitlab/usage_data_counters/incident_management_activity_shared_examples.rb b/spec/support/shared_examples/lib/gitlab/usage_data_counters/incident_management_activity_shared_examples.rb new file mode 100644 index 00000000000..4e35e388b23 --- /dev/null +++ b/spec/support/shared_examples/lib/gitlab/usage_data_counters/incident_management_activity_shared_examples.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +RSpec.shared_examples 'an incident management tracked event' do |event| + describe ".track_event", :clean_gitlab_redis_shared_state do + let(:counter) { Gitlab::UsageDataCounters::HLLRedisCounter } + let(:start_time) { 1.minute.ago } + let(:end_time) { 1.minute.from_now } + + it "tracks the event using redis" do + # Allow other subsequent calls + allow(Gitlab::UsageDataCounters::HLLRedisCounter) + .to receive(:track_event) + + expect(Gitlab::UsageDataCounters::HLLRedisCounter) + .to receive(:track_event) + .with(current_user.id, event.to_s) + .and_call_original + + expect { subject } + .to change { counter.unique_events(event_names: event.to_s, start_date: start_time, end_date: end_time) } + .by 1 + end + end +end + +RSpec.shared_examples 'does not track incident management event' do |event| + it 'does not track the event', :clean_gitlab_redis_shared_state do + expect(Gitlab::UsageDataCounters::HLLRedisCounter) + .not_to receive(:track_event) + .with(anything, event.to_s) + end +end |