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/controllers/invites_controller_spec.rb')
-rw-r--r--spec/controllers/invites_controller_spec.rb69
1 files changed, 55 insertions, 14 deletions
diff --git a/spec/controllers/invites_controller_spec.rb b/spec/controllers/invites_controller_spec.rb
index fd7631edbbb..dc1fb0454df 100644
--- a/spec/controllers/invites_controller_spec.rb
+++ b/spec/controllers/invites_controller_spec.rb
@@ -71,7 +71,7 @@ RSpec.describe InvitesController do
end
end
- describe 'GET #show' do
+ describe 'GET #show', :snowplow do
subject(:request) { get :show, params: params }
context 'when logged in' do
@@ -83,34 +83,75 @@ RSpec.describe InvitesController do
it_behaves_like 'invalid token'
end
- context 'when it is part of our invite email experiment' do
+ context 'when it is an initial invite email' do
let(:extra_params) { { invite_type: 'initial_email' } }
- it 'tracks the experiment' do
- experiment = double(track: true)
- allow(controller).to receive(:experiment).with('members/invite_email', actor: member).and_return(experiment)
-
+ it 'tracks the initial join click from email' do
request
- expect(experiment).to have_received(:track).with(:join_clicked)
+ expect_snowplow_event(
+ category: described_class.name,
+ action: 'join_clicked',
+ label: 'invite_email',
+ property: member.id.to_s
+ )
+ end
+
+ context 'when it is part of the invite_email_preview_text experiment' do
+ let(:extra_params) { { invite_type: 'initial_email', experiment_name: 'invite_email_preview_text' } }
+
+ it 'tracks the initial join click from email' do
+ experiment = double(track: true)
+ allow(controller).to receive(:experiment).with(:invite_email_preview_text, actor: member).and_return(experiment)
+
+ request
+
+ expect(experiment).to have_received(:track).with(:join_clicked)
+ end
+
+ context 'when member does not exist' do
+ let(:raw_invite_token) { '_bogus_token_' }
+
+ it 'does not track the experiment' do
+ expect(controller).not_to receive(:experiment).with(:invite_email_preview_text, actor: member)
+
+ request
+ end
+ end
end
context 'when member does not exist' do
let(:raw_invite_token) { '_bogus_token_' }
- it 'does not track the experiment' do
- expect(controller).not_to receive(:experiment).with('members/invite_email', actor: member)
-
+ it 'does not track join click' do
request
+
+ expect_no_snowplow_event(
+ category: described_class.name,
+ action: 'join_clicked',
+ label: 'invite_email'
+ )
end
end
end
- context 'when it is not part of our invite email experiment' do
- it 'does not track via experiment' do
- expect(controller).not_to receive(:experiment).with('members/invite_email', actor: member)
-
+ context 'when it is not an initial email' do
+ it 'does not track the join click' do
request
+
+ expect_no_snowplow_event(
+ category: described_class.name,
+ action: 'join_clicked',
+ label: 'invite_email'
+ )
+ end
+
+ context 'when it is not part of our invite email experiment' do
+ it 'does not track via experiment' do
+ expect(controller).not_to receive(:experiment).with(:invite_email_preview_text, actor: member)
+
+ request
+ end
end
end