From 6438df3a1e0fb944485cebf07976160184697d72 Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Wed, 20 Jan 2021 13:34:23 -0600 Subject: Add latest changes from gitlab-org/gitlab@13-8-stable-ee --- spec/lib/gitlab/tracking_spec.rb | 43 ++++++++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 11 deletions(-) (limited to 'spec/lib/gitlab/tracking_spec.rb') diff --git a/spec/lib/gitlab/tracking_spec.rb b/spec/lib/gitlab/tracking_spec.rb index 57882de0974..8f1fd49f4c5 100644 --- a/spec/lib/gitlab/tracking_spec.rb +++ b/spec/lib/gitlab/tracking_spec.rb @@ -41,21 +41,42 @@ RSpec.describe Gitlab::Tracking do allow_any_instance_of(Gitlab::Tracking::Destinations::ProductAnalytics).to receive(:event) end - it 'delegates to snowplow destination' do - expect_any_instance_of(Gitlab::Tracking::Destinations::Snowplow) - .to receive(:event) - .with('category', 'action', label: 'label', property: 'property', value: 1.5, context: nil) + shared_examples 'delegates to destination' do |klass| + context 'with standard context' do + it "delegates to #{klass} destination" do + expect_any_instance_of(klass).to receive(:event) do |_, category, action, args| + expect(category).to eq('category') + expect(action).to eq('action') + expect(args[:label]).to eq('label') + expect(args[:property]).to eq('property') + expect(args[:value]).to eq(1.5) + expect(args[:context].length).to eq(1) + expect(args[:context].first.to_json[:schema]).to eq(Gitlab::Tracking::StandardContext::GITLAB_STANDARD_SCHEMA_URL) + expect(args[:context].first.to_json[:data]).to include(foo: 'bar') + end - described_class.event('category', 'action', label: 'label', property: 'property', value: 1.5) - end + described_class.event('category', 'action', label: 'label', property: 'property', value: 1.5, + standard_context: Gitlab::Tracking::StandardContext.new(foo: 'bar')) + end + end - it 'delegates to ProductAnalytics destination' do - expect_any_instance_of(Gitlab::Tracking::Destinations::ProductAnalytics) - .to receive(:event) - .with('category', 'action', label: 'label', property: 'property', value: 1.5, context: nil) + context 'without standard context' do + it "delegates to #{klass} destination" do + expect_any_instance_of(klass).to receive(:event) do |_, category, action, args| + expect(category).to eq('category') + expect(action).to eq('action') + expect(args[:label]).to eq('label') + expect(args[:property]).to eq('property') + expect(args[:value]).to eq(1.5) + end - described_class.event('category', 'action', label: 'label', property: 'property', value: 1.5) + described_class.event('category', 'action', label: 'label', property: 'property', value: 1.5) + end + end end + + include_examples 'delegates to destination', Gitlab::Tracking::Destinations::Snowplow + include_examples 'delegates to destination', Gitlab::Tracking::Destinations::ProductAnalytics end describe '.self_describing_event' do -- cgit v1.2.3