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:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-10-05 21:08:51 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-10-05 21:08:51 +0300
commitec18750aa8538712b952b8265581fc3b3e037923 (patch)
tree7eaf59fe40401415fde3c994bffae0031e2ffd23 /spec/mailers
parent61265b9f01c7db3d4f6e1266d165b1c85be7b9e7 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/mailers')
-rw-r--r--spec/mailers/notify_spec.rb82
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) } }