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/api/helpers/packages_helpers_spec.rb')
-rw-r--r--spec/lib/api/helpers/packages_helpers_spec.rb56
1 files changed, 55 insertions, 1 deletions
diff --git a/spec/lib/api/helpers/packages_helpers_spec.rb b/spec/lib/api/helpers/packages_helpers_spec.rb
index de9d139a7b6..2a663d5e9b2 100644
--- a/spec/lib/api/helpers/packages_helpers_spec.rb
+++ b/spec/lib/api/helpers/packages_helpers_spec.rb
@@ -275,7 +275,6 @@ RSpec.describe API::Helpers::PackagesHelpers, feature_category: :package_registr
let(:category) { described_class.name }
let(:namespace) { project.namespace }
let(:user) { project.creator }
- let(:feature_flag_name) { nil }
let(:label) { 'redis_hll_counters.user_packages.user_packages_total_unique_counts_monthly' }
let(:property) { 'i_package_terraform_module_user' }
@@ -284,5 +283,60 @@ RSpec.describe API::Helpers::PackagesHelpers, feature_category: :package_registr
helper.track_package_event(action, scope, **args)
end
end
+
+ context 'when using deploy token and action is push package' do
+ let(:user) { create(:deploy_token, write_registry: true, projects: [project]) }
+ let(:scope) { :rubygems }
+ let(:category) { 'API::RubygemPackages' }
+ let(:namespace) { project.namespace }
+ let(:label) { 'counts.package_events_i_package_push_package_by_deploy_token' }
+ let(:property) { 'i_package_push_package_by_deploy_token' }
+ let(:service_ping_context) do
+ [Gitlab::Tracking::ServicePingContext.new(data_source: :redis, key_path: 'counts.package_events_i_package_push_package_by_deploy_token').to_h]
+ end
+
+ it 'logs a snowplow event' do
+ args = { category: category, namespace: namespace, project: project }
+ helper.track_package_event('push_package', scope, **args)
+
+ expect_snowplow_event(
+ category: category,
+ action: 'push_package_by_deploy_token',
+ context: service_ping_context,
+ label: label,
+ namespace: namespace,
+ property: property,
+ project: project
+ )
+ end
+ end
+
+ context 'when guest and action is pull package' do
+ let(:user) { nil }
+ let(:scope) { :rubygems }
+ let(:category) { 'API::RubygemPackages' }
+ let(:namespace) { project.namespace }
+ let(:label) { 'counts.package_events_i_package_pull_package_by_guest' }
+ let(:property) { 'i_package_pull_package_by_guest' }
+ let(:service_ping_context) do
+ [Gitlab::Tracking::ServicePingContext.new(data_source: :redis, key_path: 'counts.package_events_i_package_pull_package_by_guest').to_h]
+ end
+
+ it 'logs a snowplow event' do
+ allow(helper).to receive(:current_user).and_return(nil)
+ args = { category: category, namespace: namespace, project: project }
+ helper.track_package_event('pull_package', scope, **args)
+
+ expect_snowplow_event(
+ category: category,
+ action: 'pull_package_by_guest',
+ context: service_ping_context,
+ label: label,
+ namespace: namespace,
+ property: property,
+ project: project
+ )
+ end
+ end
end
end