From aa6ff0836fd3d8d970b0c0e54d73e4804ca18493 Mon Sep 17 00:00:00 2001
From: Sarah Yasonik <syasonik@gitlab.com>
Date: Mon, 9 Sep 2024 02:02:32 +0000
Subject: [PATCH] Add tests using 'internal event tracking' shared example to
 fail faster

---
 .../matchers/internal_events_matchers_spec.rb | 40 +++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/spec/support_specs/matchers/internal_events_matchers_spec.rb b/spec/support_specs/matchers/internal_events_matchers_spec.rb
index 7078d87d023be..54a9dda164cc5 100644
--- a/spec/support_specs/matchers/internal_events_matchers_spec.rb
+++ b/spec/support_specs/matchers/internal_events_matchers_spec.rb
@@ -7,6 +7,7 @@
   let_it_be(:user_2) { create(:user) }
   let_it_be(:group_1) { create(:group) }
   let_it_be(:group_2) { create(:group) }
+  let_it_be(:project_1) { create(:project, namespace: group_1) }
 
   def track_event(event: nil, user: nil, group: nil)
     Gitlab::InternalEvents.track_event(
@@ -322,4 +323,43 @@ def track_event(event: nil, user: nil, group: nil)
       .and not_change { User.count }
     end
   end
+
+  context "when using the 'internal event tracking' shared example" do
+    context 'with identifiers' do
+      let(:event) { 'g_edit_by_sfe' }
+      let(:user) { user_1 }
+      let(:namespace) { group_1 }
+
+      subject(:assertion) { track_event }
+
+      it_behaves_like 'internal event tracking'
+    end
+
+    context 'with additional properties' do
+      let(:event) { 'push_package_to_registry' }
+      let(:user) { user_1 }
+      let(:project) { project_1 }
+
+      subject(:assertion) do
+        Gitlab::InternalEvents.track_event(
+          event,
+          user: user,
+          project: project,
+          additional_properties: { label: 'Awesome label value' }
+        )
+      end
+
+      it_behaves_like 'internal event tracking' do
+        let(:additional_properties) { { label: 'Awesome label value' } }
+      end
+
+      it_behaves_like 'internal event tracking' do
+        let(:label) { 'Awesome label value' }
+      end
+
+      it_behaves_like 'internal event tracking' do
+        let(:event_attribute_overrides) { { label: 'Awesome label value' } }
+      end
+    end
+  end
 end
-- 
GitLab