From a52a06223d9e85c9ad0a27d1ddfb2b2a164b3614 Mon Sep 17 00:00:00 2001 From: Nicolas Dular <ndular@gitlab.com> Date: Thu, 27 Aug 2020 16:31:00 +0200 Subject: [PATCH] Fix snowplow tracking event error The `value` property on Snowplow only accepts Numbers or nil values. This fixes the problem by using the `label` property instead which accepts Strings as well. --- app/controllers/invites_controller.rb | 2 +- .../nicolasdular-fix-invite-mail-tracking.yml | 5 ++++ spec/controllers/invites_controller_spec.rb | 25 ++++++++++--------- 3 files changed, 19 insertions(+), 13 deletions(-) create mode 100644 changelogs/unreleased/nicolasdular-fix-invite-mail-tracking.yml diff --git a/app/controllers/invites_controller.rb b/app/controllers/invites_controller.rb index 1126d72bfef..aa02bc132f9 100644 --- a/app/controllers/invites_controller.rb +++ b/app/controllers/invites_controller.rb @@ -108,7 +108,7 @@ class InvitesController < ApplicationController Gitlab::Experimentation::EXPERIMENTS[:invite_email][:tracking_category], action, property: property, - value: Digest::MD5.hexdigest(member.to_global_id.to_s) + label: Digest::MD5.hexdigest(member.to_global_id.to_s) ) end end diff --git a/changelogs/unreleased/nicolasdular-fix-invite-mail-tracking.yml b/changelogs/unreleased/nicolasdular-fix-invite-mail-tracking.yml new file mode 100644 index 00000000000..919a3e02bdc --- /dev/null +++ b/changelogs/unreleased/nicolasdular-fix-invite-mail-tracking.yml @@ -0,0 +1,5 @@ +--- +title: Fix snowplow tracking event error for new user invite page +merge_request: 40628 +author: +type: fixed diff --git a/spec/controllers/invites_controller_spec.rb b/spec/controllers/invites_controller_spec.rb index fa9ec7413f8..a069a5dc050 100644 --- a/spec/controllers/invites_controller_spec.rb +++ b/spec/controllers/invites_controller_spec.rb @@ -10,6 +10,7 @@ RSpec.describe InvitesController do let(:md5_member_global_id) { Digest::MD5.hexdigest(member.to_global_id.to_s) } before do + stub_application_setting(snowplow_enabled: true, snowplow_collector_hostname: 'localhost') controller.instance_variable_set(:@member, member) sign_in(user) end @@ -51,17 +52,17 @@ RSpec.describe InvitesController do let(:params) { { id: token, new_user_invite: 'experiment' } } it 'tracks the user as experiment group' do - expect(Gitlab::Tracking).to receive(:event).with( + expect(Gitlab::Tracking).to receive(:event).and_call_original.with( 'Growth::Acquisition::Experiment::InviteEmail', 'opened', property: 'experiment_group', - value: md5_member_global_id + label: md5_member_global_id ) - expect(Gitlab::Tracking).to receive(:event).with( + expect(Gitlab::Tracking).to receive(:event).and_call_original.with( 'Growth::Acquisition::Experiment::InviteEmail', 'accepted', property: 'experiment_group', - value: md5_member_global_id + label: md5_member_global_id ) request @@ -72,17 +73,17 @@ RSpec.describe InvitesController do let(:params) { { id: token, new_user_invite: 'control' } } it 'tracks the user as control group' do - expect(Gitlab::Tracking).to receive(:event).with( + expect(Gitlab::Tracking).to receive(:event).and_call_original.with( 'Growth::Acquisition::Experiment::InviteEmail', 'opened', property: 'control_group', - value: md5_member_global_id + label: md5_member_global_id ) - expect(Gitlab::Tracking).to receive(:event).with( + expect(Gitlab::Tracking).to receive(:event).and_call_original.with( 'Growth::Acquisition::Experiment::InviteEmail', 'accepted', property: 'control_group', - value: md5_member_global_id + label: md5_member_global_id ) request @@ -107,11 +108,11 @@ RSpec.describe InvitesController do let(:params) { { id: token, new_user_invite: 'experiment' } } it 'tracks the user as experiment group' do - expect(Gitlab::Tracking).to receive(:event).with( + expect(Gitlab::Tracking).to receive(:event).and_call_original.with( 'Growth::Acquisition::Experiment::InviteEmail', 'accepted', property: 'experiment_group', - value: md5_member_global_id + label: md5_member_global_id ) request @@ -122,11 +123,11 @@ RSpec.describe InvitesController do let(:params) { { id: token, new_user_invite: 'control' } } it 'tracks the user as control group' do - expect(Gitlab::Tracking).to receive(:event).with( + expect(Gitlab::Tracking).to receive(:event).and_call_original.with( 'Growth::Acquisition::Experiment::InviteEmail', 'accepted', property: 'control_group', - value: md5_member_global_id + label: md5_member_global_id ) request -- 2.30.9