summaryrefslogtreecommitdiff
path: root/spec/mailers/notify_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/mailers/notify_spec.rb')
-rw-r--r--spec/mailers/notify_spec.rb197
1 files changed, 34 insertions, 163 deletions
diff --git a/spec/mailers/notify_spec.rb b/spec/mailers/notify_spec.rb
index 8604939ead9..3cc5f202b1f 100644
--- a/spec/mailers/notify_spec.rb
+++ b/spec/mailers/notify_spec.rb
@@ -619,6 +619,7 @@ RSpec.describe Notify do
let(:mailer) do
mailer = described_class.new
mailer.instance_variable_set(:@note, mail_thread_note)
+ mailer.instance_variable_set(:@target_url, "https://some.link")
mailer
end
@@ -887,96 +888,30 @@ RSpec.describe Notify do
subject { described_class.member_invited_email('project', project_member.id, project_member.invite_token) }
- context 'when invite_email_experiment is disabled' do
- before do
- stub_feature_flags(invite_email_experiment: false)
- end
-
- it_behaves_like 'an email sent from GitLab'
- it_behaves_like 'it should not have Gmail Actions links'
- it_behaves_like "a user cannot unsubscribe through footer link"
- it_behaves_like 'appearance header and footer enabled'
- it_behaves_like 'appearance header and footer not enabled'
+ it_behaves_like 'an email sent from GitLab'
+ it_behaves_like 'it should not have Gmail Actions links'
+ it_behaves_like "a user cannot unsubscribe through footer link"
+ it_behaves_like 'appearance header and footer enabled'
+ it_behaves_like 'appearance header and footer not enabled'
+ it_behaves_like 'does not render a manage notifications link'
+ context 'when there is an inviter' do
it 'contains all the useful information' do
- is_expected.to have_subject "Invitation to join the #{project.full_name} project"
+ is_expected.to have_subject "#{inviter.name} invited you to join GitLab"
is_expected.to have_body_text project.full_name
- is_expected.to have_body_text project_member.human_access
+ is_expected.to have_body_text project_member.human_access.downcase
is_expected.to have_body_text project_member.invite_token
end
-
- context 'when member is invited via an email address' do
- it 'does add a param to the invite link' do
- is_expected.to have_body_text 'new_user_invite=control'
- end
-
- it 'tracks an event' do
- expect(Gitlab::Tracking).to receive(:event).with(
- 'Growth::Acquisition::Experiment::InviteEmail',
- 'sent',
- property: 'control_group'
- )
-
- subject.deliver_now
- end
- end
-
- context 'when member is already a user' do
- let(:project_member) { invite_to_project(project, inviter: maintainer, user: create(:user)) }
-
- it 'does not add a param to the invite link' do
- is_expected.not_to have_body_text 'new_user_invite'
- end
-
- it 'does not track an event' do
- expect(Gitlab::Tracking).not_to receive(:event)
-
- subject.deliver_now
- end
- end
end
- context 'when invite_email_experiment is enabled' do
- before do
- stub_feature_flags(invite_email_experiment: true)
- end
-
- it_behaves_like 'an email sent from GitLab'
- it_behaves_like 'it should not have Gmail Actions links'
- it_behaves_like "a user cannot unsubscribe through footer link"
-
- context 'when there is no inviter' do
- let(:inviter) { nil }
-
- it 'contains all the useful information' do
- is_expected.to have_subject "Invitation to join the #{project.full_name} project"
- is_expected.to have_body_text project.full_name
- is_expected.to have_body_text project_member.human_access.downcase
- is_expected.to have_body_text project_member.invite_token
- end
- end
+ context 'when there is no inviter' do
+ let(:inviter) { nil }
- context 'when there is an inviter' do
- it 'contains all the useful information' do
- is_expected.to have_subject "#{inviter.name} invited you to join GitLab"
- is_expected.to have_body_text project.full_name
- is_expected.to have_body_text project_member.human_access.downcase
- is_expected.to have_body_text project_member.invite_token
- end
- end
-
- it 'adds a param to the invite link' do
- is_expected.to have_body_text 'new_user_invite=experiment'
- end
-
- it 'tracks an event' do
- expect(Gitlab::Tracking).to receive(:event).with(
- 'Growth::Acquisition::Experiment::InviteEmail',
- 'sent',
- property: 'experiment_group'
- )
-
- subject.deliver_now
+ it 'contains all the useful information' do
+ is_expected.to have_subject "Invitation to join the #{project.full_name} project"
+ is_expected.to have_body_text project.full_name
+ is_expected.to have_body_text project_member.human_access.downcase
+ is_expected.to have_body_text project_member.invite_token
end
end
end
@@ -1547,95 +1482,31 @@ RSpec.describe Notify do
end
end
- context 'when invite_email_experiment is disabled' do
- before do
- stub_feature_flags(invite_email_experiment: false)
- end
-
- it_behaves_like 'an email sent from GitLab'
- it_behaves_like 'it should not have Gmail Actions links'
- it_behaves_like "a user cannot unsubscribe through footer link"
- it_behaves_like 'appearance header and footer enabled'
- it_behaves_like 'appearance header and footer not enabled'
- it_behaves_like 'it requires a group'
+ it_behaves_like 'an email sent from GitLab'
+ it_behaves_like 'it should not have Gmail Actions links'
+ it_behaves_like "a user cannot unsubscribe through footer link"
+ it_behaves_like 'appearance header and footer enabled'
+ it_behaves_like 'appearance header and footer not enabled'
+ it_behaves_like 'it requires a group'
+ it_behaves_like 'does not render a manage notifications link'
+ context 'when there is an inviter' do
it 'contains all the useful information' do
- is_expected.to have_subject "Invitation to join the #{group.name} group"
+ is_expected.to have_subject "#{group_member.created_by.name} invited you to join GitLab"
is_expected.to have_body_text group.name
- is_expected.to have_body_text group.web_url
- is_expected.to have_body_text group_member.human_access
+ is_expected.to have_body_text group_member.human_access.downcase
is_expected.to have_body_text group_member.invite_token
end
-
- context 'when member is invited via an email address' do
- it 'does add a param to the invite link' do
- is_expected.to have_body_text 'new_user_invite=control'
- end
-
- it 'tracks an event' do
- expect(Gitlab::Tracking).to receive(:event).with(
- 'Growth::Acquisition::Experiment::InviteEmail',
- 'sent',
- property: 'control_group'
- )
-
- subject.deliver_now
- end
- end
-
- context 'when member is already a user' do
- let(:group_member) { invite_to_group(group, inviter: owner, user: create(:user)) }
-
- it 'does not add a param to the invite link' do
- is_expected.not_to have_body_text 'new_user_invite'
- end
-
- it 'does not track an event' do
- expect(Gitlab::Tracking).not_to receive(:event)
-
- subject.deliver_now
- end
- end
end
- context 'when invite_email_experiment is enabled' do
- it_behaves_like 'an email sent from GitLab'
- it_behaves_like 'it should not have Gmail Actions links'
- it_behaves_like "a user cannot unsubscribe through footer link"
- it_behaves_like 'it requires a group'
-
- context 'when there is no inviter' do
- let(:inviter) { nil }
-
- it 'contains all the useful information' do
- is_expected.to have_subject "Invitation to join the #{group.name} group"
- is_expected.to have_body_text group.name
- is_expected.to have_body_text group_member.human_access.downcase
- is_expected.to have_body_text group_member.invite_token
- end
- end
+ context 'when there is no inviter' do
+ let(:inviter) { nil }
- context 'when there is an inviter' do
- it 'contains all the useful information' do
- is_expected.to have_subject "#{group_member.created_by.name} invited you to join GitLab"
- is_expected.to have_body_text group.name
- is_expected.to have_body_text group_member.human_access.downcase
- is_expected.to have_body_text group_member.invite_token
- end
- end
-
- it 'does add a param to the invite link' do
- is_expected.to have_body_text 'new_user_invite'
- end
-
- it 'tracks an event' do
- expect(Gitlab::Tracking).to receive(:event).with(
- 'Growth::Acquisition::Experiment::InviteEmail',
- 'sent',
- property: 'experiment_group'
- )
-
- subject.deliver_now
+ it 'contains all the useful information' do
+ is_expected.to have_subject "Invitation to join the #{group.name} group"
+ is_expected.to have_body_text group.name
+ is_expected.to have_body_text group_member.human_access.downcase
+ is_expected.to have_body_text group_member.invite_token
end
end
end