Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/tracking_spec.rb')
-rw-r--r--spec/lib/gitlab/tracking_spec.rb47
1 files changed, 21 insertions, 26 deletions
diff --git a/spec/lib/gitlab/tracking_spec.rb b/spec/lib/gitlab/tracking_spec.rb
index 8f1fd49f4c5..80740c8112e 100644
--- a/spec/lib/gitlab/tracking_spec.rb
+++ b/spec/lib/gitlab/tracking_spec.rb
@@ -42,36 +42,31 @@ RSpec.describe Gitlab::Tracking do
end
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
+ it "delegates to #{klass} destination" do
+ other_context = double(:context)
- described_class.event('category', 'action', label: 'label', property: 'property', value: 1.5,
- standard_context: Gitlab::Tracking::StandardContext.new(foo: 'bar'))
- end
- end
+ project = double(:project)
+ user = double(:user)
+ namespace = double(:namespace)
- 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
+ expect(Gitlab::Tracking::StandardContext)
+ .to receive(:new)
+ .with(project: project, user: user, namespace: namespace)
+ .and_call_original
- described_class.event('category', 'action', label: 'label', property: 'property', value: 1.5)
+ 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(2)
+ expect(args[:context].first).to eq(other_context)
+ expect(args[:context].last.to_json[:schema]).to eq(Gitlab::Tracking::StandardContext::GITLAB_STANDARD_SCHEMA_URL)
end
+
+ described_class.event('category', 'action', label: 'label', property: 'property', value: 1.5,
+ context: [other_context], project: project, user: user, namespace: namespace)
end
end