diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-10-05 21:08:51 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-10-05 21:08:51 +0300 |
commit | ec18750aa8538712b952b8265581fc3b3e037923 (patch) | |
tree | 7eaf59fe40401415fde3c994bffae0031e2ffd23 /spec/mailers | |
parent | 61265b9f01c7db3d4f6e1266d165b1c85be7b9e7 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/mailers')
-rw-r--r-- | spec/mailers/notify_spec.rb | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/spec/mailers/notify_spec.rb b/spec/mailers/notify_spec.rb index fa03c374633..8604939ead9 100644 --- a/spec/mailers/notify_spec.rb +++ b/spec/mailers/notify_spec.rb @@ -1640,6 +1640,88 @@ RSpec.describe Notify do end end + describe 'group invitation reminders' do + let_it_be(:inviter) { create(:user).tap { |u| group.add_user(u, Gitlab::Access::OWNER) } } + + let(:group_member) { invite_to_group(group, inviter: inviter) } + + subject { described_class.member_invited_reminder_email('Group', group_member.id, group_member.invite_token, reminder_index) } + + describe 'not sending a reminder' do + let(:reminder_index) { 0 } + + context 'member does not exist' do + let(:group_member) { double(id: nil, invite_token: nil) } + + it_behaves_like 'no email is sent' + end + + context 'member is not created by a user' do + before do + group_member.update(created_by: nil) + end + + it_behaves_like 'no email is sent' + end + + context 'member is a known user' do + before do + group_member.update(user: create(:user)) + end + + it_behaves_like 'no email is sent' + end + end + + describe 'the first reminder' do + let(:reminder_index) { 0 } + + 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 'contains all the useful information' do + is_expected.to have_subject "#{inviter.name}'s invitation to GitLab is pending" + is_expected.to have_body_text group.human_name + is_expected.to have_body_text group_member.human_access.downcase + is_expected.to have_body_text invite_url(group_member.invite_token) + is_expected.to have_body_text decline_invite_url(group_member.invite_token) + end + end + + describe 'the second reminder' do + let(:reminder_index) { 1 } + + 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 'contains all the useful information' do + is_expected.to have_subject "#{inviter.name} is waiting for you to join GitLab" + is_expected.to have_body_text group.human_name + is_expected.to have_body_text group_member.human_access.downcase + is_expected.to have_body_text invite_url(group_member.invite_token) + is_expected.to have_body_text decline_invite_url(group_member.invite_token) + end + end + + describe 'the third reminder' do + let(:reminder_index) { 2 } + + 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 'contains all the useful information' do + is_expected.to have_subject "#{inviter.name} is still waiting for you to join GitLab" + is_expected.to have_body_text group.human_name + is_expected.to have_body_text group_member.human_access.downcase + is_expected.to have_body_text invite_url(group_member.invite_token) + is_expected.to have_body_text decline_invite_url(group_member.invite_token) + end + end + end + describe 'group invitation accepted' do let(:invited_user) { create(:user, name: 'invited user') } let(:owner) { create(:user).tap { |u| group.add_user(u, Gitlab::Access::OWNER) } } |